色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql約束圖解

錢瀠龍2年前14瀏覽0評論

MySQL是一種流行的關系型數據庫管理系統。在MySQL中,可以使用約束(constraints)來限制表中數據的類型和值,以保持數據的準確性和一致性。下面是一些常用的MySQL約束:

- NOT NULL:指定列不能包含NULL值。
- UNIQUE:指定列的值必須是唯一的,即不能重復。
- PRIMARY KEY:在表中指定一個唯一標識,用于標識表中的每一行數據。
- FOREIGN KEY:用于建立表之間的關聯,約束一個表中的列必須在另一個表中存在。
- CHECK:限制列的值必須滿足某些條件。
- DEFAULT:指定當插入新行時,若未提供值,則使用默認值。

下面是一個簡單的MySQL表和約束的例子:

CREATE TABLE users (
id INT(11) NOT NULL PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
email VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
role ENUM('admin', 'user') DEFAULT 'user' CHECK(role IN ('admin', 'user'))
);
CREATE TABLE posts (
id INT(11) NOT NULL PRIMARY KEY,
user_id INT(11) NOT NULL,
title VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id)
);

在上面的例子中,我們創建了兩個表:users和posts。在users表中,我們指定了以下約束:

- id必須是一個INT類型,并且不能包含NULL值,因為它是主鍵(PRIMARY KEY)。
- username必須是一個VARCHAR類型,并且不能包含NULL值和重復值,因為它是唯一(UNIQUE)的。
- email必須是一個VARCHAR類型,并且不能包含NULL值。
- password必須是一個VARCHAR類型,并且不能包含NULL值。
- created_at和updated_at都必須是TIMESTAMP類型,并且在插入和更新時使用默認值,分別表示創建時間和最后更新時間。
- role必須是一個ENUM類型,只能是'admin'或'user'中的一個,否則會觸發CHECK約束。

在posts表中,我們指定了以下約束:

- id必須是一個INT類型,并且不能包含NULL值,因為它是主鍵。
- user_id必須是一個INT類型,并且不能包含NULL值,因為它是外鍵(FOREIGN KEY),參照的是users表中的id列。
- title必須是一個VARCHAR類型,并且不能包含NULL值。
- content必須是一個TEXT類型,并且不能包含NULL值。
- created_at和updated_at都必須是TIMESTAMP類型,并且在插入和更新時使用默認值,分別表示創建時間和最后更新時間。

上面的例子中包含了一些基本的MySQL約束,但MySQL支持的約束類型還有很多,可以根據具體需求選擇使用哪些約束。