美文网首页
数据完整性与多表查询

数据完整性与多表查询

作者: 恬恬i阿萌妹O_o | 来源:发表于2018-09-12 11:16 被阅读0次

什么是数据完整性?
 保证用户输入的数据保存到数据库中是正确的。
如何添加数据完整性?
在创建表的时候给表添加约束。
完整性分类?
(1).实体完整性
(2).域完整性
(3).引用完整性
(1).什么是实体完整性?
表中的一行(一条记录)代表一个实体(entity).
实体完整性的作用?
标识(标记)每一行数据不重复.行级约束.
约束类型
(1).主键约束(primary key)
(2).唯一约束(unique)
(3).自动增长(auto_increment)
(4).不为空(not null)
(5).默认值(default)
主键(primary key)的特点:(1).(创建)每个表中要有一个主键,(2).数据唯一,且不能为null(空)。
唯一(unique)约束的特点:(1).指定列的数据不能重复,(2).可以为空值
自增长(auto_incremeny)的特点:(1).指定列的数据自动增长;(2).即使数据删除,还是从删除的序号继续                往下执行,(3).一般我们会给主键设置为自动增长列.

主键(primary key)
联合主键:两个字段数据同时相同时,才违反联合主键约束
create table 表名(字段1 数据类型,字段2 数据类型,primary key(主键1,主键2));
先创建表再添加主键
如果表中你之前已经添加了数据,数据不符合主键规则就会报错
alter table student add constraint primary key(sid);
(2).域完整的使用:
 限制此单元格的数据正确,不对照此列的其他单元格比较
域代表当前的单元格(列)
数据类型:(1). 数值类型,(2).日期类型,(3)字符串类型;
(3).参照完整性
什么是参照完整性?
1.(1). 是指表与表之间的一种对应关系
(2).通常情况下可以通过设置两表之间的主键、外键关系,或者编写两表的触发器来实现
(3).有对应参照完整性的两张表格,再对他们进行数据插入,更新,删除的过程中,系统都会将被修改表格 与另外一张对应表格进行对照,从而阻止一些不正确的数据的操作

  1. 数据库的主键和外键类型一定要一致
  2. 两个表必须要是InnoDB引擎
  3. 设置参照完整性后,外键当中的内值,必须得是主键当中的内容
  4. 一个表设置当中的字段设置为主键,设置主键的为主表
  5. 创建表时,设置外键,设置外键的为子表
    参照完整性添加外键
    对已有的表添加外键:alter table 表名 add contraint fk_sc_st(起一个名字) froeign key(sid)(外键) references students(id)(主表里面的id);
    在表里面添加外键:constraint fk_sc_st froeign key(sid) refereces students(id);

删除外键

alter table 表名 drop foreign key FK_CLSID;
如果不知道起的别名是什么用命令:show create table 表名;

添加外键

alter table student ADD constraint FK_CLSID foreign key(clsid) references classes(id);
多表查询
1.一对一:一夫一妻(开发中使用比较少)
2.一对多关系: 一个人可以拥有多辆汽车,要求查询某个人拥有的所有车辆,
3.多对多的关系:例如:学生选课,一个学生可以选修多门课程,每门课程可以供多个学生选择
        再例如: 老师和学生的多对多关系(一个老师有多个学生,一个学生有多个老师)
合并结果集:(1).union:合并时去除重复记录.(2).union all :合并时不去除重复记录.
(1).例如:select * from 表1 union select * from 表2;
(2).例如:select * from 表1 unin all select * from 表2;
注意事项: 被合并的两个结果集:列数,列类型必须相同。 
unsigned 无符号的整数

相关文章

  • 数据完整性与多表查询

    什么是数据完整性?保证用户输入的数据保存到数据库中是正确的。如何添加数据完整性?在创建表的时候给表添加约束。完整性...

  • 数据完整性与多表查询

    什么是数据完整性?保证用户输入的数据保存到数据库中是正确的。如何添加数据完整性?在创建表的时候给表添加约束。完整性...

  • arango增删改查

    arango实践 插入数据 修改数据 插入数据 查询数据 复杂查询 多表查询

  • MySQL-7:多表查询

    今日内容 1.多表查询 2.事务 3.DCL 多表查询: 查询语法: 数据准备(数据库表以及数据的创建): #...

  • 数据库之增删改查

    增加数据(插入) 修改数据 删除数据 查找数据 基础数据 高级查询 多表查询 准备三个表 多表查询 将学生表和班级...

  • arango的AQL

    arango实践 插入数据模板 修改数据模板 插入数据 查询数据 复杂查询 多表查询 图查询

  • mysql---多表查询

    判断数据表中的分数是否及格: 多表联合查询---左连接 统计个数 嵌套查询: 多表查询:

  • 56、【数据库技术】【MySQL】多表查询

    1、多表查询概述 多表查询,即查询时候的数据来源不再只有一张表。 多表查询在关系型数据库的基础理论中是有一些理论基...

  • MySql : 三、 多表查询和事务

    前言 本篇主要介绍了数据库中多表查询以及事务相关的知识。 目录 一、多表查询二、子查询三、事务 一、多表查询 1....

  • 史上最高效的ORM方案——GreenDao3.0高级用法

    目录 session 缓存 多表关联 多表查询 自定义参数类型 与数据库操作相关的AS插件 session 缓存 ...

网友评论

      本文标题:数据完整性与多表查询

      本文链接:https://www.haomeiwen.com/subject/anbmgftx.html