Sql語言被分爲四大類:數據查詢語言(DQL),數據操縱語言(DML),數據定義語言(DDL),數據控制語言(DCL)。mysql
1. 數據查詢語言(DQL)sql
數據查詢語言基本結構由select子句,from子句,where子句組成的查詢塊:數據庫
select [字段名] from [表或視圖名] where [查詢條件]spa
*注:show不屬於數據查詢語言,嚴格來講show屬於數據控制語言(DCL)。對象
查詢select是對表裏的信息數據進行查看,而顯示show是對錶結構和庫中存放表的數據信息查看。索引
2. 數據操縱語言(DML)事務
數據操縱語言是用來對表裏存在的信息數據作修改,而表自己的主要構成結構不會變更。主要有三種形式:it
插入:inserttable
更新:updatedate
刪除:delete
3. 數據定義語言(DDL)
數據定義語言用來建立或修改數據庫中的各類對象的結構——庫、表、表引擎、字符集、視圖、索引、同義詞、聚簇
以及約束限制結構等;如:
create database/table/view/index/syn/cluster
alter table [表名] add/drop/change/modifiy column [字段] [字段定義] after [表存在的字段]
Drop table [表名];
truncate table [表名];
rename [原表名] to [新表名]
*注:數據定義語言是隱性提交的,不能rollback回滾
4. 數據控制語言(DCL)
數據控制語言用來授予或回收訪問數據庫的某種特權,並控制數據庫操縱實務發生的時間及效果,對數據庫實行監如:
show:顯示
grant:受權
rollback [工做點] to [保存點]:回退到某一點
回滾到數據最進提交前的狀態
mysql>rollback;
commit [工做點]:提交
全部的數據操縱語句都是要顯式提交的,所謂顯示提交就是要執行commit/rollback。
數據操縱語句執行完後,處理的數據都會放在回滾段中,等待用戶進行提交或者回滾,
當用戶執行commit/rollback後,放在回滾段中的數據就會被刪除。
顯式提交是由你決定是否提交,這種事務容許你本身決定哪批工做必須成功完成,不然全部部分都不能完成。
目的是爲了給本身的事務定界。
mysql數據庫隱式提交的三種狀況:
1. 正常執行完數據定義語言(DDL)包括create,alter,drop,truncate,rename。
2. 正常執行完數據控制語言(DCL)包括grant,revoke。
3. 正常退出mysql客戶端,沒有明確發出commit/rollback。
其餘的如數據定義語言(DDL),都是隱式提交的。就是不用進行commit/rollback。
在運行非數據操控語言後,mysql已經進行了隱式提交。
例如create table,在運行指令後表已經建好了,並不在須要進行顯式提交。
隱式事務又稱自動提交事務,由系統自動幫你完成並不須要你來提交。
在插入、修改、刪除語句執行後,系統將自動進行提交。顯式提交轉變爲隱式提交的過程稱爲自動提交。