SQL 程式札記 : 限制與約束(Constraints)

閱讀時間約 3 分鐘

本文將介紹幾種常見的 SQL 約束,包括主鍵(PRIMARY KEY)、外鍵(FOREIGN KEY)、唯一(UNIQUE)、非空(NOT NULL)和檢查(CHECK)約束,接下來將透過範例程式碼來帶你了解這些約束的使用方式。

主鍵約束(PRIMARY KEY)

主鍵約束用於在表中唯一標識每條記錄,一個表中只能有一個主鍵,主鍵列不能有重複的值,也不能有 NULL 值。

CREATE TABLE Students (
ID int NOT NULL,
Name varchar(255) NOT NULL,
Age int,
PRIMARY KEY (ID)
);

在這個範例中,ID 列被設定為主鍵,意味著每個學生的 ID 必須是唯一的。

外鍵約束(FOREIGN KEY)

外鍵約束用於在兩個表之間建立關聯,透過外鍵,我們可以確保一個表中的值必須在另一個表的列中有對應的值。

CREATE TABLE Classes (
ClassID int NOT NULL,
ClassName varchar(255),
PRIMARY KEY (ClassID)
);

CREATE TABLE Students (
ID int NOT NULL,
Name varchar(255) NOT NULL,
Age int,
ClassID int,
PRIMARY KEY (ID),
FOREIGN KEY (ClassID) REFERENCES Classes(ClassID)
);

在這個例子中,Students 表的 ClassID 列是外鍵,它參考了 Classes 表的 ClassID 列。

唯一約束(UNIQUE)

唯一約束保證了表中的所有值都是唯一的,這不同於主鍵,一個表可以有多個唯一約束。

CREATE TABLE Employees (
EmployeeID int NOT NULL,
Email varchar(255),
UNIQUE (Email)
);

在這裡,Email 列具有唯一約束,這表示不能有重複的電子郵件地址出現在 Employees 表中。

非空約束(NOT NULL)

非空約束確保列中的值不能為 NULL。

CREATE TABLE Products (
ProductID int NOT NULL,
ProductName varchar(255) NOT NULL
);

在這個範例中,ProductIDProductName 列都設定了非空約束。

檢查約束(CHECK)

檢查約束用於確保列中的值滿足特定條件。

CREATE TABLE Products (
ProductID int NOT NULL,
ProductName varchar(255) NOT NULL,
Price decimal NOT NULL,
CHECK (Price > 0)
);

在這個例子中,Price 列有一個檢查約束,確保價格必須大於 0。


😊 感謝你的耐心閱讀,若是你喜歡這篇內容,可以透過以下方式表達你的喜歡 😊

❤️按個愛心|💬留言互動|🔗分享此文|📌追蹤阿梧|☕請喝咖啡

