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

2021-10-25 13:59:42 字數 2239 閱讀 2694

約束

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

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

約束型別包括: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 約束

4 約束 1 對乙個列新增的約束叫列級約束。對兩個或兩個以上的列新增的約束叫做表級約束。2 表級約束只能在字段後面新增,列級約束既可以新增在字段後面,也可以在最後新增。3 非空 預設只存在列級約束。主鍵 唯 一 外來鍵都既有表級約束又有列級約束。4 約束有 primary key 主鍵 unique...

mysql約束 MySQL 約束型別

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

mysql怎麼約束 MySQL 約束詳解

mysql 約束詳解 mysql 中的約束是用來保證資料的完整性的機制。資料完整性一般有以下三種形式 實體完整性 保證表中有乙個主鍵。域完整性 保證資料每列的值滿足特定條件。引用完整性 保證兩張表之間的引用關係。以上三種形式的完整性在 mysql 中都有相應約束進行保證。使用主鍵和唯一鍵約束可以保證...