mysql-约束

MySQL中的约束,添加约束,删除约束,以及一些其他修饰 MySQL中的约束,添加约束,删除约束,以及其他的一些修饰:一.NOT NULL(非空约束) 添加非空约束 1)建表时直接添加 CREATE TABLE t_user(user_id INT(10) NOT NULL); 2)通过ALTER 语句 ALTER TABLE t_user MODIFY user_id INT(10) NOT NULL; ALTER ... 阅读详情

基础知识:

1.概念:约束是作用于表中字段的规则,用于限制存储在表中的数据


2.目的:保证数据库中的数据正确、有效性和完整性


3.分类:


约束         :             描述                   |             关键字

非空约束: 限制改数据不能为null              | not null

唯一约束:保证改字段所有数据都是唯一、不重复的  | unque

主键约束:主键约束是一行数据的唯一标识,要求非空且唯一 | primary keyy(auto_increment--实现主键的自动增长)

默认约束:保存数据时,如果没有指定改字段的值,则采用默认值   | default

检查约束:保证字段满足某一个条件  | check

外键约束:用来让两张表的数据之间建立连接,保证数据的一致性和完整性  | foreign key

基础约束case:

按照如下限制规则创表:

create  table user(
id int primary key auto_increment comment'主键',
name char(10)  not null unique comment'姓名',
age int check(age>0 && age<120) comment'年龄',
status char(1) default '1' comment'状态',
gender char(1) comment'性别'

)comment '员工表';
 

图中:-- 黄色钥匙代表 --- 主键

      -- 蓝色边框代表 不可重复

insert测试:

我们上面insert并没有添加主键id,而是让他自增长,得到以下数据

unique--不准重复

not null --不能为空

age 被check 严密限制着

合适的年龄范围才insert成功,但是注意这里的主键id是4,虽然我们之前的操作不会添加数据,但是主键id还是处于自增的一个状态,已经到3了,现在能insert了又自增一次,得到4

default如果--如果不给status 传递数据,我们就取默认值 '1'

外键约束


添加外键:


1.创建表的时候添加:
create table 表名(
[constraint][外键名称] foreign key(外键字段名) erferences 主表(主表列名);

);
2. 对已经存在的表添加:
alter table  表名 add constraint 外键名称 foreign key(外键字段名) references 主表(主表列名);


删除外键:


alter table 表名 drop foreign key 外键名称;


-  删除/更新的行为:
no action / restrict   进行外键关联时,不允许进行 删除/更新

cascade   外键关联的父表更改/删除时带子表内容一起

set null 外键关联的父表删除/更新时子表对应内容设置为null

set default 父表有变时子表将外键设置成一个默认值(Innodb不支持) -- 了解即可


alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references  dept(id) on update set null on delete  set null;


注意: 约束是作用于表中的字段上的,可以在创建表/修改表的时候添加约束

外键约束case:

先执行以下语句建表: 

create table  dept(
    id int auto_increment comment 'ID' primary key,
    name varchar(50) not null comment '部门名称'
) comment '部门表';
insert dept(id,name) values(1,'研发部'),
                           (2,'市场部'),
(3,'财务部'),
(4,'销售部'),
(5,'总经办');


create  table emp(
id int auto_increment comment 'ID' primary key,
    name varchar(50) not null comment '姓名',
    age int comment '年龄',
    job varchar(20)  comment '职位',
    salary int comment '薪资',
    entrydate date comment '入职日期',
    managerid int comment   ' 直属领导ID',
    dept_id int comment '部门ID'
)comment '员工表';


INSERT INTO emp (id, name, age, job, salary, entrydate, managerid, dept_id)
values
(1,'王富贵',66,'总裁',20000,'2000-01-01',null,5),
(2,'张哥',39,'经理',12000,'2012-03-22',1,1),
(3,'杨哥',22,'开发',8400,'2021-02-23',2,1),
(4,'笑笑',32,'开发',11000,'2020-12-01',2,1),
(5,'啊giao',28,'开发',10500,'2019-5-26',3,1),
(6,'小王',22,'程序员助理',6600,'2023-12-01',2,1);

添加基本外键约束:

alter table emp add constraint fk_emp_dept_id  foreign key (dept_id) references  dept(id);

查看emp属性,出现了外键约束

有外键约束的内容页不允许修改和删除的,因为他默认  no action / restrict  行为关联,不允许删除和更改

删除外键:

alter table emp drop foreign key fk_emp_dept_id;

执行删除后外键名字爆红,说明已经不存在了。

外键常用行为:

cascade 

添加外键:
alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references  dept(id) on update cascade on delete  cascade ;

修改

删除

上面操作可以看出cascade修饰的外键,父表修改/删除时,子表也会进行相应的删除更改。

set null

添加外键
alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references  dept(id) on update set null on delete  set null;

