91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL約束類型的示例分析

發布時間:2021-07-30 11:15:06 來源:億速云 閱讀:134 作者:小新 欄目:MySQL數據庫

這篇文章主要介紹MySQL約束類型的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

約束 

  • 約束保證數據的完整性和一致性

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

  • 約束類型包括: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約束類型的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兰西县| 逊克县| 保康县| 上饶县| 渭源县| 四川省| 资源县| 呼伦贝尔市| 巨野县| 偃师市| 新乐市| 思茅市| 霸州市| 锦屏县| 吴江市| 青川县| 七台河市| 鹤壁市| 巴林右旗| 石棉县| 洛隆县| 余干县| 永修县| 金昌市| 大田县| 博爱县| 滕州市| 黑水县| 老河口市| 云霄县| 商河县| 安福县| 漳州市| 凤阳县| 嫩江县| 康保县| 库尔勒市| 屏山县| 梅河口市| 鄯善县| 滕州市|