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

MySQL常见约束条件「建议收藏」约束条件:限制表中的数据,保证添加到数据表中的数据准确和可靠性!凡是不符合约束的数据,插入时就会失败!约束条件在创建表时可以使用,也可以修改表的时候添加约束条件1、约束条件分类:1)notnull:非空约束,保证字段的值不能为空s_nameVARCHAR(10)NOTNULL,#非空2)default:默认约束,保证字段总会有值,即使没有插入值,都会有默认值!…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

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

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 关联表名(其字段名),

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.net/182278.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月13日 下午10:16
下一篇 2022年10月13日 下午10:36


相关推荐

  • 微信公众平台深度开发JAVA版

    微信公众平台深度开发JAVA版微信公众平台深度开发 JAVA 版课程讲师 翟东平 nbsp 课程分类 Java 适合人群 高级课时数量 18 30 小节 课时用到技术 微信公众平台 微信 java 涉及项目 九宝饭店微信点餐系统咨询 下载链接 http pan baidu com s 1dDB4ax7 密码 ebaw1 课程研发环境开发语言 J

    2026年3月18日
    1
  • 数学学习资料汇总[可运行源码]

    数学学习资料汇总[可运行源码]

    2026年3月12日
    2
  • ExcelJS 使用帮助文档

    ExcelJS 使用帮助文档ExcelJS 使用帮助文档个人备忘 原文地址 https github com exceljs exceljs blob master README zh md 安装 npminstallex 新的功能 重大版本更改 主要的 ExcelJS 接口已从基于流的 API 迁移到异步迭代器 从而使代码更简洁 虽然技术上是一个突破性的变化 但大多数 API 都没有变化 详细信息请参见 UPGRADE 4 0 md 此升级来自以下合并 M

    2026年3月17日
    2
  • offsetWidth、clientWidth、width、scrollWidth区别及获取

    offsetWidth、clientWidth、width、scrollWidth区别及获取<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>offsetWidth、clientWidth、width、scrollWidth区别及获取</title><style

    2022年7月22日
    13
  • MySQL可视化工具连不上或mysql启动不了

    MySQL可视化工具连不上或mysql启动不了在连接数据库是可能会遇到上面 这种情况 但是 不要慌 往下面看 首先 右击此电脑 gt 选择管理然后 双击再然后 找到 MySQL 改为自动动 保存 重启 MySQL 就 啦注意 如果是手动的 要记住 MySQL 在哪里启动 因为有可能会忘掉哟

    2025年9月12日
    7
  • 用python的pandas读取excel文件中的数据

    用python的pandas读取excel文件中的数据一 读取 Excel 文件 使用 pandas 的 read excel 方法 可通过文件路径直接读取 注意到 在一个 excel 文件中有多个 sheet 因此 对 excel 文件的读取实际上是读取指定文件 并同时指定 sheet 下的数据 可以一次读取一个 sheet 也可以一次读取多个 sheet 同时读取多个 sheet 时后续操作可能不够方便 因此建议一次性只读取一个 sheet 当只读取一个 sheet 时 返回的是 DataFrame 类型 这是一种表格数据类型 它清晰地展示出了数据的表格型结构 具体写法为

    2026年3月17日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号