当前位置: 首页 > news >正文

MySQL——约束类型

文章目录

    • 一、主键约束
    • 二、唯一约束(unique)
    • 三、外键约束(foreign key)
    • 四、非空约束(not null)
    • 五、检查约束(check)
    • 六、默认值约束(default)
    • 七、自增约束(AUTO_INCREMENT)

一、主键约束

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自动生成递增值

完结。

http://www.lryc.cn/news/593679.html

相关文章:

  • Springboot项目的搭建方式5种
  • 使用DataGrip连接安装在Linux上的Redis
  • Python+大模型 day02
  • 辛普森悖论
  • 使用看门狗实现复位
  • 1.初始化
  • Web开发 03
  • 双目摄像头品牌
  • 板子 5.29--7.19
  • 【科研绘图系列】R语言绘制显著性标记的热图
  • 【黄山派-SF32LB52】—硬件原理图学习笔记
  • 商业秘密视域下计算机软件的多重保护困境
  • 计算机网络:(十)虚拟专用网 VPN 和网络地址转换 NAT
  • Java多线程基础详解:从实现到线程安全
  • 6. 装饰器模式
  • ROS2 视频采集节点实现
  • Redis常见线上问题
  • 基于LSTM的时间序列到时间序列的回归模拟
  • Keepalived 监听服务切换与运维指南
  • C study notes[1]
  • C语言:20250719笔记
  • CentOS 清理技巧
  • 第二次总结(xss、js原型链)
  • 在开发板tmp目录下传输文件很快的原因和注意事项:重启开发板会清空tmp文件夹,记得复制文件到其他地方命令如下(cp 文件所在路径 文件要复制到的路径—)
  • 【Linux】重生之从零开始学习运维之Nginx之server小实践
  • 定时器中BDTR死区时间和刹车功能配置
  • AWS Partner: Accreditation (Technical)
  • Qt Graphs 模块拟取代 charts 和 data visualization还有很长的路要走
  • SPARKLE:深度剖析强化学习如何提升语言模型推理能力
  • stm32继电器使用方法