数据库(三)

本文涉及的产品
云数据库 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
相关文章
|
19天前
|
数据库
数据库视频(一)
数据库视频(一)
12 0
|
19天前
|
数据库
数据库视频(五)
数据库视频(五)
16 0
|
1月前
|
存储 传感器 监控
数据库的应用
数据库广泛应用于电子商务、物流、酒店管理、医疗、航空、教育、政府和物联网等领域,用于高效存储和管理商品信息、订单数据、医疗记录、航班详情等各类数据,提升效率和服务质量。随着技术进步,其应用场景将持续扩展。
12 1
|
1月前
|
关系型数据库 MySQL 数据库
数据库(四)
`DELETE` 语句用于从表中移除数据。基本语法是 `DELETE FROM 表名 WHERE 条件表达式`,条件可选,若省略则删除所有数据。例如,`DELETE FROM emp WHERE dept_id = 10` 删除10号部门员工。`TRUNCATE` 表名更快,用于清空表,但不支持条件,且数据不可恢复。子查询可用于`CREATE TABLE AS SELECT`来复制表,或在`INSERT`, `UPDATE`语句中进行复杂操作,如更新特定区域员工的工资。
10 1
|
10月前
|
SQL 数据库 Windows
数据库—耿建玲视频总结(二)
首先建库,就好比我们盖房子,我们可以自己盖(企业管理器建库),也可以包给别人让别人给盖(T语言建库)。
|
7月前
|
存储 缓存 关系型数据库
2、数据库相关
2、数据库相关
31 0
|
SQL 存储 人工智能
数据库(三)
数据库(三)
68 0
|
SQL 存储 XML
一、初识数据库
将大量数据保存起来,使用计算机加工而成的可以进行高效访问的数据集合。称为database,DB。 用来管理数据库的计算机系统称为DBMS
|
SQL 资源调度 关系型数据库
快速学完数据库
本来想写文章来复习的,后面发现越写越多,而且感觉本末倒置了,查询语句写的最少,其他倒是写的很详细,数据库知识真的太细太碎了,整理起来难度真的挺大的,如果是数据库小白,这篇文章肯定很有用,它没有过多的实战,带你了解数据库的基本框架和能够完成的任务,如果是数据库学过的话,那这篇文章可能对你而言只有前面数据库概述和设计数据库有用,数据库sql语句这部分非常的精简,几乎只是了解个框架,第一次写长文欢迎评论区大佬们的指正。
68 0
快速学完数据库
|
数据库 索引
数据库题
数据库题
57 1