MySQL中的约束

在MySQL中,约束(Constraints)用于定义表中数据的规则。约束可确保数据库中的数据的准确性和可靠性,它们可以在创建表时定义(通过CREATE TABLE语句),也可以在表创建之后添加(通过ALTER TABLE语句)。以下是MySQL中常用的一些约束:

  1. PRIMARY KEY 约束

    • 用于唯一标识表中的每行数据。
    • 每个表只能有一个PRIMARY KEY。
    • PRIMARY KEY约束的列不能包含NULL值。
    • 一个PRIMARY KEY可以由一个或多个列组成,当多个列作为PRIMARY KEY时,它被称为复合键。
  2. UNIQUE 约束

    • 保证了一个列或列组合中的所有值都是不同的,即在指定的列上不允许重复的值。
    • 表中可以有多个UNIQUE约束。
    • UNIQUE约束的列可以包含NULL值,但只能包含一个NULL值(因为NULL与任何其他值都不相等)。
  3. NOT NULL 约束

    • 指定一个列不能存储NULL值。
    • 用于保证列中必须有数据。
  4. CHECK 约束

    • 用于限制列中的值必须满足一定条件(MySQL 8.0.16以后的版本支持)。
    • 它可以保证某列的值在一个特定的范围。
  5. FOREIGN KEY 约束

    • 用于在两个表之间建立连接。
    • 用于保持父表和子表间数据的引用完整性。
    • 当在子表中添加数据时,FOREIGN KEY约束将验证是否存在于父表的相应数据。
  6. DEFAULT 约束

    • 用于在没有指定值的情况下为列提供默认值。
    • 如果在插入行时未指定对应列的值,则会采用DEFAULT约束指定的值。

这些约束在数据库设计和日常维护中起着关键作用,确保数据满足特定的规则和业务逻辑要求。例如,以下SQL语句创建了一个带有各种约束的新表:

CREATE TABLE example_table (
  id INT AUTO_INCREMENT PRIMARY KEY,
  username VARCHAR(50) NOT NULL UNIQUE,
  age INT NOT NULL CHECK (age >= 18),
  email VARCHAR(100),
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

在这个example_table表中:

  • id列是PRIMARY KEY,并且具有自动增长的特性。
  • username列被设为NOT NULL且唯一。
  • age列被设为NOT NULL,且只允许存储大于或等于18的值。
  • created_at列如果不指定值,会默认为当前时间戳(CURRENT_TIMESTAMP)。
暂无评论

发送评论 编辑评论


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