MySQL数据库4-约束

约束

MySQL中的约束(Constraints)是用于限制表中的数据,以确保数据的准确性和可靠性。这些约束可以在创建表时定义,也可以在表创建后通过ALTER TABLE命令添加。

以下是MySQL中常用的几种约束:

1. NOT NULL约束

确保某列不能有NULL值。

CREATE TABLE example (
    id INT NOT NULL,
    name VARCHAR(50) NOT NULL
);

2. UNIQUE约束

确保某列中的所有值都是唯一的。

CREATE TABLE example (
    id INT NOT NULL,
    email VARCHAR(100) UNIQUE
);

3. PRIMARY KEY约束

唯一标识数据库表中的每一行/记录。一个表只能有一个主键,这个主键可以是单列或多列的组合。主键列中的值必须是唯一的,并且不允许为NULL。

CREATE TABLE example (
    id INT PRIMARY KEY,
    name VARCHAR(50)
);

4. FOREIGN KEY约束

用于在表之间创建链接,以保持引用完整性。一个表的外键是另一个表的主键。外键的值必须在被引用的表的主键中存在。

CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    customer_id INT,
    FOREIGN KEY (customer_id) REFERENCES customers(id)
);

CREATE TABLE customers (
    id INT PRIMARY KEY,
    name VARCHAR(50)
);

5. CHECK约束

用于限制列中的值范围。然而,值得注意的是,在MySQL 8.0.16之前的版本中,CHECK约束在创建表时会被解析但不会被存储或执行。从MySQL 8.0.16开始,CHECK约束开始被支持并执行。

CREATE TABLE example (
    id INT,
    age INT CHECK (age >= 0 AND age <= 150)
);

6. DEFAULT约束

当没有为列指定值时,为列提供默认值。

CREATE TABLE example (
    id INT,
    name VARCHAR(50) DEFAULT 'Anonymous'
);

7. AUTO_INCREMENT约束

通常与主键一起使用,为整数列自动生成一个唯一的数字。每次插入新记录时,AUTO_INCREMENT列的值会自动递增。

CREATE TABLE example (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50)
);

8. ENUM类型约束

ENUM类型允许你指定一个字符串对象的值,该对象只能是此列定义中允许的值列表中的一个。

CREATE TABLE example (
    name VARCHAR(50),
    status ENUM('active', 'inactive', 'pending')
);

在定义表时,可以根据需要混合使用这些约束来确保数据的完整性和准确性。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