SQL查询语句(oralce)(1)
一、SQL命令
1.数据定义语言:DDL
主要用于创建删除数据库对象和维护数据对象的属性。主要有三个主命令:CREATE .DROP . ALTER
示例:
SQL>--创建普通数据表
SQL>CREATE TABLE ORDERS
(
Oid number PRIMARY KEY NOT NULL,
username varchar2(50) references USERINFO (username)
);
SQL>--创建备份数据表
SQL>CREATE TABLE 表1 AS SELECT * FROM 表2;
SQL>--删除表
SQL>DROP TABLE 表名;
SQL>--添加.修改.删除字段
SQL> ALTER TABLE 表名 ADD/MODIFY(字段 类型);
SQL> ALTER TABLE 表名 DROP(字段);
2.数据操作语言:DML
数据操作语言主要是对表数据操作的一些指令,
包括SELECT .INSERT .UPDATE.DELETE。
(1)普通查询语句:SELECT 字段 FROM 表名 WHERE 神马字段 = 神马;等等
(2)关联查询:
内连接:连接两个表中只要数据存在不匹配就都不显示
示例1:SELECT 字段.... FROM 表1 JOIN 表2 ON 表1.字段0 = 表2.字段0 ORDER BY 字段0
示例2:SELECT 字段.... FROM 表1 INNER JOIN 表2 ON 表1.字段0 = 表2.字段0 ORDER BY 字段0
示例3:SELECT 字段.... FROM 表1,表2 WHERE 表1.字段0 = 表2.字段0 ORDER BY 字段0
外连接:在两个表连接查询时,两个表中都存在空匹配的记录,这些记录都显示出 来,空匹配的字段用Null表示。
示例1:SELECT 字段.... FROM 表1 FULL OUTER JOIN 表2 ON 表1.字段0 = 表2.字段0
示例2:SELECT 字段.... FROM 表1 FULL JOIN 表2 ON 表1.字段0 = 表2.字段0
左连接:连接两个表的左表为主显示表,空匹配用Null
示例1:SELECT 字段 FROM 表1 LEFT JOIN 表2 ON 表1.字段0 = 表2.字段0
示例2:SELECT 字段 FROM 表1 LEFT OUTER JOIN 表2 ON 表1.字段0 = 表2.字段0
示例3:SELECT 字段 FROM 表1 , 表2 WHERE 表1.字段0 = 表2.字段0(+)
右连接:类似于左连接,但是以右表为基表
示例1:SELECT 字段 FROM 表1 RIGHT JOIN 表2 ON 表1.字段0 = 表2.字段0
示例2:SELECT 字段 FROM 表1 RIGHT OUTER JOIN 表2 ON 表1.字段0 = 表2.字段0
示例3:SELECT 字段 FROM 表1 , 表2 WHERE 表1.字段0(+) = 表2.字段0
(3)插入.修改数据
示例: SQL>INSERT INTO 表名 VALUES(对应的内容);
SQL>UPDATE 表名 SET 神马字段=新内容 WHERE ID = 那一个;
3.数据控制语言:DCL
主要用于数据库中权限的授予和取消。
角色:系统中一组权限的集合,可以将一个角色授予一个用户,这个用户会同时拥有 该角色所有权限
常用角色:CONNECT(基本的连接),RESOURCE(资源使用),DBA(数据库管理)
授权
示例1:SQL> GRANT CONNECT,RESOURCE TO 用户名;
示例2:
GRANT ALL ON 对象名 TO 用户名;是将该对象上的所有权限授予指定用户。
回收权限:
示例1:REVOKE 系统权限名 FROM 用户名
示例2:REVOKE 对象权限名 ON 对象名 FROM 用户名
4.事务控制语言:TCL
TCL几个事务控制命令:
COMMIT(提交) . ROLLBACK(回退) . SAVEPOINT(保存)
5.伪表及伪列
(1)DUAL的伪表,这个表的数据中有一行一列
示例:SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd hh24:mi:ss') FROM DUAL;
(2)伪列
ROWID 记录每一数据行在硬盘上位置的唯一标识;
ROWNUM 标识查询结果集中记录序号;
LEVEL 查询数据所对应的层次;
注:在select查询中执行计划是首先给出 rownum 排序,然后进行 order by 排序。
6.集合运算
(1)并集(UNION):目的是将两个sql语句的结果合并起来,可以查看你要查询的结果
UNION : 会排除重复的记录。
UNION ALL :不会排除重复的记录,速度较UNION快很多,建议在相同的情况下用这个。
注:UNION 用法中,两个select语句的字段类型匹配,并且字段个数要相同。
示例1:SQL>SELECT * FROM 表1 UNION SELECT * FROM 表2;
示例2:SQL>SELECT * FROM 表1 UNION ALL SELECT * FROM 表;
(2)交集(INTERSECT):会在两个查询结果中找到相同的记录。
示例:SQL>SELECT * FROM 表1 INTERSECT ALL SELECT * FROM 表2;
(3)剪集/割集(MINUS):会从第一个结果集合中减去第二个结果集合中存在的记录。
示例:SQL>SELECT * FROM 表1 MINUS ALL SELECT * FROM 表2;
已有 0 人发表留言,猛击->> 这里<<-参与讨论
ITeye推荐