mysql 列約束


mysql可以對插入的數據進行特定得驗證,只有滿足條件才可以插入到數據表中,否則認為是非法插入;

 例如:人性別只可以是男、女。年齡只能是0-100。

①主鍵約束查重-PRIMARY KEY,1表一個

例子:id INT PARIMARY KEY,

聲明主鍵約束列上的值不能出現重復,一個表只可以有一個主鍵,設置主鍵約束不可以使用NULL值;

表中查詢的記錄會按照主鍵由小到大的順序排列--加快查找速度

②非空約束-NOT NULL,批量插入會失效

注意問題:INSERT INTO 插入時候會收到影響,起不了作用;

例子:id INT NOT NULL,

在插入數據時候,無法確定要保存的數據,例如:無法確定員工的工資,生日都可以使用NULL;

③唯一約束-UNIQUE

聲明了唯一約束的列上不能插入重復的值,允許插入NULL,甚至多個NULL.

說明:NULL這個值比較特殊,它和任何值都不相等,甚至和自身都不相等;

注意:一個表里可以有多個唯一約束UNIQUE,但是只能有一個主鍵約束 PRIMARY KEY

④檢查約束-CHECK

檢查約束可以對插入的數據進行自定義的驗證

CREATE TABLE student(score TINYINT CHECK(score>=0&scure<=100)

);

mysql 中不支持檢查約束,會降低數據的插入速度;

⑤默認值約束-DEFAULT

  可以使用DEFAULT關鍵字聲明默認值,有兩種方式應用默認值

第一種設置DEFAULT方法

CREATE TABLE family(

fid INT PRIMARY KEY,

fname VARCHAR(20) UNIQUE,

XX XX DEFAULT 1

);

INSERT INTO family VALUES(50,'華碩',DEFAULT);

第二種設置DEFAULT方法

INSERT INTO family (fid,fname)VALUES(50,'華碩');第三個值自動使用默認數值

注意事項:不可以在表格后括號里加引號!!!

⑥外鍵約束-FOREIGN KEY

使用方法:

CREATE TABLE laptop(

  lid INT PRIMARY KEY,

  familyld INT,

  FOREIGN KEY(familyId) REFERENCES laptop_family(fid) 

);

注意問題:

1.必須是另一個表格的主鍵

2.列類型必須和另一個表格的一樣

3.需要加了逗號寫到下一行

 聲明了外鍵約束的列,取值必須在另一個表的主鍵列上出現過,兩者的列類型要保持一致,允許使用多個NULL或者多個NULL

 使用方法:

 FOREIGN KEY (列名) REFERENCES 數據表(主鍵列)

mysql 中的自增列

AUTO_INCREMENT:

  自動增長,假如一個列聲明了自增列,無需手動賦值,直接賦值為NULL,會獲取當前的最大值, 然后加1插入

  注意: 1.只適用於整數型的主鍵列上面

        2.自增列允許手動賦值

3.手動賦值后中間跳躍有缺失,還會按最大值繼續增長。

4.使用方便,可以直接給上面寫NULL,數字自動加1;

列約束匯總

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM