数据库概论知识点总结必知的知识点
第⼀部分——基础知识
1. 数据库:长期储存在计算机中、有组织的、可共享的⼤量数据的集合。
2. 数据库系统特点:
(1)数据结构化
(2)数据的共享性⾼,冗余度低,易扩充
(3)数据独⽴性⾼
(4)数据由DBMS统⼀管理和控制。
3. 数据库管理系统的主要功能:
(1)数据定义功能;
(2)数据组织、存储和管理;
(3)数据操纵功能;
(4)数据库的事物管理和运⾏管理;
(5)数据库的建⽴和维护功能;
(6)其他功能。
4. 数据库系统:数据库、数据库管理系统、数据库管理员、应⽤程序组成。
5. 数据模型:
(1)概念模型:了解实体之间的联系:⼀对多、多对⼀、多对多
掌握E-R图的画法:
确定实体;
画出属性;
到实体之间的联系。
*例题:
设有商品和顾客两个实体,商品实体包括商品编号、名称、单价等属性,顾客实体包括顾客编号、姓名、等属性,两个实体存在如下的关系:
⼀个顾客可购买多种任意商品
每次可购买⼀定数量的商品(⼀天只限⼀次购物)
将E-R图转成关系模式:
*注意:* _1对1不需要再建⼀个表,只需通过外键就可以连接,多对多需要导⼊⼀个基本表_
(2)数据模型(逻辑模型和数据模型):
三个组成要素:数据结构、数据操作、数据的完整性约束条件。
数据模型:层次模型、⽹状模型、关系模型、⾯向对象模型。
6. 三级模式:内模式(只有⼀个)、模式、外模式。
7. 知道关系的基本概念,掌握关系代数的⽅法
例题:
现有图书借阅关系数据库模式如下:
图书(图书号,书名,作者,单价,库存量)
读者(读者号,姓名,⼯作单位,地址)
借阅(图书号,读者号,借期,还期,备注)
其中,还期为 NULL 表⽰该书未还。
⽤关系代数表⽰如下查询:
(1) 查询读者号为“R016”的读者姓名、⼯作单位
(2) 查询图书号为“B5”的读者姓名
(3) 查询读者“李林”所借阅图书的书名
(4) 查询读者“李林”所借阅图书中未还的书名
*图书借阅关系查询
9. 关系完整性约束:
实体完整性:(主键约束) primary key 主键不能为空,且唯⼀。
参照完整性:(外键约束) foreign key 可以为空或是参照表的主键值⽤户定义完整性:check语句 ;not null;unique。
数据库安全性:保护数据库防⽌不合法使⽤所造成的数据泄露、更改、破坏。
⽅法:1.⽤户标识和鉴别;
2.存取控制
*⾃主存取控制:
授权:
GRANT <;权限>[,<;权限>]……
ON <;对象类型><;对象名>[,<;对象类型><;对象名>]……
TO <⽤户>[,<⽤户>]……
[WITH GRANT OPTION]
授予王明权限
GRANT SELECT ON Student TO 王明
收回权限
REVOKE <;权限>[,<;权限>]……
ON <;对象类型><;对象名>[,<;对象类型><;对象名>]……
FROM <⽤户>[,<⽤户>]……[CASCADE|RESTRICT]
*强制存取控制
3.视图
4.审计
5.数据加密
数据库安全性:数据的正确性和相容性
规范化:
掌握通过函数依赖确定码。
数据库设计步骤:
1.需求分析
2.概念结构设计
3.逻辑结构设计
4.物理结构设计
5.数据库实施
6.数据库运⾏和维护
数据字典:数据流、数据结构、数据项、数据存储、处理过程。
第⼆部分— SQL语⾔(结构化查询语⾔)
⼀、SQL语⾔特点:
综合统⼀
⾼度⾮过程化
⾯向集合的操作⽅式
以同⼀种语法结构提供多种使⽤⽅式
语⾔简洁,易学易⽤
对于数据统计⽅便直观
⼆、数据定义:
模式:
1.创建模式
CREATE SCHEMA<;模式名>AUTHORIZATION<⽤户名>
2.删除模式:
DROP SCHEMA<;模式名><CASCADE|RESTRICT>
CASCADE(级联):删除模式同时把模式中所有的数据库对象全部删除
RESTRICT(限制):如果已经定义了数据库对象(表,视图等)。则拒绝删除语句,当没有下属对象时,才能执⾏此语句
表:
1.创建表:
CREATE TABLE <;表名>(<;列名><;数据类型>[完整性约束条件],
...............................................
<;列名><;数据类型>[完整性约束条件]
);
2.修改表:
ALTER TABLE<;表名>
[ADD [COLUME]<;新列名><;数据类型>[完整性约束]]
[ADD <;表级完整性约束>]
[DROP [COLUMN]<;列名>[CASCADE|RESTRICT]]
[DROP CONSTRAINT<;完整性约束名>[RESTRICT|CASCADE]]
[ALTER COLUMN <;列名><;数据类型>];
3.删除表:
DROP TABLE<;表名>[RESTRICT|CASCADE]
索引:
1.建⽴索引:
CREATE [UNIQUE][CLUSTER] INDEX <;索引名>
ON <;表名>(<;列名>[<;次序>],......);
2.修改索引:
ALTER INDEX<;旧索引名> RENAME TO <;新索引名>
3.删除索引:
DROP INDEX <;索引名>;
视图:
1.视图定义
CREATE VIEW 视图名
AS ⼦查询
WITH CHECK OPTION //可以省略
2.视图查询、更新
对于查询更新要转到对基本表上的操作。所以和基本表的查询语句类似,只是把表名的位置换成视图名就可以3.视图删除
DROP VIEW 视图名【CASCADE】//CASCADE为级联删除,可以省略
三、数据查询
⼀般格式如下:
SELECT [ALL|DISTINCT]<⽬标列表达式>[,<⽬标列表达式>]……
FORM <;表名或视图名>[,<;表名或视图名>……]|(<SELECT 语句>)<;别名>
[WHERE <;条件表达式>]
[GROUP BY <;列名1>[HAVING <;条件表达式>]]
[ORDER BY <;列名2>[ASC|DESC]
1.查询全部列
select * from  表名;
2.取消取值重复的⾏
select distinct 列名 from 表名//去掉表中重复的⾏必须制定短语distinct,如果没有指定,缺省值为all
条件查询必知:
1.WHERE ⼦句常⽤的查询条件:
查询条件谓词
⽐较=,>,<,>=,<=,!=,<>,!>,!<,not+⽐较运算符
数据库属性的概念
确定范围BETWEEN AND,NOT BETWEEN AND
确定集合IN,NOT IN
字符匹配LIKE,NOT LIKE
空值IS NULL,IS NOT NULL
多重条件AND,OR,NOT
WHERE⼦句后不能跟聚合函数,若需要使⽤聚合函数作为条件出现可以通过使⽤GROUP BY 语句后的having语句进⾏使⽤2.聚集函数:
聚集函数作⽤
COUNT (*)统计元组的个数
COUNT([DISTINCT/ALL]<;列名>)统计⼀列中值得个数
SUM([DISTINCT/ALL]<;列名>)计算⼀列中值的总和
MAX([DISTINCT/ALL]<;列名>)求⼀列中值最⼤值
MIN([DISTINCT/ALL]<;列名>)求⼀列值中最⼩值
AVG([DISTINCT/ALL]<;列名>)计算⼀列中值的平均值
当聚合函数遇到空值时,除count(*)以外都跳过空值只处理⾮空值
3. ORDER BY 语句必须位于查询语句的最后
连接查询
1.等值连接(有重复列):
使⽤where⼦句进⾏多个表的连接。
2.⾃然连接没有重复列
3.⾃⾝连接:通过给表起别名实现。
4.外连接:
SELECT 查询属性
FORM 表名1
LEFT |RIGHT OUTER  JION 表名2 ON 条件;
嵌套查询—⼦查询
1.带有IN谓词的⼦查询
查询与“刘晨”在同⼀个系学习的学⽣
SELECT Sdept,Sno,Sname
FORM Student
WHERE Sdept IN (
SELECT Sdept FROM Student WHERE Sname='刘晨')

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。