日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql约束教程,MySQL 约束

發布時間:2023/12/10 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql约束教程,MySQL 约束 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本章我們將介紹約束,約束放在列或表上。 它們限制了可以插入表中的數據。

我們有以下限制:

非空

唯一

主鍵

外鍵

枚舉

SET

其他數據庫也具有 CHECK 約束,該約束為有效數據設置了條件。 MySQL 解析了這個約束,但是沒有強制執行。

非空約束

具有NOT NULL約束的列不能具有 NULL 值。

我們創建兩個具有NOT NULL約束的列。

第一個SELECT語句執行成功,第二個失敗。 SQL 錯誤說,LastName列不能為空。

唯一約束

UNIQUE約束確保所有數據在列中都是唯一的。

在這里,我們創建一個表Brands。 BrandName列設置為UNIQUE。 不能有兩個名稱相同的品牌。

對于鍵“ BrandName”,我們收到一個 SQL 錯誤 Duplicate 項“ Pepsi”。 只能有一個百事可樂品牌。

注意,PRIMARY KEY約束自動在其上定義了UNIQUE約束。

主鍵

PRIMARY KEY約束唯一地標識數據庫表中的每個記錄。 這是唯一鍵的特例。 主鍵不能為NULL,唯一鍵可以為。 可以有更多UNIQUE列,但是表中只有一個主鍵。 在設計數據庫表時,主鍵很重要。 主鍵是唯一的 ID。 我們使用它們來引用表行。 在表之間創建關系時,主鍵成為其他表中的外鍵。

Brands表的 Id 列成為主鍵。

DESCRIBE語句顯示有關表中各列的信息。 我們可以看到 Id 列定義了PRIMARY KEY,BrandName設置了UNIQUE約束。 在處理特定表時,主鍵用于唯一標識表中的行。 唯一鍵強制列中的所有數據都不重復。

外鍵

一個表中的FOREIGN KEY指向另一表中的PRIMARY KEY。 它是兩個表之間的引用約束。 外鍵標識一個(引用)表中的一列或一組列,該列或表引用另一(引用)表中的一列或一組列。

我們將在兩個表上顯示此約束:Authors和Books。

在這里,我們創建 Authors 表。 在 MySQL 中,引用表和被引用表必須是 InnoDB 或 BDB 存儲引擎。 在 MyISAM 存儲引擎中,將解析外鍵,但不會強制使用外鍵。

我們創建Books表。 在這里,我們有一個AuthorId列名,它用作外鍵。 它引用Authors表的主鍵。

在我們的示例中,外鍵強制執行意味著什么? 我們無法使用Authors本書中沒有的AuthorId在Books表中插入一行。

ENUM約束

ENUM是一個字符串對象,其值是從允許值列表中選擇的。 在創建表時,它們在列規范中顯式枚舉。

我們有一個Shops表。 該表具有定義的Id,Name和Quality列。 Quality列是ENUM。 它允許具有三個指定值之一:High,Average或Low。

在前兩個語句中,我們插入了兩行。 在第三種情況下,該值在ENUM中不可用。 在這種情況下,將插入一個空字符串。

SET約束

SET可以具有零個或多個值。 每個值都必須從允許值列表中選擇。

我們有一個Students表。 在此表中,我們有一個“證書”列。 每個學生可以擁有 0、1 個或多個這些證書。 這與ENUM約束不同,在ENUM約束中,允許值列表中只能有一個不同的值。

保羅有兩個證書,珍妮有三個,馬克有四個,但是只有兩個被認可,因此只有前兩個被寫到了桌子上。 證書用逗號分隔。 不允許有空格。

總結

以上是生活随笔為你收集整理的mysql约束教程,MySQL 约束的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。