整數類型:TINYINT SMALLINT MEDIUMINT INT BIGINT mysql
屬性:UNSIGNEDsql
長度:能夠爲整數類型指定寬度,列如:INT(11)、對大多數應用是沒有意義的,它不會限制值的合法範圍,只會影響顯示字符的個數。數據庫
實數類型:FLOAT DOUBLE DECIMAL安全
DECIMAL可存儲比BIGINT還大的整數;能夠用於存儲精確的小數FLOAT和DOUBLE類型支持使用標準的浮點進行近似計算。併發
字符串類型:VARCHAR CAHR TEXT BLOB函數
VARCHAR類型用於存儲可變長字符串,它比定長類型更節省空間工具
VARCHAR使用1或2個額外字節記錄字符串的長度,列長度小於255字節,使用一個字節表示,不然用2個性能
varchar長度,若是存儲內容超過指定長度,會被截斷。、優化
char是定長的,根據定義的字符串長度分配足夠的空間。char會根據須要採用空格進行填充以方便比較。線程
char適合存儲很短的字符串,或者全部值都接近同一個長度
char長度,超出設定的長度,會被截斷
對於常常變動的數據,CHAR比VARCHAR更好,CHAR不容易產生碎片,對於很是短的列,CHAR比VARCHAR在存儲空間上更有效率只分配真正須要的空間,更長的列會消耗更多的內存
MySQL基礎操做
鏈接數據庫:mysql -u -p -h -p 用戶名 密碼 IP 端口
show create use drop delete select update
MySQL存儲引擎
InnoDB:默認事務型引擎,最重要最普遍的存儲引擎,性能很是優秀,數據存儲在共享表空間,能夠經過配置分開。對主鍵查詢的性能高於其餘類型的存儲引擎,內部作了不少優化,從磁盤讀取數據時自動在內存構建hash索引,插入數據時自動構建插入緩衝區。
經過一些機制和工具支持真正的熱備份,支持崩潰後的安全回覆,支持行級鎖,支持外鍵。
MyISAM:5.1版本之前,MyISAM是默認的存儲引擎。擁有全文索引、壓縮、空間函數
不支持事務和行級鎖,不支持崩潰後的安全恢復。表存儲在兩個文件,MYD和MYI,分別存儲數據和索引。設計簡單,某些場景下性能很好。
其餘表引擎:Archive Blackhole CSV Memory
MySQL鎖機制
鎖是計算機協調多個進程或線程併發訪問某一些資源的機制。
共享鎖(讀鎖)/排它鎖(寫鎖)
讀鎖:針對同一份數據,多個讀操做能夠同時進行而不會互相影響
寫鎖:當前寫操做沒有完成前,它會阻斷其餘線程對當前數據的修改和讀取。
MySQL事務處理、觸發器
事務:原子性----一組操做,要麼所有執行成功,要麼所有都不執行。
隔離性----在全部的操做沒有執行完畢以前,其餘會話不可以看到中間改變的過程。
一致性----事務發生前和發生後,數據的總額依然匹配
持久性----事務所執行的結果不能撤銷
start transaction;開啓事務
要執行的SQL語句
Commit 提交
rollback 回滾
當一個事務提交或回滾以後就結束事務。
觸發器:監視某種狀況並觸發某種操做
Create trigger triggerName
After/before insert/update/delete on 表名
For each row #這句話是固定的
Begin
Sql語句; # 一句或多句,insert/update/delete範圍內
End;
刪除觸發器的語法:
Drop trigger 觸發器名
查看觸發器
Show triggers