当前位置: 首页 > article >正文

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

一.作用

数据的准确性和可靠性

二.分类

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

三.详细

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

原文地址:https://blog.csdn.net/m0_53780713/article/details/142055614
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/297170.html

相关文章:

  • linux-基础知识3
  • Arduino IDE的安装
  • springcloud间通信的方式
  • 非标金属零件加工的质量与效率是如何体现的?
  • Figma如何给设计的UI套样机
  • RK3562 NPU供电要求
  • wordpress做后台的资讯类小程序源码
  • Anaconda Prompt 安装paddle2.6报错
  • 线程池实现服务端
  • Linux Runtime PM(运行时电源管理)框架API
  • 97.游戏的启动与多开-共享内存多开检测
  • 九,自定义转换器详细操作(附+详细源码解析)
  • c语言--力扣简单题目(移除链表元素)讲解
  • UE4_后期处理_后期处理材质及后期处理体积一
  • 从Milvus迁移DashVector
  • 久久派安装启用USB摄像头(基于mjpg-streamer)
  • TCP 拥塞控制
  • 本地服务器部署Text generation并添加code llama实现远程多人协作
  • C#复习之内部类和分布类
  • 2024年CCPC网络赛A题题解 —— 军训Ⅰ(gym105336A)