可以看到父表中外键关联内容删除后,子表对应的内容会被修改成null

MySQL 约束 约束(Constraints)是 MySQL 中用来限制表中数据的规则,确保数据的准确性和完整性。下面是常见的约束类型及其介绍。 阅读详情

相关推荐

Windows 10/11 安装 HYSPLIT 气象模型全攻略(附必备工具包下载清单)

本文提供了一份详尽的Windows 10/11系统下HYSPLIT气象模型安装与配置全攻略。指南涵盖了从核心认知、必备工具包(Tcl/Tk、ImageMagick)下载,到分步安装、环境变量设置及首次运行验证的完整流程,旨在帮助研究者和学生高效部署这一用于大气轨迹模拟与污染物扩散分析的专业工具。

weixin_28335283的博客 609

【MySQL基础】MySQL表的七大约束

MySQL表的七大约束大详解,带你掌握MySQL七大约束,即默认约束,非空约束,唯一约束,主键约束,自增约束,检索约束,外键约束。

小杨的博客 6073

后台扫描工具 - 御剑(珍藏版)附下载

版本说明:御剑后台扫描珍藏版 下载地址:安装包放下方网盘里了 链接:https://pan.baidu.com/s/1Bn7GtWb7AStcjzVahFOjSQ 提取码:zkaq 使用环境:windows 标题工具说明: 御剑后台扫描珍藏版是T00LS大牛的作品,方便查找用户后台登陆地址,同时也为程序开发人员增加了难度,尽量独特的后台目录结构。 附带很强大的字典,字典我们也是可以自己修改的,继续增加规则。 一、御剑后台扫描工具简介: 1、扫描线程自定义:用户可根据自身电脑的配置来设置调节扫描线程 2、

hackzkaq的博客 4万+

【MySQL基础】什么是MySQL约束?什么是主键约束?

本文讲述MySQL约束,简单介绍什么是MySQL约束,其作用是什么?以及MySQL约束的常见七分类有那些?以及对主键约束的概念以及相关操作的详细讲解。

四季轮换叶,一路招摇胜 2928

[ROS] rviz 可视化工具

[ROS] rviz 可视化工具 摄像头没讲 文章目录[ROS] rviz 可视化工具1. todo2. todo*. 参考*. 问题解决*. rough 1. todo 2. todo *. 参考 *. 问题解决 *. rough roscore + rviz

weixin_37834269的博客 2051

PredFormer实战:用Transformer搞定交通流量预测(附TaxiBJ数据集代码)

本文详细介绍了如何利用PredFormer这一基于Transformer的先进模型进行交通流量预测,特别针对TaxiBJ数据集提供了完整的实战代码和优化策略。PredFormer通过门控Transformer块(GTB)的创新设计,在时空预测任务中展现出显著优势,相比传统方法将MSE降低33.1%,推理速度提升4.4倍。文章还涵盖了模型轻量化、部署优化等实用技巧,为智慧城市建设中的交通预测提供了高效解决方案。

weixin_29194817的博客 445

【MySQL】表的约束

一、介绍二、空属性1、介绍2、使用场景3、注意事项4、示例三、默认值约束(DEFAULT)四、列描述(COMMENT)1、介绍2、注意事项五、ZEROFILL1、介绍2、应用场景六、主键约束(PRIMARY KEY)1、介绍2、语法3、示例七、自动递增约束(AUTO_INCREMENT)1、介绍2、示例八、LAST_INSERT_ID1、介绍九、唯一约束(UNIQUE)1、介绍2、与主键约束的区别3、示例十、外键约束(FOREIGN KEY)1、介绍2、作用3、创建条件4、类型5、注意事项6、语法,说明

Snow_Dragon_L的博客 1592

GoAnywhere MFT 身份验证绕过漏洞(CVE-2024-0204)

GoAnywhere MFT 身份验证绕过漏洞(CVE-2024-0204)

weixin_43567873的博客 387

mysql设置约束大于0_MySQL约束

MySQL中约束保存在information_schema数据库的table_constraints中,可以通过该表查询约束信息;常用5种约束:not null: 非空约束,指定某列不为空unique: 唯一约束,指定某列和几列组合的数据不能重复primary key: 主键约束,指定某列的数据不能重复、唯一foreign key: 外键,指定该列记录属于主表中的一条记录,参照另一条数据ch...

weixin_36211941的博客 6342

4-20mA电流信号转电压

该电路实现4-20mA电流信号转电压(0.44-2.2V)调理功能,采用两级运放设计:第一级LMH6642MFX进行11倍放大,第二级配置为缓冲器加二阶低通滤波。电路包含10Ω采样电阻、多级RC滤波和ESD防护,具有抗干扰强、功耗低(4mW)等特点,适配3.3V系统ADC采集。通过使能控制MOS管可实现节能模式,适用于工业自动化、环境监测等场景。设计合理平衡了信号精度与功耗,输出电压范围留有充足余量避免饱和。

