Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MySQL常见约束条件「建议收藏」

MySQL常见约束条件「建议收藏」

作者头像
全栈程序员站长
发布于 2022-11-04 02:10:37
发布于 2022-11-04 02:10:37
1.7K00
代码可运行
举报
运行总次数:0
代码可运行

约束条件:限制表中的数据,保证添加到数据表中的数据准确和可靠性!凡是不符合约束的数据,插入时就会失败! 约束条件在创建表时可以使用, 也可以修改表的时候添加约束条件

1、约束条件分类: 1)not null :非空约束,保证字段的值不能为空 s_name VARCHAR(10) NOT NULL, #非空

2)default:默认约束,保证字段总会有值,即使没有插入值,都会有默认值! age INT DEFAULT 18, #默认约束

3)unique:唯一,保证唯一性但是可以为空,比如座位号 s_seat INT UNIQUE,#唯一约束

4)check:检查性约束【MySQL不支持,语法不报错,但无效】 s_sex CHAR(1) CHECK(s_sex=’男’ OR s_sex=’女’),#检查约束(Mysql无效)

5)primary key :主建约束,同时保证唯一性和非空 id INT PRIMARY KEY,#主建约束(唯一性,非空)

6)foreign key:外键约束,用于限制两个表的关系,保证从表该字段的值来自于主表相关联的字段的值! teacher_id INT REFERENCES teacher(id) #这是外键,写在列级,Mysql无效

注意 1. 列级约束 上面6种约束都可以写,语法都支持,不报错,但外键约束写了mysql无效不起作用 2. 表级约束 非空、默认不支持,其他都可以!

语法:

其他: 【constraint 约束名】 约束类型(字段名称) ,

外键: 【constraint 约束名】 约束类型(字段名称) foreign key(字段名称) references 关联表名(其字段名),

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS students;
CREATE TABLE students(
id INT ,
s_name VARCHAR(10) not null,# 非空约束
s_sex CHAR(1) default '男',  # 默认约束
s_seat INT,
age INT ,
teacher_id INT , 

#上面是列级约束,下面有表级约束

CONSTRAINT pk PRIMARY KEY(id), #主建约束,pk是起的名,后面一样
CONSTRAINT uq UNIQUE(s_seat),  #唯一约束
CONSTRAINT ck CHECK(s_sex='男' OR s_sex='女'), #检查约束
CONSTRAINT fk_students_teacher FOREIGN KEY(teacher_id) REFERENCES teacher(id)  #外键约束
);

2、MySQL修改表时添加或删除约束

即修改表字段的数据类型或约束

外键删除约束: ALTER TABLE 表名 DROP CONSTRAINT 约束名称

1) 非空约束 alter table students modify column s_name varchar(20) not null; # 添加 alter table students modify column s_name varchar(20) ; # 删除 不写约束条件

2)默认约束 alter table students modify column age int default 18; #添加 alter table students modify column age; #删除

3)唯一键约束 alter table students modify column seat int unique; #添加 alter table students drop index seat; #删除 show index from students; #查看唯一约束

4)主键约束 alter table students modify column id int primary key; #添加 alter table students drop primary key; #删除 约束名称

5)外键约束 alter table students add foreign key(major_id) references majors(id); #添加 alter table students drop foreign key fk_students_teacher; #删除 约束名称

3、自增长列 auto_increment

id int primary key auto_increment,

一个表中有且只能有一个自增长列,自增长列一般和主键搭配

修改表的时候添加自增长列: alter table t_indentity modify column id int primary key auto_increment;

删除自增长列: alter table t_indentity modify column id int;

修改自增id的初始值:

