MySQL.常見表選項及約束
1.create table 選項
1.指定列選項 default、comment
2.指定表選項 engine、auto_increment、comment
2.create table 約束
1.非空約束:not null
2.唯一約束:unique
3.主鍵約束: primary key
4.外鍵: foreign key
5.檢查enum、set:chect
一、create table 選項
a. 定義列的時候,指定列選項
1.default<literal>:定義列的默認值
當插入一個新行到表中並且沒有給該列明確賦值,如果定義了列的默認值,將自動得到默認值,如果沒有,則為null
也可以在insert和 update 語句中使用 default 關鍵字給默認值賦值,函數default(column)也得到一個列的默認值
2.comment 用來給列添加註釋,最多為255個字符,註釋將會保存在數據字典中
b. 在create table 語句中的表選項
1.engine :指定表使用的儲存引擎 #儲存引擎:決定了表中的數據如何存儲以及如何訪問,還有事務如何處理
MySQL中允許對每個表使用不同的儲存引擎,如果在create table 中沒有使用儲存引擎,則使用默認的儲存引擎。
MySQL > show engines #查詢所有支持的儲存引擎
(儲存引擎是重點)
2.auto_increment :決定當前表中插入第一行時,自增列得到的第一個值是多少
3.comment:給表添加註釋
二、create table 約束
作用:可以為列定義約束(constraint)
約束主要是防止非法數據進入表中,確保數據的正確性和一致性(統稱數據完整性)
約束也可以防止一個表被刪除
註意:1.MySQL中約束保存在表中,可以通過表查詢約束信息
2.進行約束的時間:使用create table語句、使用alter table語句
常見的約束類型有5種:1.not null 非空約束,指定某列不能為空
2.unique 唯一約束,指定某列和幾列組合的數據不能重復
3.primary key 主鍵約束,指定某列的數據不能重復、唯一
4.foreign key 外鍵,指定該列記錄屬於主表中的一條記錄,參照另一條數據
5.check 檢查,指定一個表達式,用於檢查指定數據
註意:1.not null 約束只能在列級別定義,作用在多個列上約束只能定義在表級別,例如復合主鍵約束
2.列級別上不能定義外鍵約束,並且不能給約束起名字,有MySQL自動命名(not null除外)
· 3.表級別上定義的約束可以給約束起名字(check除外)
1.not null 非空約束
作用:確保當前列的值不能為空
註意:非空約束只能出現在表對象的列上
2.
MySQL.常見表選項及約束