什么是数据完整性:保证用户输入的数据保存到数据库中是正确的

如何保证数据完整性:在创建表时给表中添加约束

完整性分类:

1.实体完整性

什么是实体:表中的一行(一条记录)就是一个实体
实体完整性的作用:标记每一行数据不重复,行级约束

1.primary key(主键约束) 每个表中一般只有个主键,唯一且非空
create table emp (
  id bigint primary key,
  name varchar(50)
  );

联合主键:两个字段同时相同才违法主键约束
create table students(
    id bigint ,
    snum bigint,
    name varchar(50)
    primary key(id,snum)
  )

2.unique(唯一约束)数据唯一,可以非空
create table emp (
  id bigint primary key,
  name varchar(50) unique
  );
3.auto-increment(自增约束)值列的数据自动增长,即使数据删除还是从删除之前的数据继续增长
create table emp (
  id bigint primary key auto-incremen,
  name varchar(50) unique
  );

2.域完整性

域代表当前单元格,限制此单元格的数据正确性,不对照此列的其他单元格比较

1.数据类型约束:数值类型、日期类型、字符串类型

2.非空约束(not null)
create table emp(
  id int primary key auto_incremen,
  name varchar(20) unique not null
  )

3. 默认值约束(default)
create table emp(
  id int primary key auto_incremen,
  name varchar(20) unique not null,
  gender vhar(1) default '女'
  )

3.引用完整性

是指表与表直接的一种对应关系,通常情况下可以通过设置两个表之间的主键、外键关系,或者编写两表的触发器来实现。

给score表的sid字段添加约束,参照stu表的id
create table score(
    sid int,
    score int,
    constraint sc_st_fk  foreing key(sid) references stu(id)
);