集合運算:
一、 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語句,我們可以:
確保數據完整性。
數據改變被提交之前預覽。
將邏輯上相關的操作分組