数据库的操作:数据完整性约束是什么?

一.作用

数据的准确性和可靠性

二.分类

实体完整性,域完整性,引用完整性,自定义完整性

三.详细

1.实体完整性

①实体:记录

②实体完整性约束保证数据记录之间是准确的(能够唯一标识一个实体)

③实体完整性包含主键约束,唯一约束,主键自增三种

1)主键约束【例如id】

        特点:唯一的,不能为空

        关键字:primary key

        添加约束语法:alter table 表名 add constraint 约束名 primary key(字段名);

        约束名:PK_字段

        删除约束语法:alter table 表名 drop primary key;

create table student(
    id int primary key,
    name varchar(20),
    age int
)

表已经创建好,需要添加主键约束

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

约束名:PK_字段

alter TABLE userinfo add uid INT;
alter table userinfo add CONSTRAINT PK_uid PRIMARY KEY(uid)

删除约束

alter table userinfo drop primary key;

2)唯一约束【例如身份证字段】

        特点:不能重复,可以为空,可以添加多个

        关键字:unique

        添加约束语法:alter table 表名 add constraint 约束名 unique(字段名);

        约束名:UQ_字段名

        删除约束语法:alter table表名 drop key 约束名;

创建表时:

create table student(
	id int PRIMARY key,
	name VARCHAR(20),
	age int,
	idcard VARCHAR(30) unique
)

表已创建好,需要添加唯一约束

alter table userinfo add CONSTRAINT UQ_tel unique(tel)

3)主键自增

        特点:从1开始,每次自身加1(在oracle中不能使用)

        关键字:auto_increment

        只能在创建表时添加主键自增的约束,而且必须是主键才能添加!!!

①添加主键自增

create table student(
	id int PRIMARY key auto_increment,
	name VARCHAR(20),
	age int,
	idcard VARCHAR(30) unique
)

②删除主键自增约束

        ----去除自增熟悉

        ----删除主键约束

# 去掉自增性
alter TABLE student modify id int;
# 删除主键
alter table student drop primary key;

2.域完整性(只能在创建表时添加!!!!)

        域:字段

        域完整性约束保证字段的数据准确的

        域完整性包括类型约束,非空约束,默认值
1)类型约束

2)非空约束

        特点:字段不允许为空

        关键字:not null

3)默认值

        特点:设置默认的值

        关键字:default

create table student(
	id int PRIMARY key auto_increment,
	name VARCHAR(20) not null,
	age int,
	idcard VARCHAR(30) unique,
	sex char(2) DEFAULT '女'
)

3.引用完整性

        一张表中通用列的取值必须参考另外一张表的主键

        引用完整性有外键约束

1)外键约束

        特点:设置外键的字段的取值只能参考另一张表中同一个字段的值

        关键字:foreign key

        添加外键约束的语法:alter table 表名1 add constraint 约束名 foreign key(字段名)

        reference 表名2(字段名)

        删除外键的语法:alter table 表名 drop froeign key 约束名;

# 建立一个学生表,其中class_id是与班级表中的id是一致
create table student(
	id int PRIMARY key auto_increment,
	name VARCHAR(20) not null,
	age int,
	idcard VARCHAR(30) unique,
	sex char(2) DEFAULT '女',
	class_id INT
)
建立班级表
create table classroom(
	class_id int PRIMARY KEY,
	class_name VARCHAR(30)
)
建立两个表的外键约束
alter table student add constraint FK_class_id FOREIGN KEY(class_id) REFERENCES classroom(class_id)
删除外键的语法:
alter table student drop foreign key FK_class_id

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值