功能劃分
從功能上劃分廊镜,SQL 語言可以分為DDL,DML和DCL三大類狈谊。
1. DDL(Data Definition Language)
數(shù)據(jù)定義語言疚宇,用于定義和管理 SQL 數(shù)據(jù)庫中的所有對象的語言毙死;
CREATE---創(chuàng)建表
ALTER---修改表
DROP---刪除表
2. DML(Data Manipulation Language)
數(shù)據(jù)操縱語言侵续,SQL中處理數(shù)據(jù)等操作統(tǒng)稱為數(shù)據(jù)操縱語言倔丈;
INSERT---數(shù)據(jù)的插入
DELETE---數(shù)據(jù)的刪除
UPDATE---數(shù)據(jù)的修改
SELECT---數(shù)據(jù)的查詢
3. DCL(Data Control Language)
數(shù)據(jù)控制語言憨闰,用來授予或回收訪問數(shù)據(jù)庫的某種特權(quán)状蜗,并控制 數(shù)據(jù)庫操縱事務(wù)發(fā)生的時(shí)間及效果,對數(shù)據(jù)庫實(shí)行監(jiān)視等鹉动;
GRANT--- 授權(quán)轧坎。
ROLLBACK---回滾。
COMMIT--- 提交泽示。
數(shù)據(jù)提交類型
提交數(shù)據(jù)有三種類型:顯式提交缸血、隱式提交及自動(dòng)提交蜜氨。
下面分 別說明這三種類型。
1. 顯式提交
用 COMMIT 命令直接完成的提交為顯式提交捎泻。
2. 隱式提交
用 SQL 命令間接完成的提交為隱式提交飒炎。這些命令是:
ALTER
AUDIT
COMMENT
CONNECT
CREATE
DISCONNECT
DROP
EXIT
GRANT
NOAUDIT
QUIT
REVOKE
RENAME
3. 自動(dòng)提交
- 若把 AUTOCOMMIT 設(shè)置為 ON ,則在插入笆豁、修改郎汪、刪除語句執(zhí)行后,系統(tǒng)將自動(dòng)進(jìn)行提交闯狱,這就是自動(dòng)提交煞赢。其格式為:
SQL>SET AUTOCOMMIT ON
- COMMIT / ROLLBACK這兩個(gè)命令用的時(shí)候要小心。
COMMIT / ROLLBACK
都是用在執(zhí)行 DML語句INSERT / DELETE / UPDATE / SELECT
之后的哄孤。DML 語句照筑,執(zhí)行完之后,處理的數(shù)據(jù)瘦陈,都會放在回滾段中(除了 SELECT 語句)凝危,等待用戶進(jìn)行提交(COMMIT)或者回滾 (ROLLBACK),當(dāng)用戶執(zhí)行COMMIT / ROLLBACK
后晨逝,放在回滾段中的數(shù)據(jù)就會被刪除媒抠。 - SELECT 語句執(zhí)行后,數(shù)據(jù)都存在共享池咏花。提供給其他人查詢相同的數(shù)據(jù)時(shí)趴生,直接在共享池中提取,不用再去數(shù)據(jù)庫中提取昏翰,提高了數(shù)據(jù)查詢的速度苍匆。
- 在提交事務(wù)(commit)之前可以用rollback回滾事務(wù)。
所有的 DML 語句都是要顯式提交的棚菊,也就是說要在執(zhí)行完DML語句之后浸踩,執(zhí)行
COMMIT
。而其他的諸如 DDL 語句的统求,都是隱式提交的检碗。也就是說,在運(yùn)行那些非 DML 語句后码邻,數(shù)據(jù)庫已經(jīng)進(jìn)行了隱式提交折剃,例如CREATE TABLE
,在運(yùn)行腳本后像屋,表已經(jīng)建好了怕犁,并不在需要你再進(jìn)行顯式提交。