60會員
91內容數
「梧笙」即「吾生」,意即我的生命,朋友都叫我「阿梧(Awu)」,高雄人。我喜歡學習新技能,從程式設計到網路工具,再到社群經營和影片剪輯。日常興趣是打遊戲、看動漫、讀小說和聽音樂。我會把這些興趣寫成文章,如果你有任何想法或問題,歡迎來信到我的郵箱 aowulife109@gmail.com
留言0
查看全部
發表第一個留言支持創作者!
梧笙の領域展開 的其他內容
本文將介紹如何使用 SQL 的 CREATE TABLE 指令來創建資料表,接下來將透過範例程式碼,帶你從基本語法開始了解 CREATE TABLE。
本文將介紹 SQL 中的SELECT語句,這是從資料庫中查詢數據的基本命令,理解並掌握SELECT語句是學習SQL的重要一步。SELECT 語句是什麼?SELECT語句是 SQL 中用於從資料庫表格中查詢特定數據的基本命令,它可以讓您選擇特定的欄位,從而精確地獲取所需的數據。
SQL 是一種專門用來和資料庫進行溝通的程式語言,它讓我們能夠創建資料表、新增、查詢、修改和刪除資料庫中的資料,本文將介紹基本的創建、新增、查詢、修改和刪除的 SQL 語法。
本文將介紹如何使用 SQL 的 CREATE TABLE 指令來創建資料表,接下來將透過範例程式碼,帶你從基本語法開始了解 CREATE TABLE。
本文將介紹 SQL 中的SELECT語句,這是從資料庫中查詢數據的基本命令,理解並掌握SELECT語句是學習SQL的重要一步。SELECT 語句是什麼?SELECT語句是 SQL 中用於從資料庫表格中查詢特定數據的基本命令,它可以讓您選擇特定的欄位,從而精確地獲取所需的數據。
SQL 是一種專門用來和資料庫進行溝通的程式語言,它讓我們能夠創建資料表、新增、查詢、修改和刪除資料庫中的資料,本文將介紹基本的創建、新增、查詢、修改和刪除的 SQL 語法。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
題目敘述 題目會給我們一張Employees 資料表。裡面分別有employee_id、name、reports_to 、age 等欄位。其中employee_id 是這張資料表的主鍵Primary key。 要求我們列出每一位經理人下轄部屬的數量和部屬的平均年齡(四捨五入到最接近的整數)。
Thumbnail
題目敘述 題目會給我們一張Courses資料表,裡面分別有student、class等欄位。其中(student, class) 是這張資料表的複合主鍵Primary key pair。 要求我們,以課程做分群,列出至少有五位同學的課程。 輸出的順序不拘。 Table: Courses
Thumbnail
題目會給我們一張Products資料表,裡面分別有product_id、low_fats、recyclable等欄位,其中product_id 是主鍵Primary Key。 要求我們列出所有的可回收 且 低脂產品的product_id,順序不拘。
Thumbnail
在資料庫管理中,SQL(Structured Query Language)是一種強大的工具,用於處理資料庫中的資料。本篇教學將介紹 SQL 中的基本操作,包括 SELECT、UPDATE、INSERT 和 DELETE,讓您能夠有效地查詢、更新、插入和刪除資料。
Thumbnail
在準備轉職期間,為了能更接近數據分析的領域,首先決定要進修的領域是程式語言,首先從門檻相對不高的SQL(Structured Query Language,結構化查詢語言)開始。在此分享目前為止學到的一些小小心得。
我: '' OR '1'='1' GPT: The string you provided is a SQL injection attack. It is an attempt to exploit a vulnerability in a web application's database b
Thumbnail
假如你開發了一個網站,有user登入的功能,駭客故意輸入SQL語法來破壞原本的SQL結構,這就是SQL注入攻擊。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
題目敘述 題目會給我們一張Employees 資料表。裡面分別有employee_id、name、reports_to 、age 等欄位。其中employee_id 是這張資料表的主鍵Primary key。 要求我們列出每一位經理人下轄部屬的數量和部屬的平均年齡(四捨五入到最接近的整數)。
Thumbnail
題目敘述 題目會給我們一張Courses資料表,裡面分別有student、class等欄位。其中(student, class) 是這張資料表的複合主鍵Primary key pair。 要求我們,以課程做分群,列出至少有五位同學的課程。 輸出的順序不拘。 Table: Courses
Thumbnail
題目會給我們一張Products資料表,裡面分別有product_id、low_fats、recyclable等欄位,其中product_id 是主鍵Primary Key。 要求我們列出所有的可回收 且 低脂產品的product_id,順序不拘。
Thumbnail
在資料庫管理中,SQL(Structured Query Language)是一種強大的工具,用於處理資料庫中的資料。本篇教學將介紹 SQL 中的基本操作,包括 SELECT、UPDATE、INSERT 和 DELETE,讓您能夠有效地查詢、更新、插入和刪除資料。
Thumbnail
在準備轉職期間,為了能更接近數據分析的領域,首先決定要進修的領域是程式語言,首先從門檻相對不高的SQL(Structured Query Language,結構化查詢語言)開始。在此分享目前為止學到的一些小小心得。
我: '' OR '1'='1' GPT: The string you provided is a SQL injection attack. It is an attempt to exploit a vulnerability in a web application's database b
Thumbnail
假如你開發了一個網站,有user登入的功能,駭客故意輸入SQL語法來破壞原本的SQL結構,這就是SQL注入攻擊。