数据库(三)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 数据完整性是数据库管理中的关键概念,确保数据的准确和一致。主要包括: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 约束名

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
存储 数据库
为什么需要数据库
为什么需要数据库。
33 4
|
4月前
|
SQL NoSQL 关系型数据库
常用数据库
【5月更文挑战第21天】常用数据库
71 3
|
4月前
|
存储 监控 算法
什么是数据库的内模式
什么是数据库的内模式
|
4月前
|
存储 传感器 监控
数据库的应用
数据库广泛应用于电子商务、物流、酒店管理、医疗、航空、教育、政府和物联网等领域,用于高效存储和管理商品信息、订单数据、医疗记录、航班详情等各类数据,提升效率和服务质量。随着技术进步,其应用场景将持续扩展。
36 1
|
4月前
|
SQL 数据库
数据库(五)
`UPDATE` SQL语句用于修改表中的数据。基本语法是:`UPDATE 表名 SET 属性名1=新值1,属性名2=新值2 WHERE 条件表达式`。例如,更新员工工资:`UPDATE emp SET salary=5000 WHERE id=1`。可以使用`+=`操作符增加值,如`UPDATE emp SET salary=salary+500 WHERE dept_id=2`。统计查询中,`COUNT`, `MAX`, `MIN`, `AVG`, `SUM`等函数用于数值、字符和日期的统计分析,注意`WHERE`子句不能直接使用聚集函数。
27 2
|
4月前
|
数据库
数据库视频(四)
数据库视频(四)
34 0
|
4月前
|
存储 数据挖掘 数据库
数据库是什么?为什么要使用它么?
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。它通常与数据库管理系统(DBMS)一起使用,用于创建、查询、更新和管理数据库中的数据。
124 0
|
4月前
|
存储 SQL 关系型数据库
初识数据库
初识数据库
|
SQL 数据库
【数据库视频】总结
【数据库视频】总结
82 0
【数据库视频】总结
|
存储 SQL 安全
一、如何快速掌握数据库
一、如何快速掌握数据库
112 0