数据库原理期末考试速成--最后附带两套题
引言
为什么从3开始呢,毕竟是速成吗,总要放弃一些东西
前两章1.概论 2.关系数据库:这里面都是一些运算符什么的,我感觉都学这个:笛卡尔积之列的都会算
这两章比较重要的我就放在这里了
选择、投影、连接、除、并、交、差,其中选择、投影、并、差、笛卡尔积是5种基本关系操作
数据库独立性
物理独立性:应用程序与磁盘上的数据库相互独立
逻辑独立性:应用程序与数据库的逻辑结构是相互独立的
数据独立性:这个是由数据库二级映像实现的
数据库主要由二级映像和三级模式
三级模式:内模式,外模式,模式,对应关系如下
二级映像:外模式/模式映像:保证逻辑独立性,内模式/模式映像:保证物理独立性
ER图:
实体,用矩形框表示
属性,用椭圆表示
联系,使用菱形表示
不说了:上图
3.数据库语言SQL
SQL基本概念
数据库SQL分为嵌入式(嵌入到其他语言中)和交互式
数据库中的动词
基本表:本身独立存在的表
存储文件:逻辑结构组成了关系数据库的内模式,物理结构是任意的,对用户透明
视图:从一个或者几个基本表中导出的表,数据库中只存放视图的定义而不存放对应的数据
SQL的数据定义功能
数据库定义语言中的删除使用drop
模式
定义模式
为用户WANG定义一个模式名称为S-T
CREATE SCHEMA “S-T” AUTHORIZATION WANG;
create schema "S-T" authorization wang;
如果没有指定用户名称,那么名称默认为用户名
模式实际上相当于一个命名空间,mysql是不支持模式的
删除模式
DROP SCHEMA <模式名> <CASCADE|RESTRICT>
drop schema <模式名> <cascdde|restrict>
cascade 级联(数据库中删除可用选项,使用这个,模式下属对象也会删除)
restrict 限制 (数据库中加上这个,如果删除的模式存在下属对象,就不会删除)
基本表
基本表的定义
CREATE TABLE <表名>
(<列名> <数据类型>[ <列级完整性约束条件> ]
[,<列名> <数据类型>[ <列级完整性约束条件>] ] …
[,<表级完整性约束条件> ] );
完整性约束包括:primary key:主键约束。unique:唯一键约束
foreign key(属性) reference 表名(属性名) :表示该表的对应属性列参照表2的对应属性
数据库中数据类型(不需要记忆)
修改基本表
ALTER TABLE <表名>
[ ADD[COLUMN] <新列名> <数据类型> [ 完整性约束 ] ]
[ ADD <表级完整性约束>]
[ DROP [ COLUMN ] <列名> [CASCADE| RESTRICT] ]
[ DROP CONSTRAINT<完整性约束名>[ RESTRICT | CASCADE ] ]
[ALTER COLUMN <列名><数据类型> ]
不论基本表中原来是否已有数据,新增加的列一律为空值
删除基本表
DROP TABLE <表名>[RESTRICT|CASCADE];
索引
建立索引目的:加快查询速度
一般采用B+树、HASH索引来实现
B+树具有动态平衡的特点,且可以实现顺序查找,各个结点查找速率一致,HASH索引查找速度快
索引是关系数据库内部实现技术,属于内模式范畴
CREATE [UNIQUE] [CLUSTER] INDEX <索引名>
ON <表名>(<列名>[<次序>][,<列名>[<次序>] ]…);
修改索引名称
ALTER INDEX <旧索引名> RENAME TO <新索引名>
删除索引
DROP INDEX <索引名>;
数据查询
SELECT [ALL|DISTINCT] <目标列表达式>[,<目标列表达式>] …FROM <表名或视图名>[,<表名或视图名>] …[WHERE <条件表达式>][GROUP BY <列名1> [HAVING <条件表达式>]][ORDER BY <列名2> [ASC|DESC]];
聚集函数
count sum avg max min 一个五个
集合查询:
并操作:union
交操作:intersect
差操作:except
数据更新
数据插入:分为元组插入和子查询插入
INSERT INTO <表名> [(<属性列1>[,<属性列2 >…)]VALUES (<常量1> [,<常量2>] … )INSERT INTO <表名> [(<属性列1> [,<属性列2>… )]子查询;
数据更新
UPDATE <表名>SET <列名>=<表达式>[,<列名>=<表达式>]…[WHERE <条件>];
删除数据
DELETEFROM <表名>[WHERE <条件>];
视图
建立视图
CREATE VIEW <视图名> [(<列名> [,<列名>]…)]AS <子查询>[WITH CHECK OPTION];
删除 drop
4.数据库安全性
1. 用户标识与鉴别:使用口令
2. 存取控制:对权限进行限制
3. 自主存取控制,定义用户存取权限
GRANT语句的一般格式:授权指令
GRANT <权限>[,<权限>]...
[ON <对象类型> <对象名>]
TO <用户>[,<用户>]...
[WITH GRANT OPTION];ALL PRIVILIGES 代表全部权限
public 代表所有用户