##你還看不懂資料庫列約束嗎?
資料庫列約束
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...