欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql完整性約束

錢浩然2年前8瀏覽0評論

MySQL 完整性約束是確保表中數據的正確性和完整性的一種技術。這種技術強制執行表中存儲的數據的某些規則、限制和約束。

MySQL 完整性約束包括:

  • 主鍵約束:要求 PRIMARY KEY 列是唯一標識表中每個行的列。
  • 外鍵約束:要求 FOREIGN KEY 列是另一個表中的 PRIMARY KEY 列的引用。
  • 唯一約束:要求特定列的值是唯一的。
  • 非空約束:要求特定列不允許為空。
  • 默認值約束:在插入新行時,如果未指定值,則使用默認值。
  • 檢查約束:要求插入的值滿足特定條件。
-- 創建一個帶有主鍵約束的表
CREATE TABLE students (
id INT(11) NOT NULL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT(3) NOT NULL,
gender ENUM('M', 'F') NOT NULL
);
-- 創建一個帶有外鍵約束的表
CREATE TABLE student_classes (
id INT(11) NOT NULL PRIMARY KEY,
student_id INT(11) NOT NULL,
class_id INT(11) NOT NULL,
FOREIGN KEY (student_id) REFERENCES students(id),
FOREIGN KEY (class_id) REFERENCES classes(id)
);
-- 創建一個帶有唯一約束的表
CREATE TABLE employees (
id INT(11) NOT NULL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(50) NOT NULL UNIQUE,
phone VARCHAR(20) NOT NULL UNIQUE,
hire_date DATE NOT NULL
);
-- 創建一個帶有非空約束的表
CREATE TABLE orders (
id INT(11) NOT NULL PRIMARY KEY,
order_date DATE NOT NULL,
customer_id INT(11) NOT NULL,
total_amount DECIMAL(10, 2) NOT NULL
);
-- 創建一個帶有默認值約束的表
CREATE TABLE contacts (
id INT(11) NOT NULL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(50) DEFAULT 'NA',
phone VARCHAR(20) DEFAULT 'NA'
);
-- 創建一個帶有檢查約束的表
CREATE TABLE products (
id INT(11) NOT NULL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
price DECIMAL(10, 2) NOT NULL,
stock INT(11) NOT NULL,
CHECK (price >0),
CHECK (stock >= 0)
);

MySQL 完整性約束是確保數據的準確性和完整性的重要方法。使用一些約束可以避免不必要的數據錯誤和重復。請注意,在 MySQL 中設置完整性約束可能會影響性能,因此應該權衡利弊。