MySQL约束

MySQL约束

  • 概念 :对表中的数据进行限定,保证数据的正确性、有效性和完整性。
  • 分类
    • 主键约束:primary key
    • 非空约束:not null
    • 唯一约束:unique
    • 外键约束:foreign key

1. 非空约束

非空约束指字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统就会报错。

1.1在创建表时添加约束

<字段名> <数据类型> NOT NULL;

例如创建学生表时,指定学生表中的姓名不能为空;

CREATE TABLE STU(
	id INT;
    name VARCHAR(20) NOT NULL;
)

1.2 创建表之后,添加非空约束

ALTER TABLE 表名 MODIFY <字段名> <数据类型> NOT NULL;

1.3 删除非空约束

ALTER TABLE 表名 MODIFY <字段名> <数据类型>;

2. 唯一约束

唯一约束(Unique Key)是指所有记录中字段的值不能重复出现。例如,为 id 字段加上唯一性约束后,每条记录的 id 值都是唯一的,不能出现重复的情况。如果其中一条记录的 id 值为‘0001’,那么该表中就不能出现另一条记录的 id 值也为‘0001’。

唯一约束与主键约束相似的是它们都可以确保列的唯一性。不同的是,唯一约束在一个表中可有多个,并且设置唯一约束的列允许有空值,但是只能有一个空值。而主键约束在一个表中只能有一个,且不允许有空值。比如,在用户信息表中,为了避免表中用户名重名,可以把用户名设置为唯一约束。

2.1 在创建表时,添加唯一约束

唯一约束可以在创建表时直接设置,通常设置在除了主键以外的其它列上。

格式:

<字段名> <数据类型> UNIQUE

2.2 在修改表时添加唯一约束

在修改表时添加唯一约束的语法格式为:

ALTER TABLE <数据表名> ADD CONSTRAINT <唯一约束名> UNIQUE(<列名>);
ALTER TABLE <数据表名> MODIFY 字段名 UNIQUE;

2.3 删除唯一约束

ALTER TABLE 表名 DROP INDEX <唯一约束名>;

3. 主键约束

主键约束(primary key)的完整称呼是“主键约束”,是 MySQL 中使用最为频繁的约束。一般情况下,为了便于 DBMS 更快的查找到表中的记录,都会在表中设置一个主键。

使用主键应注意以下几点:

  • 每个表只能定义一个主键。
  • 主键值必须唯一标识表中的每一行,且不能为 NULL,即表中不可能存在有相同主键值的两行数据。这是唯一性原则。

3.1 创建表时添加主键

格式

<字段名> <数据类型> PRIMARY KEY;

3.2 在修改表时添加主键

ALTER TABLE <数据表名> MODIFY 字段名 PRIMARY KEY;

3.3 删除主键

ALTER TABLE <数据表名> DROP PRIMARY KEY;

4. 外键约束

  • 外键约束:foreign key,让表于表产生关系,从而保证数据的正确性。

4.1 创建表时添加外键

格式

[CONSTRAINT <外键名>] FOREIGN KEY 字段名 [,字段名2,…]
REFERENCES <主表名> 主键列1 [,主键列2,…]

4.2 在修改表时添加主键

ALTER TABLE <数据表名> ADD CONSTRAINT <外键名> FOREIGN KEY(<列名>) REFERENCES <主表名> (<列名>);

4.3 删除主键

ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值