ALTER TABLE 表名 AUTO_INCREMENT=6;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/182278.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月13日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【说站】mysql有哪些常见的约束
以上就是mysql常见约束的介绍,希望对大家有所帮助。更多mysql学习指路:MySQL
很酷的站长
2022/11/23
1.2K0
【说站】mysql有哪些常见的约束
MySQL基础之常见约束和标识列
-----: | :----------: | :------------------: | :----------: | | 主键 | √ | × | 至多有1个 | √,但不推荐 | | 唯一 | √ | √ | 可以有多个 | √,但不推荐 |
yuanshuai
2022/08/22
7060
SQL笔记(1)——MySQL创建数据库
其中,主键列指定了 PRIMARY KEY 约束,强制该列的值在表中唯一,并且使用 AUTO_INCREMENT 关键字,表示该列的值会自动递增生成。
MinChess
2023/04/22
3.3K0
SQL笔记(1)——MySQL创建数据库
MySQL 约束
为了保证数据的完整性,SQL 规范以约束的方式对表数据进行额外的条件限制。从以下四个方面考虑:
恋喵大鲤鱼
2023/10/12
5140
MySQL约束
约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。
阿年、嗯啊
2021/04/27
1.8K0
MySql基础之约束
给某个字段/某列指定默认值,一旦设置默认值,在插入数据时,如果此字段没有显式赋值,则赋值为默认值。
冬天vs不冷
2025/01/21
2070
MySql基础之约束
约束条件(constraint)「建议收藏」
约束条件也叫完整性约束条件,当对表中的数据做DML操作时会验证数据是否违反约束条件.如果违反了DML操作会失败.约束条件可以应用于表中的一列或几列,应用于整个表或几个表之间.
全栈程序员站长
2022/11/04
1.7K0
一篇文章带你彻底了解MySQL各种约束
MySQL约束 <1> 概念 是一种限制,它是对表的行和列的数据做出约束,确保表中数据的完整性和唯一性。 <2> 使用场景 创建表的时候,添加约束 <3> 分类 default: 默认约束, 域完整性 not null: 非空约束,域完整性 unique: 唯一约束,实体完整性 primary key: 主键约束,实体完整性 foreign key: 外键约束,参照完整性 check: 检查约束(MySQL不支持),域完整性 auto_increment: 自增长约束 unsigned: 无符号约束 zer
ruochen
2021/02/14
1K0
一篇文章带你彻底了解MySQL各种约束
不是吧,阿Sir,MySQL约束你竟然还不懂!
符号规定:下面展示一些定义的时候,为简便理解,使用中文配合符号表述(会有具体举例,不用担心理解不了)
BWH_Steven
2020/06/22
5880
不是吧,阿Sir,MySQL约束你竟然还不懂!
⑦【MySQL】什么是约束?如何使用约束条件?主键、自增、外键、非空....
NO ACTION:在父表进行更新/删除时,首先检查记录是否存在外键,存在则不允许删除/更新。(与RESTRICT行为一致)
.29.
2023/11/15
6700
⑦【MySQL】什么是约束?如何使用约束条件?主键、自增、外键、非空....
【MySQL】04_约束
为了保证数据的完整性,SQL规范以约束的方式对表数据进行额外的条件限制。从以下四个方面考虑:
鸡先生
2022/10/29
2.5K0
【MySQL】04_约束
MySQL约束
在数据库中对表中的数据进行限制,保证数据的正确性、有效性和完整性。一个表如果添加了约束,不正确的数据将无法插入到表中。约束在创建表的时候添加比较合适。
星哥玩云
2022/09/15
6.8K0
MySQL约束
MySQL 约束
  非空约束(NOT NULL)指字段的值不能为空。对于使用了非空约束的字段,用户在添加数据时没有指定值,数据库系统就会报错。可以通过 CREATE TABLE 或 ALTER TABLE 语句实现非空。在表中某个列的定义后加上关键字 NOT NULL 作为限定词,来约束该列的取值不能为空。
Demo_Null
2020/09/28
3.2K0
MySQL 约束
MySQL 约束介绍
给某个字段/某列指定默认值,一旦设置默认值,在插入数据时,如果此字段没有显式赋值,则赋值为默 认值。
久绊A
2023/04/10
1.7K0
第13章_约束
数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。它是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。
程序员Leo
2023/08/07
5190
第13章_约束
MySQL数据库,从入门到精通:第十三篇——MySQL数据表约束详解
在MySQL数据库中,约束是一种对数据表中数据进行限制和检查的方法,可以保证数据表中数据的完整性和一致性。本文将深入剖析MySQL中的各种约束,包括非空约束、唯一性约束、主键约束、自增列、外键约束、默认值约束以及CHECK约束等等,同时结合开发场景给出约束使用和实践的技巧和方法,帮助读者更好地掌握MySQL中数据表相关操作的技巧和方法。
默 语
2024/11/20
3790
MySQL数据库,从入门到精通:第十三篇——MySQL数据表约束详解
6-数据类型与常见约束
添加外键时在最后加上ON UPDATE CASCADE , ONDELETE CASCADE
Ywrby
2022/10/27
7300
【MySQL】008-表的约束
说明链接:https://blog.csdn.net/u014743697/article/details/54136092
訾博ZiBo
2025/01/06
1140
Mysql基础7-约束
  需求1:创建一个表id、name、age、address、stu_num五个字段。
Se7eN_HOU
2023/07/24
3940
Mysql基础7-约束
【MySql】表的约束
真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。比如有一个字段是email,要求是唯一的。表中一定要有各种约束,通过约束,让我们未来插入数据库表中的数据是符合预期的。约束的本质是通过技术收到逼迫程序员插入正确的数据,反过来,站在mysql的视角,凡是插入进来的数据,都是符合数据约束的。约束的最终目标:保证数据的完整性和可预期性所以需要更多的约束。 表的约束很多,这里主要介绍如下几个: null/not null,default, comment, zerofill,primarykey,auto_increment,unique key 。
平凡的人1
2023/10/15
4080
【MySql】表的约束
相关推荐
【说站】mysql有哪些常见的约束
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验