MYSQL中約束及修改數據表
28:約束
約束保證數據的完整性和一致性
約束分為表級約束和列級約束
約束類型包括:
NOT NULL(非空約束)
PRIMARY KEY(主鍵約束)
UNIQUE KEY(唯一約束)
DEFAULT(默認約束)
FOREIGN KEY(外鍵約束)
29:查看數據表的存儲引擎
SHOW CREATE TABLE 數據表名;
30:刪除表中的數據
DELETE FROM 數據表名 WHERE 條件;
31:外鍵約束的參照操作(外鍵約束的要求解析)
外鍵約束保證數據一致性,完整性,實現一對多或者一對一關系
(含有外鍵的表稱為子表)
外鍵約束的要求
1:父表和子表必須使用相同的存儲引擎,而且禁止使用臨時表
2:數據表的存儲引擎只能為InnoDB
3:外鍵列和參照列必須具有相似的數據類型,其中數字的長度或是否有符號位必須相同,而字符的長度則可以不同
4:外鍵列和參照列必須創建索引。如果外鍵列不存在索引的話,MYSQL將自動創建索引

32:查看是否存在索引
SHOW INDEXES FROM provinces;
以網格的形式顯示索引
SHOW INDEXES FROM provinces\G;



33:外鍵約束的參照操作
CASCADE:從父表刪除或者更新且自動刪除或者更新子表中匹配的行
《在兩表中插入記錄,必須先在父表中插入記錄》
SET NULL:從父表刪除或者更新行,並且設置子表中的外鍵列為NULL,如果使用該選項,必須保證子表列沒有指定NOT NULL
RESTRICT:拒絕對父表的刪除或者更新操作
NO ACTION:標准sql的關鍵字,在my sql中與RESTRICT相同





刪除表中的數據
DELETE FROM 數據表名 WHERE 條件;

34:表級約束和列級約束
對一個數據列建立的約束,稱為列級約束《實際開發中多用》
對多個數據列建立的約束,稱為表級約束
列級約束既可以在列定義時聲明,也可以在列定義后聲明,
表級約束只能在列定義后聲明。
35:修改數據表(修改,刪除)
添加單列
ALTER TABLE 數據表名 ADD 列名稱 列定義 [FIRST] 指定列
添加單列(不可以指定位置)
...
刪除列
ALTER TABLE 數據表名 DROP 列名;









添加主鍵約束(只可以有一個)






添加唯一約束(可以添加多個)



添加外鍵約束




添加或者刪除默認約束






刪除主鍵約束


刪除唯一約束



查看約束的名字
SHOW INDEXES FROM 數據表的名字;

刪除外鍵約束


查看外鍵名稱
SHOW CREATE TABLE 數據表名;

刪除索引

修改列定義


修改列名稱

修改數據表的名字




