MySQL與標準SQL的差異


讓我們瞭解MySQL和標準SQL之間的差異。在某些情況下,MySQL執行許多操作的方式有所不同:

許可權

在授予使用者的許可權方面,MySQL和標準SQL之間存在許多差異。在MySQL中,刪除表時,表的許可權不會自動撤銷。需要顯式發出REVOKE語句才能撤銷表的許可權。

外部索引鍵約束

MySQL對外部索引鍵約束的實現與SQL標準不同。如果父表中有多行具有相同的引用鍵值,InnoDB引擎會像其他具有相同鍵值的父行不存在一樣進行外部索引鍵檢查。

例如,如果定義了RESTRICT型別的約束,並且存在具有多個父行子行,InnoDB將不允許刪除父行。

在對多行使用insert、delete或update的SQL語句中,外部索引鍵約束(例如唯一約束)逐行檢查。當執行外部索引鍵檢查時,InnoDB會在需要檢查的子記錄或父記錄上設定共享行級鎖。

MySQL規定出於效能原因,被引用列必須被索引。但是MySQL並不強制要求被引用列必須是唯一的或宣告為NOT NULL。

註釋

標準SQL使用C語法/* this is a comment */來顯示註釋。MySQL伺服器也支援此語法。標準SQL使用'--'作為註釋起始序列。MySQL伺服器使用'#'作為註釋起始字元。

更新於:2021年3月8日

178次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告