資料庫列約束

2021-10-05 23:33:28 字數 1566 閱讀 9323

##你還看不懂資料庫列約束嗎?

資料庫列約束

1.主鍵約束–primary key

宣告了主鍵約束的列上不允許插入重複的值(乙個表中只能有乙個主鍵約束)

一般將主鍵約束設定給編號,特點:主鍵約束會自動由小到大自動排序

#語法

create table 表名(lid int primary key, ...)

#lid 表示列名稱

2.唯一約束-- unique

宣告了唯一約束的列上不允許插入重複的值

//語法

create table 表名(lid int unique,)

3.非空約束

宣告唯一約束的列上禁止插入null

null代表不確定的值 ,倆個null並不相等

create table 表名(lid int not null,)
4.預設值約束–default

​ 可以使用default關鍵字宣告預設值,有兩種方式可以應用預設值

方法一:insert into laptop values(1,』小公尺air』,default..);

方法二:insert into laptop(lid,title) values(2,』外星人』)

#建立

create table 表名(lid int default 值,)

#用法方法一:

使用的時候在該位置直接寫default

方法二:專門為某列設定值,其餘為預設值

insert into 表名(某列) values(值);剩下的值自動設為預設值

5.檢查約束–check

可以對要插入的資料進行自定義的驗證。

語法:check( 列名 條件)

重點:mysql不支援檢查約束,會影響資料插入速度

create table 表名(lib int cheak(lib>0))
6.外來鍵約束

宣告了外來鍵約束的列,取值必須在另乙個表的主鍵列上出現過,兩者的列型別保持一致,允許使用null

foreign key(主鍵列名) references 表名(列名) <— 另乙個表的主鍵

familuid int,

foreign key(familuid) references laptop(lib)

*兩個表的列型別要一致

自增列–auto_increment

自動獲取當前資料最大值,然後加一

需滿足的條件:

​ 必須在主鍵列上,而且還是整數列型別

用法:

create table loptop(

lib int primary key auto_increment,

.....

);#插入資料

insert into loptop values( null,.....);

#必須賦值null才能自增

MySQL資料庫 列約束

mysql可以對插入的資料進行特定的驗證,只有符合格式才允許插入,否則認為非法的插入,列如乙個人的性別只能是男或女 1 主鍵約束 primary key 首要的 主要的 鍵 不重複,乙個資料表只能有乙個,可以加快資料的查詢速度。不確定的可以用null,主鍵約束不允許為null 2 非空約束 not ...

資料庫表的列約束

1 主鍵約束 primary key 宣告了主鍵約束的列上不允許插入重複的值,乙個表中只能有乙個主鍵,通常加在編號列上,查詢的時候會按照主鍵標號從小到大排序,會加快查詢速度。主鍵約束不允許為null 2 唯一約束 unique 宣告了唯一約束的列上,不允許插入重複的值,但允許插入null,並且多個n...

資料庫約束

mysql有兩種常用的引擎型別 myisam和innodb。目前只有innodb引擎型別支援外來鍵約束。innodb中外鍵約束定義的語法如下 constraint symbol foreign key index name index col name,references tbl name ind...