国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL約束類型及舉例介紹

2024-07-24 12:49:45
字體:
來源:轉載
供稿:網友

約束 

約束保證數據的完整性和一致性 約束分為表級約束和列級約束 約束類型包括: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相同
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东宁县| 乡宁县| 长白| 壶关县| 渭源县| 神池县| 方山县| 太康县| 黎城县| 平泉县| 新兴县| 布尔津县| 高要市| 通化县| 闽侯县| 镇巴县| 磐安县| 峨眉山市| 河池市| 通辽市| 饶平县| 龙陵县| 南陵县| 望江县| 白城市| 嵊泗县| 靖远县| 托克托县| 营山县| 鄂温| 新丰县| 富源县| 翼城县| 鄯善县| 大城县| 龙南县| 泰和县| 屏边| 高要市| 灌南县| 库尔勒市|