mysql學習筆記之二(資料表條件約束),mysql學習筆記

來源:互聯網
上載者:User

mysql學習筆記之二(資料表條件約束),mysql學習筆記
動作表約束

完整性是指資料的準確性和一致性,而完整性檢查就是指檢查資料的準確性和一致性。mysql資料庫管理系統提供了一直機制來檢查資料庫中的資料是否滿足規定的條件。以保證資料庫中資料的準確性和一致性,這種機制就是約束。
mysql所支援的完整性條件約束
NOT NULL(NK)
DEFAULT
UNIQUE KEY(UK)限制欄位的值是唯一的
PRIMATYKEY(PK)
AUTO_INCREMENT
FOREIGN KEY(FK)
不支援check約束,即可以使用check約束,但是沒有效果
約束:
單列約束
多列約束
1、NOT NULL (NK)
在建立表的時候,指定屬性為not null即可
例:
create table t_name(
column type not null
)
create table t_notnull{
id int not null,
name varchar(20)
}
insert into t_notnull(name) values("dsagdfs");
會發現對應的id被置為0
alter table t_notnull modify id int;
insert into t_notnull(name) values("fdgdf");
發現對應的id為null
2、DEFAULT
建立表時指定
create table t_name(
column type default
)
例:
create table t_default(
id int not null,
name varchar(20) default 'test'
)
insert into t_default(id) values(1);
insert into t_dedault(name) values('name');
3、AUTO_INCREMENT
create table t_name(
column type auto_increment
)
create table t_auto(
id int primay key auto_increment,
name varchar(20) default 'test'
)
注意:使用的時候該列要指定為primary key,該列是數值列
4、UNIQUE UK
create table t_name(
column type unique
)
create table t_name(
column type
constraint uk_column unique(column)
)
constraint:約束
在為約束設定標示符時,推崇使用“約束縮寫_欄位名”的格式
create table t_unique(
id int primary key,
name varchar(20) unique
)
注意:
1、auto_increment顯然也能實現unique的功能,但是沒有unique靈活,unique的列不必是主鍵列,也不一定是數字列,
2、varchar必須指定位元組數,否則會失敗
5、primary key
單欄位主鍵
create  table t_name(
column type primary key
)
create table t_name(
column type
contraint pk_column primary key(column)
)
多欄位主鍵
create table t_name(
column1 type ,
column2 type
...
contraint pk_column1_column2 primarykey(column1,column2)
)
6、foreign key
前五個約束都是都是單表,而外鍵約束牽涉到了多個表。
設定外鍵約束的兩個表之間會有父子關係,即子表中某個欄位的取值範圍由父表所決定。
在具體設定FK約束時,設定FK約束的欄位必須依賴於資料庫中的已經存在的父表的主鍵,同時外鍵可以為null
create tablet_name(
column1 type,
column2 type,
constraint fk_column1 foreign key(column1) references tablename (columname)
)
column1:外鍵,columnname:父表中設定主鍵約束的欄位

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.