Download presentation
Presentation is loading. Please wait.
1
第6章 数据库系统及其应用
2
相关课程 数据库原理及应用 ASP编程技术 数据挖掘 VC++程序设计 Java语言程序设计
3
数据库系统的定义 数据库系统:是在数据库系统中实现对数据进行管理的软件系统,它是数据库系统的重要组成部分和核心,由数据库、数据库管理系统、数据库管理员、数据库应用程序以及用户五部分组成。 数据库(Data Base,DB):是统一管理的相关数据的集合。 数据库管理系统(Data Base Management System, DBMS):是对数据库进行管理的软件,它是数据库系统的核心。
4
数据库系统的定义(续) 数据库管理员(Data Base Administrator,DBA):是对数据库进行规划、设计、协调、维护和管理的IT技术人员。 数据库应用程序:是使用数据库语言开发的、能够满足数据处理需求的应用程序。 用户:用户可以通过数据库管理系统直接操纵数据库,或者通过数据库应用程序来操纵数据库
5
数据库系统的组成 数 据 库 数据库管理系统 应用 程序 用户 数据库管理员
6
数据库管理系统的功能 数据库定义功能 数据库操纵功能 数据库事务管理功能 数据库维护功能 格式转换以及网络通信等其他功能
7
数据库管理系统的类型 层次型数据库:采用层次数据模型,即使用树型结构来表示数据库中的记录及其联系。
网状型数据库:采用网状数据模型,即使用有向图(网络)来表示数据库中的记录及其联系。 关系型数据库:关系型数据库采用关系数据模型,即使用二维表格的形式来表示数据库中的数据及其联系。由于关系模型比较简单、易于理解且有完备的关系代数作为其理论基础,所以被广泛使用。 面向对象数据库:采用面向对象数据模型,是面向对象技术与数据库技术相结合的产物。在面向对象数据库中使用了对象、类、实体、方法和继承等概念,具有类的可扩展性、数据抽象能力、抽象数据类型与方法的封装性、存储主动对象以及自动进行类型检查等特点。
8
数据库语言 结构化查询语言(Structured Query Language, SQL):是一种基于关系代数和关系演算的的数据操纵语言,目前一般都采用SQL作为共同的数据操纵语言和标准接口,是数据库领域的一种主流语言。
9
SQL的数据定义操作-定义基本表 基本表定义语句的一般形式: CREATE TABLE <基本表名>
(<属性名1> <数据类型1>[NOT NULL], [<属性名2> <数据类型2>[NOT NULL]] , ... [<完整性约束>])
10
SQL提供的基本数据类型 数 据 类 型 说 明 CHAN(n) 长度为n的定长字符串 VARCHAR(n) 最大长度为n的变长字符串
说 明 CHAN(n) 长度为n的定长字符串 VARCHAR(n) 最大长度为n的变长字符串 全字长整数 SMALLINT 半字长整数 NUMERIC(p,d) 由p位数字(不包括符号和小数点)组成的定点数,小数点后面有d位数字 REAL 浮点数 DOUBLE RECISION 双精度浮点数 FLOAT(n) 精度至少为n位数字的浮点数 DATE 日期,形如YYYY-MM-DD(年-月-日) TIME 时间,形如HH:MM:SS(时:分:秒)
11
定义基本表举例 〖例6-1〗使用SQL语句建立学生表S、课程表C和学生选课成绩表SC。 解:(1)创建基本表S:
CREATE TABLE S (学号 CHAR(4)NOT NULL,姓名 CHAR(8)NOT NULL, 年龄 SMALLINT,性别 CHAR(2),系别 CHAR(20), PRIMARY KEY (学号))
12
定义基本表举例(续) 〖例6-1〗使用SQL语句建立学生表S、课程表C和学生选课成绩表SC。 解:(2)创建基本表C:
CREATE TABLE C (课程号 CHAR(4)NOT NULL,课程名 CHAR(4)NOT NULL, 教师名 CHAR(8), PRIMARY KEY (课程号) )
13
定义基本表举例(续) 〖例6-1〗使用SQL语句建立学生表S、课程表C和学生选课成绩表SC 解:(3)创建基本表CS:
CREATE TABLE SC (学号 CHAR(4)NOT NULL, 课程号 CHAR(4)NOT NULL, 成绩 CHAR(8)SMALLINT, PRIMARY KEY (学号,课程号) FOREIGN KEY (学号)REFERENCES S(学号), FOREIGN KEY (课程号)REFERENCES C(课程号), CHECK (成绩 IS NULL )OR(成绩 BETWEEN 0 AND 100))
14
修改基本表 在基本表中增加列: ALTER TABLE <基本表名> ADD <属性名> <数据类型>
〖例6-2〗在例6-1的学生基本表S中增加一个属性“家庭地址”: ALTER TABLE S ADD 家庭地址 VARCHAR(40) 在基本表中删除列: ALTER TABLE <基本表名> DROP <属性名> <删除方式> 这里, <删除方式>可以取CASCADE和 RESTRICT两种方式。 〖例6-3〗在学生基本表S中删除一个属性“系别”: ALTER TABLE S DROP 系别 CASCADE 或 ALTER TABLE S DROP 系别 RESTRICT
15
撤销基本表 撤销基本表语句: DROP TABLE <基本表名> <撤销方式>
<撤销方式>可以取CASCADE和 RESTRICT两种方式。 〖例6-4〗若要撤销学生基本表S,可用下列语句实现: DROP TABLE S CASCADE 或 DROP TABLE S RESTRICT
16
定义索引 定义索引语句: CREATE [UNIQUE] INDEX <索引名> ON <基本表名>
(<属性名1>[<次序>][ ,<属性名2>[<次序>]] ...) [PCTFREE={<整数>}] 〖例6-5〗在学生基本表S的列“学号”上按升序建立索引: CREATE UNIQUE INDEX SNOINDEX ON S 学号 ASC) 在基本表CS的列“成绩”、“学号”上按降序建立索引: CREATE INDEX GRADEINDEX ON S(成绩 DESC 学号 DESC)
17
撤销索引 撤销索引语句: DROP INDEX <索引名> 注意:如果撤销某一个基本表,则该基本表上建立的所有索引将被一起撤销。
〖 〖例6-6〗若要撤销学生基本表S上的索引SNOINDEX,则可用下列语句实现: DROP INDEX SNOINDEX
18
SQL的数据查询操作 数据查询语句是SQL的核心,是SQL数据操纵功能的重要组成部分。
简单查询 连接查询 嵌套查询
19
SQL的数据查询语句 数据查询语句的一般形式:
SELECT <目标属性> FROM <基本表名或视图名>[WHERE <条件表达式>] [GROUP BY <属性名1>[ HAVING <条件表达式>]] [ORDER BY <属性名2>[<次序>]] 数据查询语句的组成: SELECT子句 FROM子句 WHERE子句 GROUP BY子句 ORDER BY子句
20
SQL数据查询语句的含义 根据WHERE子句中的<条件表达式>从由<基本表名或视图名>指定的基本表或视图中找出满足条件的元组,按SELECT子句中的<目标属性>选出元组中的分量,形成查询结果。 如果有ORDER子句,则将结果根据指定的<属性名2>按<次序>所指定的顺序排列(选ASC为升序,选DESC为降序)。 如果有 GROUP子句,则将查询结果按<属性名1>进行分组,每组产生结果表中的一个元组,分组的附加条件用 HAVING 短语中的 <条件表达式> 给出。
21
SQL数据查询语句中的语法成分 SELECT子句中的<目标属性>可以是“*”或<选择列表>。
“*”表示查询结果是整个元组; <选择列表>是用逗号分隔的项(属性名、常数或系统内部函数),当指定了<选择列表>时,查询结果将是由<选择列表>所指定的列。 WHERE子句中的<条件表达式>实现各种复杂查询,其中可以使用下列运算符: 算术运算符:+、-、*、/ 比较运算符:<、<=、=、>=、>、≠ 逻辑运算符:AND、OR、NOT 集合运算符:UNION(并)、INTERSECT(交)、EXCEPT(差) 集合成员运算符:IN(属于)、NOT IN(不属于) 谓词:EXISTS(存在量词)、ALL、SOME、UNIQUE 系统内部函数:常用的系统内部函数如表6-2所示。
22
SQL数据查询语句中常用的系统内部函数
23
SQL数据查询语句中常用的系统内部函数 函数名称 一般形式 含 义 平均值 AVG([DISTINCT] <属性名>)
求和 SUM([DISTINCT] <属性名>) 求列的和,有DISTINCT 选项时只计算不同值 最大值 MAX(<属性名>) 求列的最大值 最小值 MIN(<属性名>) 求列的最小值 计数 COUNT(*) COUNT(DISTINCT)<属性名>) 统计结果表中元组的个数 统计结果表中不同属性名值元组的个数
24
简单查询举例 简单查询:在单个基本表上的查询,不涉及多个基本表的连接查询和嵌套查询等复杂的情况。
〖例6-7〗在基本表S中查询全体学生的详细信息: SELECT * FROM S 该查询语句等价于: SELECT 学号,姓名,年龄 ,性别,系别 FROM S
25
简单查询举例 〖例6-8〗在基本表S中查询计算机科学与工程系和电气工程系学生的学号、姓名和年龄:
SELECT 学号,姓名,年龄 FROM S WHERE 系别=‘计算机科学与工程系’OR 系名=‘电气工程系’ 该查询语句等价于: WHERE 系别 IN (‘计算机科学与工程系’,‘电气工程系’)
26
简单查询举例 〖例6-9〗在基本表S中查询年龄在18~20岁学生的姓名和性别: SELECT 姓名,性别 FROM S
WHERE 年龄 >= 18 AND 年龄 <= 20 该查询语句等价于: WHERE 年龄 BETWEEN 18 AND 20
27
简单查询举例 〖例6-10〗在基本表S中查询所有男学生的学号、姓名和出生年份: SELECT 学号,姓名,2004-年龄 FROM S
WHERE 性别 =‘男’ 〖例6-11〗在基本表S中查询计算机科学与工程系女学生的总数和平均年龄,可用以下查询语句实现: SELECT COUNT(*),AVG(年龄)FROM S WHERE 系别=‘计算机科学与工程系’AND 性别=‘女’
28
简单查询举例 〖例6-12〗在基本表SC中查询有课程号为C001的课程成绩学生的学号、和成绩,查询结果按成绩降序排列:
SELECT 学号,成绩 FROM SC WHERE 课程号=‘C001’ ORDER BY DESC
29
本章小结 本章在阐述数据库系统的定义、发展、分类、体系结构等基本概念的基础上,
较详细地介绍了结构化查询语言SQL的数据定义操作、数据查询操作、数据更新操作和视图操作的基本方法,并介绍了一些新型的数据库系统。此外,还介绍了数据库在信息系统中的应用。 通过本章的学习,应理解数据库系统的基本概念和基本知识,掌握SQL的数据定义、数据查询、数据更新和视图等操作方法,了解分布式数据库、多媒体数据库、并行数据库、演绎数据库系统、主动数据库和数据仓库的功能、特点和主要实现技术,了解数据库技术的应用领域,为后继课程的学习和实际应用打下基础。
Similar presentations