1. 程式人生 > >DML(數據操縱語言)

DML(數據操縱語言)

分類 rac drop 完整 成功 正常 訪問 線程 可能

1.概念(C)


數據操縱語言 DML (Data Manipulation Langua)是SQL語言的一個分類,用於對表的內容或者說數據進行增、刪、改、查等操作。

通過以下幾個關鍵字實現:

SELECT(查詢) 、INSERT(插入)、 UPDATE(更新修改)、 DELETE(刪除)

2.insert(插入):(A)

2.1 作用:

往表中插入數據。

2.2 方式:


1.元祖值式插入(一次插入一行)
語法:insert into 表(列1,列2...列n) values(值1,值2...值n);
例:

--一次插入一條記錄
insert into emp (empno,ename,sal,deptno) values
(9527,華安,500,40); --需要往表中所有列都插入數據時,表後面的列可以不寫 insert into emp values(9528,秋香,null,9527,sysdate,100,null,40);

2.查詢結果式(將子查詢的結果插入到表中)
語法:insert into 表名 (子查詢)

例:

--首先創建一個emp的臨時復制表用於實驗操作
create table emp_temp as select *from emp where 1 =2;
--將子查詢的結果插入到表中
insert into emp_temp (select * from
emp);

3.delete(刪除):(A)


3.1 作用 :

刪除表中的數據。

3.2 語法:

delete from 表名 where 過濾條件(刪除滿足條件的)
例:

--from 可以省略不寫
delete emp_temp where empno=9528;
--沒有 where 過濾條件就會刪除所有數據
delete emp_temp;

4.update(更新):(A)


4.1 作用:

修改表中的數據。

4.2 語法:

update 表名 set 列1=值1,列2=值2,...,列N=值N where 過濾條件(判斷修改哪一條記錄)

例:

--給編號為9527的漲工資20%,這裏沒有過濾條件的話就變成給所有人漲20%
updata emp_temp set sal=sal*1.2 where empno=9527;

5.事務(B)


5.1 概念:

事務(Transaction)是一個操作序列。這些操作要麽都做,
要麽都不做,是一個不可分割的工作單位,是數據庫環境中的
邏輯工作單位。

5.2 作用:

事務是為了保證數據庫的完整性。例如:
A給B轉賬,需要先減掉A的賬戶余額再加到B的賬戶上,這兩個操作是一個整體,
不可能扣掉A的錢不給B加上,或者只給B加沒有扣掉A的錢。
也就是,一個事務每項任務都必須正確執行。如果有任一任務執行失敗,則整個事務就會被終止。此前對數據所作的任何修改都將被撤銷

5.3 事務的開始與結束:

在oracle中,沒有事務開始的語句。
一個事務起始於一條DML(Insert、Update和Delete )語句。
結束於以下的幾種情況:
–用戶顯式執行Commit語句提交操作或Rollback語句回退。
–當執行DDL(Create、Alter、Drop)語句事務自動提交。
–用戶正常斷開連接時,事務自動提交。
–系統崩潰或斷電時事務自動回退。

5.4Commit(提交)和Rollback(回退):
Commit :事務成功結束,提交數據到數據庫,更新數據庫內容
Rollback:事務不成功結束,事務中的操作被撤銷,回到事務開始前的狀態

5.5 事務四大特征(ACID):(C)

1. 原子性(Atomicity) 一個原子事務要麽完整執行,要麽幹脆不執行。
也就是,一個事務每項任務都必須正確執行。如果有任一任務執行失敗,則整個事務就會被終止。此前對數據所作的任何修改都將被撤銷
2. 一致性(Consistency) 一致性代表了底層數據存儲的完整性。就像上面第2點舉的例子,A錢減了B錢才能加,兩邊的數據保持一致
3. 隔離性(Isolation),在事務或工作單元執行完畢之前,其所訪問的數據不能受系統其他部分的影響。(類似於線程安全)
4. 持久性(Durability) 持久性表示在某個事務的執行過程中,對數據所作的所有改動都必須在事務成功結束前保存至某種物理存儲設備。這樣可以保證,所作的修改在任何系統癱瘓時不至於丟失。

DML(數據操縱語言)