程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql學習筆記之二(表約束)

mysql學習筆記之二(表約束)

編輯: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:父表中設置主鍵約束的字段

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved