数据完整性:主键、外键、约束

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

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

完整性分类:

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)
);
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值