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

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.xdnf.cn/news/15719.html

相关文章:

  • Vue 3 中封装并使用 IndexedDB 的完整教程(含泛型、模块化、通用 CRUD)
  • 网络爬虫概念初解
  • 【Unity】YooAsset问题记录
  • 如何在HTML5页面中嵌入视频
  • Git基础
  • 【每日算法】专题十五_BFS 解决 FloodFill 算法
  • 电脑windows系统深度维护指南
  • 微软原版系统下载的几个好用网站
  • [牛客2020提高赛前集训营day3] 牛半仙的魔塔
  • 在服务器(ECS)部署 MySQL 操作流程
  • Window延迟更新10000天配置方案
  • QML 动画效果详解
  • 巧用Callbre RVE生成DRC HTML report及CTO的使用方法
  • 从五次方程到计算机:数学抽象如何塑造现代计算
  • 板凳-------Mysql cookbook学习 (十二--------2)
  • Codeforces Round 1037(Div.3)
  • docker容器部署应用
  • Office-PowerPoint-MCP-Server:智能自动化PPT制作工具
  • 语义熵怎么增强LLM自信心的
  • Django母婴商城项目实践(八)- 数据渲染与显示之首页
  • 计算机网络:(十一)多协议标记交换 MPLS
  • 安全隔离新选择:SiLM5768L系列 - 集成互锁功能的高速六通道数字隔离器
  • 用户中心——比如:腾讯的QQ账号可以登录到很多应用当中 01
  • Spring Boot入门
  • Web开发 03
  • k8s快速部署(亲测无坑)
  • 2G和3G网络关闭/退网状态(截止2025年7月)
  • C语言:预处理
  • 苍穹外卖项目日记(day12)
  • A33-vstar报错记录:ERROR: build kernel Failed