数据库系统概论简易复习手册(一)

前言

复习数据库系统概论的自用手册,保留了应付考试的内容。


一、数据库与表基本操作

1.数据库与表的建立与删除:

建立数据库:	CREATE DATABASE 数据库名;
建立表:		CREATE TABLE 表名
						(
						列名1	数据类型		PRIMARY KEY/UNIQUE	//主键/唯一值
						......			//操作同上
						)
删除:	DROP	类型 	名字		//类型可以是数据库、表、视图、存储过程、索引....但是用它删除要注意表之间的约束条件

2.表操作:ALTER

1.增加列:
		ALTER table 表名
				add	列名 数据类型;	
2.外键参照:
		创建表时,在后面加上foreign key(...)  references	外表名(....3.更改约束:
		alter table 表名
				drop foreign key 外键名	//删除
				add	 foreign key 外键名 (..)references 外表名(...)//添加
				on   update/delete......	//级联操作,更新、删除时
4.插入行:
		insert into 表名
					values(根据每一列的具体要求写值)
5.更新数据(视图也一样):
		例:update 表名
			  set
			  		xxx=....
			  	where .....
6.删除一行:
		delete from 表名
			   where ....

二、基本操作

1.别名:AS

select
	a,
	b,
	c,
	(d+10)*100 AS 起的别名
	from xxxxx 

2.结果去重:DISTINCT

select distinct xxx
	from xxxxx 

3.查询结果返回多个值:IN

select *
	from xxx
	where xxx	IN  (你的操作)	

4.查询结果在…之间:BETWEEN…AND

select *
	from xxx
	where xxxx BETWEEN 左边界 AND 右边界

5.查询空值:NULL

select *
	from xxx
	where xxxx is NULL

6.限制返回结果数量:LIMIT

select *
	from xxx
	where xxxx 
	LIMIT 3			//返回前三条数据;(limit 6,3)	=>跳过六个,返回三个

7.字符串操作:

'%'表示任意个字符,例:
			"刘%"	=>左边界是刘的
			"%刘"	=>右边界是刘的
			"%刘%"	=>带“刘”这个字
'_'代表单字符,例:
			"刘_" 	=>左边界是刘,总共两个字符

8.多段查询:UNION

select *
	from xxx
	where xxxx1
	
	UNION
	
select *
	from xxx
	where xxxx2 

9.外连接:JOIN…ON

select *
	from 左表
	LEFT JOIN 右表		//LEFT JOIN是左连接,左表内容全部返回;同理也有右连接
		 ON xxx=xxx		//共同属性

10.相关子查询:

其实也就是同一张表自关联查询的时候,需要起个别名(用as)来辅助
select *
	from 表一 as 表一别名
	where(
			select xxx
				  from 表一 
				  where	xxxx=表一别名.xxxx
			)

11.基本聚集函数:

max()		min()		avg()//平均
sum()//求和		count()//计数		
**使用聚集函数,且返回多条数据时,使用HAVING代替where,比如使用group by分组之后的返回结果不能用where

12.条件查询:if

select	....if(条件,为真时返回值,为假时返回值)
		from xxx
		where xxxx
//多条件查询是case-when-then-else-end结构

三、视图、存储过程、触发器

1.视图

1.创建:
		create view 命名 as
				......		//正常操作
2.删除:
		drop view 名字
3.更改:
		create or replace view 命名 as
					......		//正常操作
					//这样会覆盖原视图
**视图本质上就是一段查询的结果,是基本表的某些数据的虚拟表,使用视图意味着在这些数据的基础上进行操作

2.存储过程与函数

1.创建:
		create procedure 命名(参数以及数据类型,参数以及数据类型....)
				begin
					......		//正常操作
				end
2.更改分隔符:
		delimiter 分隔符
3.调用:
		call 过程名(参数)
4.删除:
		drop procedure 名字
********************************************************************
函数:
	**函数与存储过程基本类似。
	**函数返回的是一个结果,一条记录。
	**存储过程返回的是一个结果集。
	创建:
		create or replace function 命名(参数以及数据类型)	return 返回类型
		begin
			......		//正常操作
		end

3.触发器

1.创建:
		create trigger 命名
				before/after ......on 基本表名
				for each row		//行级,除此之外还有表级等等
				begin
					.....
				end
2.删除:
		drop trigger 名字

四、基本理论知识

1.关系代数

  1. σ选择操作符

    单纯的选择,例:选择a表中,b属性的值等于c的:

  2. π投影

设a表为:

id1id2id3
xxx1xxx2xxx3


在这里插入图片描述
结果为:

id1id3
xxx1xxx3
  1. ⋈连接
    a⋈b =>选择a与b共有的元组,自然连接会去重

  2. ÷除

设a表:

id1id2
1001
2002
3003
4004

设b表:

id2
001
002

则a÷b,结果为:

id1
1
2

2.绪论

  1. 数据库发展的三个阶段:人工管理阶段、文件系统阶段、数据库系统阶段
  2. 数据模型三要素:数据结构、数据操作、数据约束
  3. 三级结构模式:外模式(用户模式)、模式(公共数据视图)、内模式(存储模式)
  4. 外模式/模式映像:逻辑独立性
  5. 内模式/模式映像:物理独立性
  6. 索引的目的是为了加快查询速度

3.数据库安全与设计概述

  1. 数据库安全技术:强制存取控制、数据加密存储、加密传输
  2. 事务是一组原子性操作,四个特征:原子性、一致性、隔离性、持久性
  3. 范式:
		1NF
		 ↓		//消除非主属性对码的部分函数依赖
		2NF
		 ↓		//消除非主属性对码的传递函数依赖
		3NF
		 ↓		//消除主属性对码的传递和部分函数依赖
		BCNF	
		 ↓		//消除非平凡且非函数依赖的多值依赖
		4NF
  1. E-R图转换关系模式:多对多必须转换为一个关系模式,三元及以上必须转换为一个关系模式
  2. 游标,是开设了一个数据缓冲区,用来协调两种不同的处理方式。
  3. 冲突操作是两个不同事务对同一个数据进行操作的操作,冲突可串行化是可串行化调度的充分条件,但不是必要条件
  4. 封锁对象的大小叫做封锁的粒度,粒度越大,并发越小,开销越小。

4.数据库恢复技术与并发控制概述

  1. 数据库三大故障与恢复:事务故障(反向扫描日志文件,撤销修改)、系统故障(正向扫描日志文件,将故障前提交的重做,其他的撤销)、介质故障(重装)
  2. 并发控制:
		1.事务是并发控制的基本单位
		2.并发控制是为了保证事务的隔离性和一致性
		3.并发控制的三个问题:丢失修改、不可重复读、读脏数据
		4.三级封锁协议:
			一级 解决了丢失修改的问题
			二级 解决了丢失修改和不可重复读的问题
			三级 解决了丢失修改和不可重复读和读脏数据的问题
		5.协议内容:
			一级:a操作时,加写锁(x锁),至事务结束
			二级:a操作时,加写锁(x锁),至事务结束;b也要操作时,加读锁(s锁),至自己操作结束
			三级:a操作时,加写锁(x锁),至事务结束;b也要操作时,加读锁(s锁),至事务结束
		1.活锁:某事务有可能完全等待			
		2.死锁:某事务互相等待,永不结束		//采用超时法和等待图法来预判

总结

考试的水太深,你把握不住啊。

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Magic171

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值