mysql約束的型別 MySQL約束型別及舉例介紹

2021-10-19 21:33:30 字數 2213 閱讀 2266

約束

約束保證資料的完整性和一致性

約束分為表級約束和列級約束

約束型別包括:not null (非空約束),primary key(主鍵約束),unique key(唯一約束),default(預設約束),foreign(外來鍵約束)

1.主鍵約束

primary key

每張資料表只能存在乙個主鍵

主鍵保證記錄的唯一性,主鍵的值不重複

主鍵自動為 not null

舉例,建立一張student表,將學號設定為主鍵建立完表之後,通過shwo columns from student檢視表結構

create table student(

id int primary key,

stu_name varchar(20)

2.唯一約束

unique key

唯一約束可以保證記錄的唯一性

唯一約束的字段可以為空值(null)

每張資料表可以存在多個唯一約束

舉例,建立乙個teacher表,id欄位自增,tea_name唯一

create table teacher(

id int auto_increment primary key,

tea_name varchar(20) not null unique key

3.預設約束

default

當插入記錄時,如果沒有明確為字段賦值,則自動賦予預設值

舉例,建立一張course表,預設上課時間為40分鐘

create table course(

id int auto_increment primary key,

cou_name varchar(20) not null unique key,

time int default 40

insert into course(cou_name) values('語文');

4.非空約束

not null

強制列不能為 null 值,約束強制字段始終包含值。

這意味著,如果不向字段新增值,就無法插入新記錄或者更新記錄。

舉例,在 "persons" 表建立時在 id列、name列建立 not null 約束:

create table persons(

id int not null,

p_name varchar(20) not null,

deparment varchar(20),

address varchar(20),

telnum varchar(20)

desc persons;

5.外來鍵約束

foreign key

保持資料的一致性,完整性

實現1對1或1對n關係

1.父表與子表必須使用相同的儲存引擎,而且禁止使用臨時表。

2.資料表的儲存引擎只能是innodb

3.外來鍵列和參照列必須具有相似的資料型別。其中數字的長度或是否有符號位必須相同;而字元的長度則可以不同。

4.外來鍵列和參照列必須建立索引。如果外來鍵列不存在索引的話,mysql將自動建立索引。

create table school(

id int auto_increment primary key,

sname varchar(20) not null

create table student2(

id int auto_increment primary key,

sid int,

foreign key (sid) references school(id)

外來鍵約束的參照操作

cascade : 從父表刪除或更新且自動刪除或更新子表中匹配的行

父表中被引用的列刪除了某個資料,子表中刪除對應資料的行

create table student3(

id int auto_increment primary key,

sid int,

foreign key (sid) references school(id) on delete cascade

set null:從父表刪除或更新行,並設定子表的外來鍵列為null。如果使用該項,必須保證子表列沒有指定not null

父表中刪除資料,將子表中的引用設定為null

restrict:拒絕對父表的刪除或更新操作

no action:標準sql的關鍵字,在mysql中與restrict相同

mysql約束 MySQL 約束型別

約束是一種限制,它通過對錶的行或列的資料做出限制,來確保表的資料的完整性 唯一性。mysql中,常用的幾種約束 約束型別 主鍵外來鍵唯一非空自增預設值 關鍵字 primary key foreign key unique not null auto increment default 1 主鍵約束 ...

mysql 型別 MySQL 約束型別

mysql約束型別 主鍵約束 唯一鍵約束 外來鍵約束 非空約束 表屬性自動增加 設定表字段的預設值 1 主鍵約束 關鍵字 primary key 主鍵是表的乙個特殊字段。該字段能唯一的標識該表中的每條資訊。主鍵和記錄的關係,如同 和人的關係。主鍵用來標識每個記錄,每個記錄的主鍵值都不同。是用來表明人...

MySQL 約束型別

create table student stuno char 11 primary key create table student stuno char 11 primary key stuname char 10 stuid char 20 unique 向學生表中插入資料 insert in...