MySQL——约束类型

发布于:2025-07-21 ⋅ 阅读:(13) ⋅ 点赞:(0)

一、主键约束

1.主键约束(PRIMARY KEY)
作用:唯一标识表中的每一行,不允许重复或NULL。
特点:一个表只能有一个主键。可由单列或者多列组成(复合主键)。
2.主键的创建
create table users (
id int primary key,
name varchar(50)
);

为已存在的表添加主键
alter table 表名 modify 字段名 数据类型 primary key;
例如:对xsb表的xh字段添加单一主键
alter table xsb modify xh varchar(20) primary key;
3.复合主键
create table student(
id int,
name varchar(50),
primary key(id,name)
);

为已存在的表添加符合主键
alter table 表名 add primary key(字段名1,字段名2);
例如:alter table xkb add primary key(xh,kcdm);
删除创建的主键约束。
alter table xsb drop primary key

二、唯一约束(unique)

作用:确保列中的值唯一。(MySQL中NULL不参与唯一性比较)。
特点:可以有多个唯一约束。常见于邮箱、用户名等字段。
1.唯一性约束的创建
create table student(
id varchar(20) unique,
name varchar(20)
);

为已存在的表添加唯一性约束
alter table 表名 modify 字段名 数据类型 unique;
例如:alter table xsb modify xm varchar(50) unique;
删除唯一性约束
alter table xsb drop index xm;

三、外键约束(foreign key)

作用:维护表之间的引用完整性,确保外键列的值必须存在于关联表的主键或唯一列中。
特点:要么为空,要么依赖子表的值。
外键的创建
create table student(
xh varchar(20) comment ‘学号’,
name varchar(20) comment ‘姓名’,
foreign key(xh) referennces xkb(xh)
);

student为子表,xkb为父表,将两个表中的学号建立关联关系。这两个字段的数据类型必须是一样的。
comment是备注的意思。
为已存在的表创建外键。
alter table 子表名 add foreign key(字段名) references 父表名(字段名);
例如:alter table xkb add foreign key(xh) references xsb(xh);
删除创建的外键约束。
alter table xkb drop foreign key xkb_ibfk_1;
xkb_ibfk_1外键名可以通过show create table 表名;这个命令查看。

四、非空约束(not null)

作用:禁止列的值为NULL。
例如:
CREATE TABLE products (
name VARCHAR(100) NOT NULL
);

为已存在的表添加非空约束
alter table 表名 modify 字段名 数据类型 not null;
例如:alter table xsb modify xm varchar(50) not null;
删除创建的非空约束。
alter table xsb modify xm varchar(50);

五、检查约束(check)

作用:限制列的值必须满足特定条件
例如:create table employees (
age int check(age >= 18 AND age <= 65)
);

为已存在的表添加检查约束
例如:alter table xsb add check(xb='男’or xb=‘女’);
删除检查约束
alter table xsb drop check xsb_chk_1;
xsb_chk_1 可以通过show create table 表名;这个命令查看。

六、默认值约束(default)

作用:为列指定默认值,插入数据时若未提供值则使用默认值。
create table student(
age int default 18,
name varchar(20) not null
);

为已存在的表添加默认值约束
例如:alter table xsb modify xb char(2) default ‘男’;
删除默认值约束
alter table xsb modify xb char(2);

七、自增约束(AUTO_INCREMENT)

作用:自动为整数列生成唯一递增值,每次在最大值的基础上加一,如果不想自增可以自己在建表是设置值。
特点:仅适用于整数类型的主键或唯一键。
例如:CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50)
);

总结:

约束类型 关键字 作用 是否允许NULL
主键 PRIMARY KEY 唯一标识行
唯一 UNIQUE 列值唯一 是(一个NULL)
外键 FOREIGN KEY 关联其他表 是(需匹配主键)
非空 NOT NULL 禁止NULL
检查 CHECK 限定值范围 是(需满足条件)
默认值 DEFAULT 自动填充默认值
自增 AUTO_INCREMENT 自动生成递增值

完结。


网站公告

今日签到

点亮在社区的每一天
去签到