集合运算:
一、 union求并集,公共部分只有包含一次
例:求emp表ename中含’A‘或含有‘M’
select * from emp whereename like '%A%'
union
select * from emp where ename like '%M%';
二、union all求集并,公共部分只有包含二次
例:求emp表ename中含’A‘或含有‘M’
select * from emp whereename like '%A%'
union all
select * from emp where ename like '%M%';
三、intersect求交集,只有包含公共部分
例:求emp表ename中即含’A‘又含有‘M’
select * from emp whereename like '%A%'
intersect
select * from emp where ename like '%M%';
四、minus求差集,求集合A去除集合A和集合B的交集
例:求emp表sal从700到1200
select * from emp where salbetween 700 and 1300
minus
select * from emp where sal between 1200 and 1400;
SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML, 数据定义语言DDL,数据控制语言DCL。其中用于定义数据的结构,比如 创建、修改或者删除数据库;DCL用于定义数据库用户的权限;在这篇文章中我将详细讲述这两种语言在Oracle中的使用方法。
DML语言
DML是SQL的一个子集,主要用于修改数据,下表列出了oracle支持的DML语句。
语句 用途
insert 向表中添加行
update 更新存储在表中的数据
delete 删除行
select for update 禁止其他用户访问DML语句正在处理的行。
Lock table 禁止其他用户在表中使用DML语句
插入数据
insert语句常常用于向表中插入行,行中可以有特殊数据字段,或者可以用子查询从已存在的数据中建立新行。
插入行的数据的数量和数据类型必须和列的数量和数据类型相匹配。不符合列定义的数据类型将对插入值实行隐式数据转换。NULL字符串将一个NULL值插入适当的列中。关键字NULL常常用于表示将某列定义为NULL值。
更新数据
UPDATE命令用于修改表中的数据。
update emps setjob='student' where empno=7937; 删除数据
DELETE语句用来从表中删除一行或多行数据,该命令包含两个语句:
1、关键字DELETE FROM后跟准备从中删除数据的表名。
2、WHERE后跟删除条件
delete from emps whereempno=7936;
锁定表
LOCK语句常常用于锁定整个表。当表被锁定后,大多数DML语言不能在该表上使用。LOCK语法如下:
LOCK schema table INlock_mode
死锁
当两个事务都被锁定,并且互相都在等待另一个被解锁,这种情况称为死锁。
当出现死锁时,ORACLE将检测死锁条件,并返回一个异常。
事物的提交(commit)和回滚:(rollback)
COMMIT和ROLLBACK语句的优点
使用COMMIT 和 ROLLBACK语句,我们可以:
确保数据完整性。
数据改变被提交之前预览。
将逻辑上相关的操作分组