第1章 绪论
1、数据库的4个基本概念
(1)数据:
描述事物的符号记录称为数据。
(2)数据库:
数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。
数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
数据库数据具有永久存储、有组织和可共享三个基本特点。
(3)数据库管理系统:
数据库管理系统和操作系统一样是计算机的基础软件,也是一个大型复杂的软件系统。
(4)数据库系统:
数据库系统是由数据库、数据库管理系统、应用程序和数据库管理员组成的存储、管理、处理和维护数据的系统。
2、数据库系统的特点:
(1)数据结构化
(2)数据的共享性高、冗余度低且易扩充
(3)数据独立性高
(4)数据由数据库管理系统统一管理和控制
3、数据模型的三要素:
数据结构、数据操作、数据的完整性约束
4、信息世界中的6个基本模型:
(1)实体:
客观存在并可相互区别的事物称为实体。
(2)属性:
实体所具有的某一特性称为属性。
(3)码:
唯一标识实体的属性集称为码。
(4)实体型:
用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。
(5)实体集:
同一类型实体的集合称为实体集。
(6)联系:
实体之间的联系通常是指不同实体集之间的联系。
5、数据库系统的三级模式结构:
数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成。
(1)模式:
模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
(2)外模式:
外模式也称子模式或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
(3)内模式:
内模式也称为存储模式,一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。
6、数据库系统中的数据的特性:
物理独立性、逻辑独立性
第2章 关系数据结构及形式化定义
1、关系的三种类型:
基本关系、查询表、视图表
2、基本关系的6条性质:
(1)列是同质的
(2)不同的列可出自同一个域
(3)列的顺序无所谓,即列的次序可以任意交换
(4)任意两个元组的候选码不能取相同的值
(5)行的顺序无所谓,即行的次序可以任意交换
(6)分量必须取原子值,即每一个分量都必须是不可分的数据项
3、关系模型的三类完整性约束:
实体完整性、参照完整性、用户定义的完整性
4、关系代数运算符:
5、传统的集合运算:
(1)并
(2)差
(3)交
(4)笛卡尔积(trts上面有个连接符)
5、专门的关系运算:
(1)选择
(2)投影
(3)连接
(4)除
第3章 SQL概述
1、SQL的特点
(1)综合统一
(2)高度非过程化
(3)面向集合的操作方式
(4)以同一种语法结构提供多种使用方式
(5)语言简洁,易学易用
2、基本表
(1)定义:
例:建立一个“学生”表Student
CREATE TABLE Student
(Sno CHAR(9) PRIMARY KEY,
Sname CHAR(20) UNIQUE,
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20)
);
(2)修改:
例:向Student表增加“入学时间”列,其数据类型为日期型
ALTER TABLE Student ADD S_entrance DATE;
(3)删除:
例:删除Student表
DROP TABLE Student CASCADE;
3、索引
(1)建立
例:为学生-课程数据库中的Student、Course和SC三个表建立索引。其中Student表按学号升序建唯一索引,Course表按课程号升序建唯一索引,SC表按学号升序和课程号降序建唯一索引。
CREATE UNIQUE INDEX Stusno ON Student(Sno);
CREATE UNIQUE INDEX Coucno ON Course(Cno);
CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC);
(2)修改
例:将SC表的SCno索引名改为SCSno
ALTER INDEX SCno RENAME TO SCSno;
(3)删除
例:删除Student表的Stusname索引
DROP INDEX Stusname;
4、视图
(1)建立
例:建立信息系学生的视图
CREATE VIEW IS_Student
AS
SELECT Sno,Sname,Sage
FROM Student
WHERE Sdept='IS';
(2)删除
例:删除视图BT_S
DROP VIEW BT_S (CASCADE);
(3)更新
例:将信息系学生视图IS_Student中学号为“201215122”的学生姓名改为“刘辰”
UPDATE IS_Student
SET Sname='刘辰'
WHERE Sno='201215122';
5、数据查询
一般格式
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
例:查询平均成绩大于等于90分的学生学号和平均成绩
SELECT Ano,AVG(Grade)
FROM SC
GROUP BY Sno
HAVING AVG(Grade)>=90;
6、聚集函数
CONUT(*) 统计元组个数
COUNT 统计一列中值的个数
SUM 计算一列值的总和
AVG 计算一列值的平均值
MAX 求一列值中的最大值
MIN 求一列值中的最小值
7、字符串匹配
7、嵌套查询
例:查询与‘小草’在同一个系学习的学生
SELECT Sno,Sname,Sdept
FROM Student
WHERE Sdept IN
(SELECT Sdept
FROM Student
WHERE Sname='小草');
8、带有EXISTS谓词的子查询
带有EXISTS谓词的子查询不返回任何数据,只产生逻辑真值“true”或逻辑假值“false”。
若内层查询结果非空,则外层的WHERE子句返回真值,否则返回假值。
9、插入数据
例:对每一个系,求学生的平均成绩,并把结果存入数据库
CREATE TABLE Dept_age
(Sdept CHAR(15)
Avg_age SMALLINT);
INSERT
INTO Dept_age(Sdept,Avg_age)
SELECT Sdept,AVG(Sage)
FROM Student
GROUP BY Sdept;
10、修改数据
例:将学生201215121的年龄改为22岁
UPDATE Student
SET Sage=22
WHERE Sno='201215121';
例:将计算机科学系全体学生的成绩置零
UPDATE SC
SET Grade=0
WHERE Sno IN
(SELECT Sno
FROM Student
WHERE Sdept='CS');
11、删除数据
例:删除学生201215121的学生记录
DELETE
FROM Student
WHERE Sno='201215121';
12、空值的概念
所谓空值就是“不知道”或“不存在”或“无意义”的值。
空值是一个很特殊的值,含有不确定性。
13、视图的作用
(1)视图能够简化用户的操作
(2)视图使用户能以多种角度看待同一数据
(3)视图对重构数据库提供了一定程度的逻辑独立性
(4)视图能够对机密数据提供安全保护
(5)适当利用视图可以更清晰地表达查询