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

数据完整性

1.域完整性:---------匹配完整性:非空、缺省
字段/列

2.实体完整性:-------匹配完整性:主键、唯一键
记录/行

3.引用完整性:-------匹配完整性:外键
表与表之间

约束:constraint

MySQL中的约束分类

主键:primary key
唯一键:unique
非空:not null
缺省:default
外键:foreign key

主键、唯一键、外键都会自动创建索引
主键:一个表只能有一个主键,其可以对应一个字段,也可以对应多个字段(组合主键)
唯一键:也成为候选主键(跟主键的区别在于可以存储null值)
外键:来源于主表的主键或唯一键(可允许为空,且其值必须在主表中出现过)

创建约束
constraint 约束名 约束类型(字段名) references 主表(主键字段或唯一键字段)

创建外键约束

constraint 约束名 foreign key(对应字段) references 主表(主键字段或唯一键字段)

创建组合主键

primary key (字段1,字段2)

对于已经存在的表,创建唯一键约束

alter table 表名 add constraint 约束名 unique(字段名);

删除约束的数据 先删除子表数据,再删除主表数据

级联删除

on delete cascade 

级联更新

on update cascade

关掉mysql 外键约束

SET FOREIGN_KEY_CHECKS=0;

打开mysql 外键约束

SELECT  @@FOREIGN_KEY_CHECKS;

删除外键
注意:此语句在删除外键后不能关联删除该外键自动产生的约束

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

删除唯一键
注意:唯一键删除后对应的索引也会自动删除

alter table 表名 drop index 唯一键字段名;

删除指定名称的索引

alter table 表名 drop index 索引名称;

提醒:对于有主外关联的表,删除表中数据,如果无删除的级联操作,那么删除主表数据之前,必须先删除从表对应数据

(0)

相关推荐

  • 【竺】数据库笔记12——外键约束 之CASCADE、SET NULL、RESTRICT、NO ACTION分析和...

    MySQL有两种常用的引擎类型:MyISAM和InnoDB.目前只有InnoDB引擎类型支持外键约束.InnoDB中外键约束定义的语法如下: ALTER TABLE tbl_name ADD [CON ...

  • 数据库约束有什么作用?Linux运维MySQL数据库

    数据库是存储数据的仓库,由数据库表组成.数据库本质是一个文件系统,数据库以特定的格式存储数据,用户可以添加.修改.删除和查询数据库中的数据.对于运维工作者或者数据库工作者来说,数据库约束是学习数据库相 ...

  • UC头条:MySQL数据库定时备份到其他电脑

    最近我的一个学弟问了我一个问题,说他要实现一个功能,他老师给他提出来一个问题,让他的项目实现定时备份数据库到其他电脑,确保安全.他就来问我,还好我之前弄过,虽然我是干前端的,哈哈哈,之前学的比较杂. ...

  • 【竺】数据库笔记7——Mysql数据库备份

    *. mysql -u username -p password: 这个命令用于输入用户名和密码登陆mysql服务器: *.show databases;:用于查看mysql服务器中的数据库情况(会罗 ...

  • MySQL数据库有哪些优势特点?Linux数据库

    为什么众多企业都选择MySQL数据库?目前,绝大多数使用Linux操作系统的互联网企业都使用MySQL作为后端的数据库.MySQL是互联网领域里非常重要的.深受广大用户欢迎的一款开源关系型数据库软件. ...

  • Power BI连不上MySQL数据库?怎么破?

    - 1 -  直连的问题及解决办法 今天要连一个别人管理的MySQL数据库抽取数据,本来想着是个很简单的事儿,因为Power BI本身就提供了MySQL的连接器: 然鹅,当我很开心地去点"连 ...

  • win10专业版能安装上mysql数据库么

    提问win10专业版能安装上mysql数据库么?如果能,能不能给个安装步骤? 网上百度的各种方法都试过了装不上,请看清楚是win10专业版 1.同时按下键盘组合键Win+i,打开设置窗口,点击&quo ...

  • MySQL数据库是什么?Linux数据库运维

    Mysq|是目前流行的关系型数据库管理系统.MySQL是WEB应用中较好的应用软件之一.数据库技术是管理信息系统.办公自动化系统.决策支持系统等各类信息系统的核心部分,对于互联网发展起着重要的作用.现 ...

  • jmeter压测学习18-JDBC配置连接mysql数据库

    前言 使用jmeter压测接口的时候,有时候需要批量造数据,需使用jmeter连数据库造对应的测试数据. 或者测试结束后,对测试的数据还原,删掉一些垃圾数据,都会用到连接数据库执行sql的操作. JD ...

  • mysql数据库中利用GROUP

    mysql数据库中利用GROUP_CONCAT)把查询的结果列合并分组显示 效果图 在数据库中group by 一列查询出若干行数据,sql如下: select * from table group ...