SQL 与 Oracle SQL常用语句
来源:互联网 发布:www.47es.com最新域名 编辑:程序博客网 时间:2024/06/17 00:09
SQL 与 Oracle SQL常用语句
SQL
SQL定义:结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
SQL由以下五大块组成:
- DQL: Data QueryLanguage 数据查询语言
- DDL: Data Definition Language 数据库模式定义语言
- DML: Data Manipulation Language 数据操作语言
- DCL: Data Control Language 数据控制语言
- TCL: Transaction Control Language 事务控制语言
如下列表,详细显示了其语言以及操作关键字:
Oracle SQL常用语句
–创建测试表空间
CREATE TABLESPACE TestDBXUPT datafile’F:\app\Administrator\oradata\orcl\TestDBXUPT.dbf’ size 20M;
–删除测试表空间
drop TABLESPACE TestDBXUPT INCLUDING contents and datafiles CASCADE CONSTRAINTS;
–创建user表
create table xuptuser(
userid int primary key not null,
username varchar2(32)
);
–插入数据
–全列插入
insert into PlatUser values(‘0001’,’user0001’);
–指定列插入
insert into PlatUser(PlatUserID,PlatUserName) values(‘0002’,’user0002’);
–查询数据
–全列查询
select * from PlatUser;
–限定列查询,作用是限定列
select columnname from tablename;
–条件查询,作用是限定行
select * from tablename where columnname =’xxx’;
–修改数据
update tablename set columnname = ‘XXX’;
update tablename set columnname = ‘xxx’ where columnname =’xxx’;
–删除数据
DELETE tablename;//删除所有行 !警惕!
DELETE tablename where columnname = ‘xxx’;
使用外连接
A、left (outer) join: 左外连接(左连接):结果集既包括连接表的匹配行,也包括左连接表的所有行。 SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c B:right (outer) join: 右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。 C:full/cross (outer) join: 全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。 D:多路查询 select * from tablename left / right jion tablename1 on condition left / right jion tablename2 on condition where ...(other sql sentences)****************连接查询*****************将两个及两个以上的表连接起来选取所需数据。1)内连接查询:当两个表中具有相同意义的字段值相等时,就查询出该条记录。实例:复制代码 代码如下:select num,name,employee.d_id,age,d_name from employee,department where employee.d_id = department.d_id因字段名相同,所以取d_id字段值时最好指定哪张表的字段。2)外连接查询select 属性名列表 from 表名1 left|right join 表名2 on 表名1.属性名1=表名2.属性名2;左连接查询:进行左连接查询时,可以查出表名1中所指的表中所有记录。而表名2所指表中,只能查询出匹配的记录。实例:复制代码 代码如下:select num,name,employee.d_id,age,d_name from employee left join department on employee.d_id = department.d_id;右连接查询:与左连接相反,可以查询出表名2中的的所有记录,而表名1中所指的表中,只查询出匹配的记录。//****************************************
分组:Group by:
分组查询 group by
group by 属性名 [having 条件表达式][ with rollup]
“属性名 ”指按照该字段值进行分组;“having 条件表达式 ”用来限制分组后的显示,满足条件的结果将被显示;with rollup 将会在所有记录的最后加上一条记录,该记录是上 面所有记录的总和。
一张表,一旦分组完成后,查询后只能得到组相关的信息。
组相关的信息:(统计信息) count,sum,max,min,avg 分组的标准)
在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据
在selecte统计函数中的字段,不能和普通的字段放在一起;
–分组查询时,列投影必须是分组列;使用非分组列作为列投影时,必须使用组函数。
select REGION , sex ,count(PLATUSERID) from FRIEND
GROUP BY REGION , sex;
-重点内容-分页查询
–rownum是一个伪列,用来统计行序号。
select PlatUserID , rownum from PlatUser;
–查出第二页结果集,每页2条
SELECT PlatUserID , ROWNUM FROM PlatUser WHERE ROWNUM <= 4;
–查出第1页结果集,每页2条
select PlatUserID , rownum from PlatUser where ROWNUM <= 2;
–查出第二页
/***********************************************很明显:第二种分页查询方式更好,如果数据量相当大的时候,第二种查询方式所消耗的查询内存可想而知,相比第一种就小很多************************************************/ SELECT PlatUserID , ROWNUM FROM PlatUser WHERE ROWNUM <= 4 AND PlatUserID NOT IN ( select PlatUserID from PlatUser where ROWNUM <= 2 );SELECT * FROM PlatUser where PlatUserID in ( SELECT PlatUserID FROM PlatUser WHERE ROWNUM <= 4 AND PlatUserID NOT IN ( select PlatUserID from PlatUser where ROWNUM <= 2 ) );
第三种查询:
select columnname, rownum from XUPTUSER where rownum between row_lo and row_hi; select * from tablename where table_pri_ID in ( select table_pri_ID, rownum from table_name where rownum between row_lo and row_hi );
简单的表空间、表操作
/*********************************************************Note one: 查看默认表空间:select default_tablespace from user_users; 查看所有表空间:select tablespace_name from user_tablespace;//或者dba_tablespace 查看:DEFAULT_TABLESPACE字段Note two: 创建表指定表空间(如果没有置顶表空间,默认为users) crate table tablename (//user table name ... ...//user feild )tablespace tablespacename;//user tablespace nameNote three: 增加列:alter table tablename add tablecolumn columntype ... ...; 删除列:alter table tablename drop column columnname; 修改列名:alter table tablename rename column oldcolumn_name to newcolumn_name; 重命名表:alter tablename rename to newtablename; 修改表空间:alter table tablename move tablespace newtablespace; 删除表:drop table tablename; 清空表内容(truncate,清空数据不能回滚):truncate table tablename; 约束: NOT NULL 非空 FOREIGN KEY 外键 UNIQUE 唯一 PRIMARY KEY 主键 CHECK 检查Note four: 关系查询: a:比较运算符 = 等于, < 小于 <= 小于等于 <>、!= 不等 > 大于 >= 大于等于 b:范围条件BETWEEN ... AND ...;NOT BETWEEN ... AND ...; c:逻辑条件:NOT、AND、OR优先级依次降低 字符匹配符:% 0-多个字符 _ 一个字符 列表运算符:IN、NOT IN 未知值条件:IS NULL 或者IS NOT NULL; 排序查询:ORDER BY column_name ASC-- 升序 -- / DESC -- 降序 -- 筛选查询:HAVING 简介:HAVING子句与WHERE子句非常相似(效果和使用方法均类似),不同的是WHERE子句是对表中数据进行限定过滤,而HAVING是对WHERE或者GROUP BY子句查询的结果集进行限定过滤的。 数据更新:update tablename set columnnmae = vol_value where yourlimiters; *********************************************************/
- SQL 与 Oracle SQL常用语句
- oracle常用SQL语句
- oracle常用SQL语句
- oracle常用SQL语句
- oracle 常用sql语句
- oracle常用sql语句
- oracle常用SQL语句
- Oracle常用SQL语句
- oracle常用SQL语句
- Oracle sql 常用语句
- oracle常用SQL语句
- 常用oracle sql语句
- oracle常用SQL语句
- oracle常用sql语句
- oracle sql 常用语句
- oracle 常用 sql语句
- Oracle常用SQL语句
- Oracle常用SQL语句
- iOS 02-NSURLConnection的使用
- 2017广西南宁邀请赛总结
- Unity Debug.Log和Print的区别
- Sentry AttributeError: 'NoneType' object has no attribute 'connection_pool'
- Paper for kindle-一款切割pdf的工具
- SQL 与 Oracle SQL常用语句
- 适配器模式
- 在Word2013中如何将PDF文件转换为Word文件?
- IOS视频压缩功能实现
- czl蒻蒟的OI之路3
- maven入门下
- 慕课课程《进击Node.js基础(二)》的小爬虫
- UI组件库jQWidgets更新至v5.2.0,新增Angular枢轴网格
- segment python