MySQL中的約束

2021-10-08 15:21:44 字數 2043 閱讀 1933

not

null

//非空約束,該字段的值是必填的

default

//預設約束,為該字段設定預設值

check

//檢查約束,mysql語法支援,效果不支援

primary

key//主鍵約束

該字段值不可以重複

1、不可以為空

2、乙個表中只能有乙個主鍵,但是可以多個欄位做組合主鍵

unique

//唯一約束

該字段值不可以重複

1、可以為空

2、乙個表中可以有多個唯一鍵,可以有組合唯一鍵

foreign

key//外來鍵約束

用於限制多表的關係

1、從表的該字段值必須來自於主表的關聯列的值

2、從表和主表的關聯列的型別必須一樣

3、主表的關聯列必須是主鍵

4、在從表中設定外來鍵

5、乙個表中可以新增多個外來鍵

6、插入資料時,先插入主表;刪除資料時,先刪除從表

*

*建立表級約束*

*constraint 約束名 約束型別(字段)

**建立表級外來鍵約束*

*constraint 約束名 foreign

key(本表字段)

references 別的表名(欄位名)

*

*新增約束*

*方式一:

alter

table 表名 modify

column 字段 字段型別 約束型別;

方式二:

alter

table 表名 add

[constraint 約束名] 約束型別 (字段);*

*刪除約束*

*刪除預設和非空

alter

table 表名 modify

column 字段 字段型別;(新增約束去掉 約束型別)

刪除主鍵:

alter

table 表名 drop

primary

key;

刪除唯一約束:

alter

table 表名 drop

index 約束名;

刪除外來鍵約束:

alter

table 表名 drop

foreign

key 約束名;

約束的格式

create

table 表名(

欄位名 字段型別 列級約束,

欄位名 字段型別 列級約束,

表級約束

)例:建立grade表包含id(主鍵),name欄位;

建立stuinfo表包含id,stuname,gender(預設:男),age,gradeid;

其中id和stuname構成組合主鍵,使用表記約束方法為age新增唯一約束,

使用grade表中的id欄位約束stuinfo表中的gradeid.

create

table grade(

id int

primary

key,

name varchar(20

))create

table stuinfo(

id int

notnull

, stuname varchar(20

),gender char

default

'男',

age int

unsigned

, gradeid int

,primary

key(id,stuname)

,#組合主鍵:id+stuname

constraint uq unique

(age)

,#唯一鍵

constraint fk_stuinfo foreign

key(gradeid)

references grade(id)

#外來鍵約束

);

mysql中的約束條件 MySQL中的約束條件

主鍵約束 primary key 1.每個表中只能有乙個主鍵 2.主鍵值必須是非空不重複 3.可以設定單字段主鍵,也可以設定多欄位聯合主鍵 聯合主鍵中多個欄位的取值完全相同時,才違反主鍵約束 新增單字段主鍵約束 create table primary key,新增多欄位聯合主鍵約束 create ...

mysql中的約束條件 MySQL中的約束條件

主鍵約束 primary key 1.每個表中只能有乙個主鍵 2.主鍵值必須是非空不重複 3.可以設定單字段主鍵,也可以設定多欄位聯合主鍵 聯合主鍵中多個欄位的取值完全相同時,才違反主鍵約束 新增單字段主鍵約束 create table primary key,新增多欄位聯合主鍵約束 create ...

mysql密碼約束 mysql中的約束型別

約束是一種限制,它通過對錶的行或列的資料做出限制,來確保表的資料的完整性 唯一性。mysql中,常用的幾種約束 primary key 主鍵 主鍵約束相當於 唯一約束 非空約束 的組合,主鍵約束列不允許重複,也不允許出現空值。每個表最多隻允許乙個主鍵,建立主鍵約束可以在列級別建立,也可以在表級別建立...