数据库(三)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 数据完整性是数据库管理中的关键概念,确保数据的准确和一致。主要包括:1. 实体完整性:通过主键(唯一且非空)来标识表中的每条记录,如创建`test2`表时设置`n1`为主键。2. 创建表`test3`时,`n1`和`n2`组合成为主键,确保多字段的唯一性。3. 唯一约束:用于保证列值的唯一性,如在`test1`中添加对`n2`的唯一约束,或创建`test4`时`n1`和`n2`的组合值唯一。4. 引用完整性:通过外键约束实现,如`emp`表的`dept_id`引用`dept`表的`id`,确保数据间的关联合法性。外键可以有级联操作,如`on delete cascade`和`o

数据完整性

  1. 实体完整性
  1. 主键(主码):唯一且非空
  1. create table test1

(n1 int,

n2 int,

n3 int);

允许出现重复元组

  1. 创建 test2,并将n1设为主键

//约束的列级形式

Create table test2

(n1 int primary key,

n2 int,

n3 int);

创建主键后,DBMS会自动创建索引

  1. 创建 test3,并将n1,n2设为主键

//约束的表级形式

Create table test3

(n1 int,

n2 int,

n3 int,

primary key(n1, n2));

  1. 给test1表添加主键

Alter table test1

Add 主键的表级形式

  1. 唯一约束(Unique):唯一。唯一约束的用法与主键相同,只需将关键词换成Unique。当创建唯一约束时,系统会自动创建索引
  1. 创建 test4,并要求n1和n2的组合值唯一

Create table test4

(n1 int

n2 int,

n3 int,

Unique(n1, n2));

  1. 给test1的n2属性定义唯一约束

Alter table test1

Add 唯一的表级形式

  1. 唯一索引

Create index 索引名 on 表名(属性名列表)

  1. 自增属性
  1. 参照完整性
  1. 员工表的dept_id属性引用部门表的id属性

Alter table 表名

Add 外键的表级形式

alter table emp add FOREIGN key (dept_id) REFERENCES dept(id);

  1. 列级形式

create table emp0

(id int,

   dept_id int FOREIGN KEY REFERENCES dept(id) ,

     salary NUMERIC(5,2));

  1. 当创建外键后,被参照表的删除、修改受限制,添加不受限;参照表的修改、添加受限,删除不受限

create table emp0

(id int,

dept_id smallint,

FOREIGN KEY (dept_id) REFERENCES dept(id)

On delete cascade

On update cascade ,

     salary NUMERIC(5,2));

  1. 用户定义完整性
  1. 触发器
  2. Enum,Set
  3. Check(mysql 8.0.16版本之前无效)
  1. Check(条件表达式),条件表达式的写法与查询相同。

create table  stu

  (name varchar(10),

   sex  varchar(1) check(sex in ('男','女')),

   birth datetime,

     join_date datetime);

alter table stu

     add check(name like '张%');

  1. 约束名的定义

Constraint 约束名 约束定义

Constraint pk_emp primary key(id)

Constraint fk_emp foreign key (dept_id) references dept(id)

  1. 删除约束

Alter table  表名

Drop Constraint 约束名

--MySql

--删主键

Alter table  表名

Drop  Primary Key

--删唯一约束

Alter table  表名

Drop index 约束名

--删外键

Alter table  表名

Drop Foreign Key 约束名数据完整性

  1. 实体完整性
  1. 主键(主码):唯一且非空
  1. create table test1

(n1 int,

n2 int,

n3 int);

允许出现重复元组

  1. 创建 test2,并将n1设为主键

//约束的列级形式

Create table test2

(n1 int primary key,

n2 int,

n3 int);

创建主键后,DBMS会自动创建索引

  1. 创建 test3,并将n1,n2设为主键

//约束的表级形式

Create table test3

(n1 int,

n2 int,

n3 int,

primary key(n1, n2));

  1. 给test1表添加主键

Alter table test1

Add 主键的表级形式

  1. 唯一约束(Unique):唯一。唯一约束的用法与主键相同,只需将关键词换成Unique。当创建唯一约束时,系统会自动创建索引
  1. 创建 test4,并要求n1和n2的组合值唯一

Create table test4

(n1 int

n2 int,

n3 int,

Unique(n1, n2));

  1. 给test1的n2属性定义唯一约束

Alter table test1

Add 唯一的表级形式

  1. 唯一索引

Create index 索引名 on 表名(属性名列表)

  1. 自增属性
  1. 参照完整性
  1. 员工表的dept_id属性引用部门表的id属性

Alter table 表名

Add 外键的表级形式

alter table emp add FOREIGN key (dept_id) REFERENCES dept(id);

  1. 列级形式

create table emp0

(id int,

   dept_id int FOREIGN KEY REFERENCES dept(id) ,

     salary NUMERIC(5,2));

  1. 当创建外键后,被参照表的删除、修改受限制,添加不受限;参照表的修改、添加受限,删除不受限

create table emp0

(id int,

dept_id smallint,

FOREIGN KEY (dept_id) REFERENCES dept(id)

On delete cascade

On update cascade ,

     salary NUMERIC(5,2));

  1. 用户定义完整性
  1. 触发器
  2. Enum,Set
  3. Check(mysql 8.0.16版本之前无效)
  1. Check(条件表达式),条件表达式的写法与查询相同。

create table  stu

  (name varchar(10),

   sex  varchar(1) check(sex in ('男','女')),

   birth datetime,

     join_date datetime);

alter table stu

     add check(name like '张%');

  1. 约束名的定义

Constraint 约束名 约束定义

Constraint pk_emp primary key(id)

Constraint fk_emp foreign key (dept_id) references dept(id)

  1. 删除约束

Alter table  表名

Drop Constraint 约束名

--MySql

--删主键

Alter table  表名

Drop  Primary Key

--删唯一约束

Alter table  表名

Drop index 约束名

--删外键

Alter table  表名

Drop Foreign Key 约束名

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
10天前
|
数据库
数据库视频(一)
数据库视频(一)
12 0
|
5月前
|
SQL Java 数据库
从0到1了解数据库—实现一个自己的数据库
从0到1了解数据库—实现一个自己的数据库
34 0
|
8月前
|
关系型数据库 Linux BI
数据库的一些知识
数据库的一些知识
28 0
|
3月前
|
SQL 关系型数据库 MySQL
盘点数据库中的一些坑(一)
盘点数据库中的一些坑(一)
25 0
|
10天前
|
XML SQL 数据库
数据库视频(三)
数据库视频(三)
12 0
|
22天前
|
存储 传感器 监控
数据库的应用
数据库广泛应用于电子商务、物流、酒店管理、医疗、航空、教育、政府和物联网等领域,用于高效存储和管理商品信息、订单数据、医疗记录、航班详情等各类数据,提升效率和服务质量。随着技术进步,其应用场景将持续扩展。
12 1
|
2月前
|
Go 数据库
数据库的实现
数据库的实现
11 0
|
3月前
|
存储 数据库 数据安全/隐私保护
数据库特点
数据库特点
29 9
|
10月前
|
SQL 数据库
数据库—耿建玲视频总结(一)
基本上每一个材料开始都有其介绍发展史的,了解一下发展史可以培养我们一部分的兴趣,然后就是SQL server的安装介绍,这个在之前我们已经亲身实践了安装的过程,并且还为这安装问题苦恼过好久呢
|
11月前
|
关系型数据库 MySQL 数据库