首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL完整性约束

概览   为了防止不符合规范数据进入数据库,在用户对数据进行插入、修改、删除等操作时,DBMS自动按照一定约束条件对数据进行监测,使不符合规范数据不能进入数据库,以确保数据库中存储数据正确、有效...KEY :主键,指定该列值可以唯一地标识该列记录 # FOREIGN KEY :外键,指定该行记录从属于主表中一条记录,主要用于参照完整性 返回顶部 NOT NULL 是否可空,null表示空,非字符串...AUTO_INCREMENT 约束字段为自动增长,被约束字段必须同时被key约束 ? ?...,在用delete删除后,再插入值,该字段仍按照删除位置继续增长 mysql> delete from student; Query OK, 4 rows affected (0.00 sec)...比起delete一条一条地删除记录,truncate是直接清空,在删除时用它 mysql> truncate student; Query OK, 0 rows affected (0.01 sec

3.5K20

mysql-完整性约束

约束条件与数据类型宽度一样,都是可选参数 作用:用于保证数据完整性和一致性 主要分为: PRIMARY KEY (PK)    #标识该字段为该主键,可以唯一标识记录 FOREIGN KEY...:约束字段为自动增长,约束字段必须同时被key约束 (重点)验证: 不指定id,则自动增长 mysql> create table student(id int primary key auto_increment...按道理来说,删除了部门某个部门,员工有关联记录相继删除 mysql> delete from dep where id=3; # 报错,应该先删除被关联 ERROR 1451 (23000...其实呢,在建时候还有个很重要内容,叫同步删除,同步更新 接下来将刚建好两张全部删除,先删除关联(emp),再删除被关联(dep) 接下来: 重复上面的操作建 注意:在关联中加入 on...,就复合我们正常生活中情况了 再去删被关联(dep)记录,关联(emp)中记录也跟着删除 mysql> delete from dep where id=3; Query OK, 1 row

