從功能上劃分,SQL 語言能夠分爲DDL,DML和DCL三大類。
1. DDL(Data Definition Language)
數據定義語言,用於定義和管理 SQL 數據庫中的全部對象的語言 ;
CREATE---建立表
ALTER---修改表
DROP---刪除表
2. DML(Data Manipulation Language)
數據操縱語言,SQL中處理數據等操做統稱爲數據操縱語言 ;
INSERT---數據的插入
DELETE---數據的刪除
UPDATE---數據的修改
SELECT---數據的查詢
3. DCL(Data Control Language)
數據控制語言,用來授予或回收訪問數據庫的某種特權,並控制 數據庫操縱事務發生的時間及效果,對數據庫實行監視等;
GRANT--- 受權。
ROLLBACK---回滾。
COMMIT--- 提交。mysql
4. 提交數據有三種類型:顯式提交、隱式提交及自動提交。sql
下面分 別說明這三種類型。數據庫
(1) 顯式提交spa
用 COMMIT 命令直接完成的提交爲顯式提交。
(2) 隱式提交對象
用 SQL 命令間接完成的提交爲隱式提交。這些命令是:事務
ALTER , AUDIT , COMMENT , CONNECT , CREATE , DISCONNECT , DROP , EXIT , GRANT , NOAUDIT , QUIT , REVOKE , RENAME 。ip
(3) 自動提交it
若把 AUTOCOMMIT 設置爲 ON ,則在插入、修改、刪除語句執行後,io
系統將自動進行提交,這就是自動提交。其格式爲: SQL>SET AUTOCOMMIT ON ;
COMMIT / ROLLBACK這兩個命令用的時候要當心。 COMMIT / ROLLBACK 都是用在執行 DML語句(INSERT / DELETE / UPDATE / SELECT )以後的。DML 語句,執行完以後,處理的數據,都會放在回滾段中(除了 SELECT 語句),等待用戶進行提交(COMMIT)或者回滾 (ROLLBACK),當用戶執行 COMMIT / ROLLBACK後,放在回滾段中的數據就會被刪除。
(SELECT 語句執行後,數據都存在共享池。提供給其餘人查詢相同的數據時,直接在共享池中提取,不用再去數據庫中提取,提升了數據查詢的速度。)
全部的 DML 語句都是要顯式提交的,也就是說要在執行完DML語句以後,執行 COMMIT 。而其餘的諸如 DDL 語句的,都是隱式提交的。也就是說,在運行那些非 DML 語句後,數據庫已經進行了隱式提交,例如 CREATE TABLE,在運行腳本後,表已經建好了,並不在須要你再進行顯式提交。數據
在提交事務(commit)以前能夠用rollbacl回滾事務
mysql中爲何不須要顯示commit,由於mysql默認auto commit 是on的。