qq_37999850的博客 303

S7-200 SMART PLC 子程序功能块(阀门控制)

由于S7-200 SMARTPLC的子程序种种功能、容量限制,有时想实现多次调用的子程序可能并不是太容易,这篇博客还是给出一些推荐写法,供大家参看。

RXXW_Dor的博客 8069

Mysql约束

有问题的评论区讨论,大家共勉!

2401_87332612的博客 1122

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

[MySQL] MySQL表的约束

表的约束很多,这里主要介绍如下几个:null/not null、default、comment、zerofill、primary key、auto_increment、unique key、foreign key。在前面的文章中提到了约束,是通过数据类型对字段产生的约束。但是数据类型约束很单一,需要有一些额外的约束,更好的,从业务逻辑角度保证数据的正确性。于是就引入了表的约束。

weixin_67596609的博客 2597

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

MySQL的七种约束

MySQL约束类型

h123456789999999的博客 1万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【MySQL】约束

问题1:如果两个表之间有关系(一对一、一对多),比如:员工表和部门表(一对多),它们之间是否一定要建外键约束?答:不是的问题2:建和不建外键约束有什么区别?答:建外键约束,你的操作(创建表、删除表、添加、修改、删除)会受到限制,从语法层面受到限制。例如:在员工表中不可能添加一个员工信息,它的部门的值在部门表中找不到。不建外键约束,你的操作(创建表、删除表、添加、修改、删除)不受限制,要保证数据的引用完整性,只能依靠程序员的自觉,或者是在Java程序中进行限定。

Orion 2597

MySQL八大约束

MySQL约束MySQL约束主键约束(primary key)自增长约束(auto_increment)非空约束(not null)唯一约束(unique)默认约束(default)零填充约束(zerofill)外键约束(foreign key) MySQL约束 概念 约束英文:constraint 约束实际上就是表中数据的限制条件 作用 表在设计的时候加入约束的目的就是为了保证表中的记录完整性和有效性,比如用户表有些列的值(手机号)不能为空,有些列的值(身份证号)不能重复。 分类 主键约束(

超梦梦梦梦的博客 639

MySQL CHECK约束

MySQL 中,直到 MySQL 8.0.16 版本之前,标准 SQL 的 CHECK 约束并未被完全支持。然而,从 MySQL 8.0.16 开始,CHECK 约束在表定义中得到了支持,允许你定义列中必须满足的条件。

zxrhhm的博客 4010

MySQL-约束

在 MySQL 中,约束是指对表中数据的一种约束,能够帮助数据库管理员更好地管理数据库,并且能够确保数据库中数据的正确性和有效性。

m0_53222084的博客 1403

MySQL约束

约束是一种限制,它通过限制表中的数据,来确保数据的完整性和唯一性。使用约束来限定表中的数据是很有必要的

技术宅拯救世界 1503

MySQL表的约束

在MySQL中,约束(Constraints)用于确保数据库表中数据的和,是限制表中数据的类型、格式以及有效值的规则。通过约束,可以确保数据库的完整性,防止不合法的数据进入数据库。

laimaxgg 1093

MySQL约束详解

目录概念作用分类MySQL约束——主键约束概念操作操作——添加单列主键操作——添加多列主键(联合主键)操作——删除主键约束 MySQL约束-自增长约束(auto_increment)概念语法操作 特点指定自增字段初始值 delete和truncate在删除后自增列的变化MySQL约束-非空约束(not null)概念语法 添加非空约束—方式1 添加非空约束—方式2 删除非空约束MySQL约束-唯一约束(unique)概念语法​编辑 添加唯一约束—方式1 添加唯一约束—方式2删除唯一约束 MySQL约束-

weixin_63318044的博客 2820

【MySQL】 约束

MySQL 约束是用于限制表中数据的规则,确保数据的和。约束可以在创建表时定义,也可以在表创建后通过修改表结构添加。

weixin_74882234的博客 802

MySQL之约束

MySQL约束

2302_81707171的博客 1360

mysql怎么 删除约束,MySQL中添加、删除约束

MySQL中6种常见的约束:主键约束(primary key)、外键约束(foreign key)、非空约束(not null)、唯一性约束(unique)、默认值约束(defualt)、自增约束(aoto_increment),下面是添加、删除这几种约束的一些方法。--我已经建了数据库;1 -- 添加约束2 -- 1、建表时添加约束:3 CREATE TABLE goodstest (4 ...

weixin_30313409的博客 1331
上一篇: mysql基础-函数
下一篇: mysql -- 多表查询
mx_jun
博客等级 码龄5年 1605粉丝 148原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值