80610
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySql约束

    中一定要有各种约束,通过约束,让我们未来插入数据库数据是符合预期约束本质是通过技术收到逼迫程序员插入正确数据,反过来,站在mysql视角,凡是插入进来数据,都是符合数据约束。...约束最终目标:保证数据完整性和可预期性所以需要更多约束。...): Duplicate entry '1' for key 'PRIMARY' 删除主键 alter table 名 drop primary key; 当创建好以后但是没有主键时候,可以再次追加主键...外键foreign key 外键用于定义主表和从之间关系:外键约束主要定义在从上,主表则必须是有主键约束或unique约束。...建立外键本质其实就是把相关性交给mysql去审核了,提前告诉mysql之间约束关系,那么当用户插入不符合业务逻辑数据时候,mysql不允许你插入。

    18930

    MySQL约束

    约束 约束中一定要有各种约束,通过约束,让我们未来插入数据库数据是符合预期约束本质是通过技术手段,倒逼用户,插入正确数据。...反过来,在 mysql 角度,凡是插入进来数据,都是符合数据约束约束最终目的就是保证数据完整性和可预期性。因此我们需要更多约束条件!...table 名 drop primary key; 例如删除上表主键: 当创建好以后但是没有主键时候,可以再次追加主键: alter table 名 add primary key(字段列表...;除此之外,如果我们删除了 class_id 为 20 班级,也是不会报错,因为它们之间没有约束关系,这也会导致我们可能删除了一个还有学生班级!...建立外键本质其实就是把相关性交给 mysql 去审核了,提前告诉 mysql 之间约束关系,那么当用户插入不符合业务逻辑数据时候,mysql 不允许你插入。

    13510

    MYSQL约束

    '学号', name varchar(5) ); 创建好之后,我们可以追加主键 2.删除主键 alter table 名 drop primary key; 案例: 3.复合主键 在创建时候...这样可以使对应于SQL语句执行得更快,可快速访问数据库特定信息 七、唯一键 一张中有往往有很多字段需要唯一性,数据不能重复,但是一张中只能有一个主键:唯一键就可以解决中有多个字段需要唯一性约束问题...而我们设计员工工号时候,需要一种约束:而所有的员工工号都不能重复。 具体指的是在公司业务上不能重复,我们设计时候,需要这个约束,那么就可以将员工工号设计成为唯一键。...int auto_increment primary key, name varchar(5) unique ); 八、外键 外键用于定义主表和从之间关系:外键约束主要定义在从上,主表则必须是有主键约束或...当定义外键后,要求外键列数据必须在主表主键列存在或为null 关键词:foreign key (字段名) references 主表(列) 案例: 我们可以看到,学生信息是和班级有关系:某个班还有学生时候我们不能直接删除这个班数据

    23240

    MYSQL回顾(完整性约束相关)

    简介 MYSQL完整性约束条件主要包括: auto_increment not null 和 default unique primary key foreign key unique、 primary...如果直接向关联中插入记录,如果外键在被关联中不存在会导致插入失败 3.删除数据 先删除关联记录 delete from emp where dep_id=1; 再删除被关联记录 delete...from dep where id=1; 反过来执行会报错,因为关联(员工)中还存在一些记录外键指向被关联(部门),所以直接删除被关联(部门记录时不合法。...4.更新数据 强行更新被关联记录主键也会报错,因为关联中还存在一些记录外键指向被关联 update dep set id=333 where id=3; 解决方案 创建关联(员工时候增加删除同步和更新同步...删除同步和更新同步并不解决建和插入记录操作先后问题 删除同步是指删除被关联记录同步更新关联 更新同步是指更新被关联记录同步更新关联 增加了删除同步和更新同步后,更新部门记录和删除部门记录不再会报错

    5.8K20

    MySQL约束

    约束本质: 通过技术手段倒逼程序员插入正确数据。反过来站在mysql视角,凡是插入进来数据,都是符合数据约束约束最终目标: 保证数据完整性和可预期性。 为什么数据库这么严格?...二.非空约束 1.NULL与’ '比较 在MySQL数据类型已经说过,这二者是不同,NULL代表什么都没有,而' '代表一个空串。 在select语句中,NULL不会参与到相应计算操作中。...删除主键约束 这样,插入数据就可以重复,但是通过观察,仍不能为空,因为not null在创建添加约束期间会一并添加到约束。不过有了主键,才能更好查找数据,因为其具有唯一性。...因此,这就需要让两个产生联动,插入class_id=3学生前提是存在id=3班级,删除id=1班级最后会连着学生中所属class_id=1学生信息一并删除,这就涉及到了外键约束。...只有在student中不存在id=1学生,才能删除。 这就叫做外键约束。外键本质就是产生关联,增加约束,保证之间完整性

    21250

    MySQL约束

    一 介绍 约束条件与数据类型宽度一样,都是可选参数 作用:用于保证数据完整性和一致性 主要分为: PRIMARY KEY (PK) 标识该字段为该主键,可以唯一标识记录 FOREIGN...,被约束字段必须同时被key约束 #不指定id,则自动增长 create table student( id int primary key auto_increment, name varchar(...,在用delete删除后,再插入值,该字段仍按照删除位置继续增长 mysql> delete from student; Query OK, 4 rows affected (0.00 sec)...比起delete一条一条地删除记录,truncate是直接清空,在删除时用它 mysql> truncate student; Query OK, 0 rows affected (0.01 sec...  分析步骤: #1、先站在左角度去找 是否左多条记录可以对应右一条记录,如果是,则证明左一个字段foreign key 右一个字段(通常是id) #2、再站在右角度去找 是否右多条记录可以对应左一条记录

    4.8K60

    Mysql数据库学习(三):crud操作、完整性约束、select各种查询

    一、crud操作 指增加(Create)、查询(Retrieve)(重新得到数据)、更新(Update)和删除(Delete) // select 查询后面再讲 create table tb_test2... */  truncate table t_emp;// 比较快 drop table t_emp; /* 整删除 */ 二、完整性约束 完整性约束 主键 (constraint) 外键...(constraint) 用户自定义完整性约束 (check) create table t_emp(empno int not null primary key, ename varchar...外连接(全连接):全外连接是在等值连接基础上将左和右未匹配数据都加上。mysql 不支持 full outer join。...自然连接:在连接条件中使用等于(=)运算符比较被连接列列值,但它使用选择列表指出查询结果集合中所包括列,并删除连接重复列。

    3.7K00

    MySQL&约束&事务

    对表中数据进行进一步限制,从而保证数据正确性、有效性、完整性....); -- 删除 DROP TABLE emp2; -- 方式2 创建一个带主键 CREATE TABLE emp2( eid INT , ename VARCHAR(20), sex CHAR(...), sex CHAR(1) ) - -- 创建时候不指定主键,然后通过 DDL语句进行设置 ALTER TABLE emp2 ADD PRIMARY KEY(eid); -- 使用DDL语句 删除主键...,对自增没有影响,使用truncate 是将整个删除掉,然后创建一个新 自增主键,重新从 1开始 非空约束 非空约束特点: 某一列不予许为空 # 非空约束 CREATE TABLE emp2...MySQL 事务隔离级别 一个数据库可能拥有多个访问客户端,这些客户端都可以并发方式访问数据库. 数据库相同数据可能被多个事务同时访问,如果不采取隔离措施,就会导致各种问题, 破坏数据完整性

    1.2K30

    MySQL学习之路:数据完整性-外键约束

    数据完整性 数据完整性是指数据准确性和逻辑一致性,用来防止数据库中存在不符合语义、无效数据或错误数据等。...MySQL中,数据完整性通常使用约束来实现,本任务主要约束包括PRIMARY KEY约束、NOT NULL约束、DEFAULT约束、UNIQUE约束、CHECK约束和FOREIGH KEY约束。...外键约束实现了引用完整性,当主表中被引用列值发生变化时,为了保证间数据一致性,从中与该值相关信息也应该相应更新,这就是外键约束级联更新和删除。...,如果该值被其他引用,则级联更新或删除中相应记录。...删除约束 使用DROP TABLE语句删除时,中所有的约束也随之被删除。 使用ALTER TABLE可以删除指定约束。 ALTER TABLE 名 DROP 约束类型 [约束名];

    22320

    MYSQL数据库-约束

    零、前言 本章主要讲解学习MYSQl数据库中约束 约束 真正约束字段是数据类型,但是数据类型约束很单一,需要有一些额外约束,更好保证数据合法性,从业务逻辑角度保证数据正确性...字段列表) 删除主键: alter table 名 drop primary key; 复合主键: 在创建时候,在所有字段之后,使用primary key(主键字段列表)来创建主键,如果有多个字段作为主键...这样可以使对应于SQL语句执行得更快,可快速访问数据库特定信息 7、唯一键 一张中有往往有很多字段需要唯一性,数据不能重复,但是一张中只能有一个主键:唯一键就可以解决中有多个字段需要唯一性约束问题...示例: 8、外键 外键用于定义主表和从之间关系:外键约束主要定义在从上,主表则必须是有主键约束或unique约束。...解决方案就是通过外键完成。建立外键本质其实就是把相关性交给mysql去审核了,提前告诉mysql之间约束关系,那么当用户插入不符合业务逻辑数据时候,mysql不允许你插入

    7.5K30

    MySQL数据库:数据完整性约束应用

    数据完整性 1.域完整性:---------匹配完整性:非空、缺省 字段/列 2.实体完整性:-------匹配完整性:主键、唯一键 记录/行 3.引用完整性:-------匹配完整性:外键 之间...约束:constraint MySQL约束分类 主键:primary key 唯一键:unique 非空:not null 缺省:default 外键:foreign key 主键、唯一键...mysql 外键约束 SET FOREIGN_KEY_CHECKS=0; 打开mysql 外键约束 SELECT @@FOREIGN_KEY_CHECKS; 删除外键 注意:此语句在删除外键后不能关联删除该外键自动产生约束...alter table 名 drop foreign key 外键名称; 删除唯一键 注意:唯一键删除后对应索引也会自动删除 alter table 名 drop index 唯一键字段名;...删除指定名称索引 alter table 名 drop index 索引名称; 提醒:对于有主外关联删除中数据,如果无删除级联操作,那么删除主表数据之前,必须先删除对应数据

    1.5K30

    MySQL数据库:约束

    约束,实质上就是用数据类型去约束字段,但是数据类型约束手法很单一,比如,我们在设置身份证号这个字段,数据类型唯一起约束是它属于char类型或者varchar类型,不能是浮点型也不能是日期时间类型...名 add primary key(字段列表) 删除主键 alter table 名 drop primary key; 举例: 原本上面的tt15中,id为主键,如今删掉了。...而我们设计员工工号时候,需要一种约束:而所有的员工工号都不能重复。具体指的是在公司业务上不能重复,我们设计时候,需要这个约束,那么就可以将员工工号设计成为唯 一键。...:外键约束主要定义在从上,主表则必须是有主键约束或unique约束。...,提前告诉mysql之间约束关系,那么当用户插入不符合业务逻辑数据时候,mysql不允许你插入。

    24830

    MySQL删除约束_mysql查看表字段

    (set) #添加默认值,字符串需要用引号 alter table alter 字段名 set default ‘默认值’; desc 名; #删除默认值 drop alter table alter...字段名 drop default; desc ; 5.删除字段 (drop) alter table drop 字段名; desc ; 二、字段约束约束是对字段中数据进行限制,用于保证数据完整性,...#创建时候,添加默认约束 CREATE TABLE (字段名 数据类型 default ‘默认值’); #删除默认约束 alter table alter 字段名 drop default; 3....主键约束(primary key) 主键约束字段,不可以为空、不可以重复 #创建时候,添加主键; CREATE TABLE (字段名 数据类型 PRIMARY KEY); 复合主键: 由多个字段组成主键...唯一约束(Unique Key) Unique Key 约束字段,值唯一,允许为空,唯一约束可以确保一列或者多列不出现重复值 #创建时添加唯一约束 CREATE TABLE (字段 数据类型 UNIQUE

    2.6K30

    mysql常见选项和约束

    约束主要是防止非法数据进入中,保证数据正确性和一致性,统称为数据完整性 约束也可以防止一个删除 MySQL约束保存在information_schema.table_constraints中...参照完整性约束,保证一个或两个之间参照完整性,外键是构建于一个两个字段或者是两个两个字段之间参照关系 注意: 具有外键约束值不能随便给,必须满足外键所引用主键取值 一张中可以定义多个外键...dept(deptid) 外键删除规则 当删除行时,如果子表中有依赖被删除父行子行存在,那么就不允许删除,并抛出异常(默认对外键使用on delete restrict或on delete...当删除行时,如果子表中有依赖于被删除父行子行存在,那么联通子行一起删除,相当于rm -f on delete set null:当删除行时,如果子表中有依赖于被删除父行子行存在,那么不删除...MySQl中可以使用check约束,但是check约束对数据验证没有任何作用。

    13210
    领券