关系数据库标准语言——SQL

上传人:宝路 文档编号:48246184 上传时间:2018-07-12 格式:PPT 页数:59 大小:907.79KB
返回 下载 相关 举报
关系数据库标准语言——SQL_第1页
第1页 / 共59页
关系数据库标准语言——SQL_第2页
第2页 / 共59页
关系数据库标准语言——SQL_第3页
第3页 / 共59页
关系数据库标准语言——SQL_第4页
第4页 / 共59页
关系数据库标准语言——SQL_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《关系数据库标准语言——SQL》由会员分享,可在线阅读,更多相关《关系数据库标准语言——SQL(59页珍藏版)》请在金锄头文库上搜索。

1、数据库系统原理韶关学院计算机科学与技术系2018/7/12第5章 关系数据库标准语言SQL5.1 SQL概述及特点5.2 数据定义语句 5.3 数据查询语句5.4 数据更新语句 5.5 嵌入式SQL 5.6 数据控制机制和语句5.1 SQL概述及特点1. SQL的主要功能 (1) 数据定义功能定义关义关 系数数据库库的模式、外模式和内内模式,以实现实现 对对基本表、视图视图 以及索引文件的定义义、修改和删删除等 操作。 (2) 数据操纵功能包括数数据查询查询 和数数据更新两种数两种数 据操作语语句:数数据 查询查询 指对数对数 据库库中的数数据查询查询 、统计统计 、分组组、排序操 作;数数据

2、更新指数数据的插插入、删删除、修改等数数据维护维护 操作。 (3) 数据控制功能通过对数过对数 据库库用户户的授权权和收权权命令来实现来实现 有关关 数数据的存取控制,以保证数证数 据库库的安全性。2. SQL的特点(1) SQL具有自含式和嵌入式两种形式。(2) SQL具有语言简洁、易学易用的特点。(3) SQL支持三级模式结构。 全体基本表构成了数据库的模式。 视图和部分基本表构成了数据库的外模式。 数据库的存储文件和它们的索引文件构成了关系数据库的内模式。5.2 数据定义语句5.2.1 基本表的定义和维护1. 定义基本表定义基本表语句的一般格式为:CREATE TABLE 库名表名(列名

3、数据类型列级完整性约束条件 ,列名数据类型列级完整性约束条件 ,n,表级完整性约束条件,n );类型表示类型说明数值型 数据SMALLINT半字长二进制整数。15bits数据INTEGER或INT全字长(四字长)整数。31bits数据DECIMAL(p, q)十进制数,共p位,其中小数点后q位。 0qp,q=0时可省略不写 FLOAT双字长浮点数字符型 数据CHARTER(n)或 CHAR(n)长度为n的定长字符串VARCHAR(n)最大长度为n的变长字符串特殊数据类型GRAPHIC(n)长度为n的定长图形字符串VARGRAPHIC(n)最大长度为n的变长图形字符串日期时 间型DATE日期型,

4、格式为YYYY-MM-DDTIME时间型,格式为HH.MM.SSTIMESTAMP日期加时间(1) SQL支持的数据类型(2) 列级完整性的约束条件针对属针对属 性值设值设 置的限制条条件。1) NOT NULL或NULL约束。NOT NULL约束不允许字段值为空,而NULL约束允许字段值为空。2) UNIQUE约束。惟一性约束,即不允许列中出现重复的属性值。3) DEFAULT约束。默认值约束。DEFAULT约约束名默认值认值 FOR列名4) CHECK约束。检查约束。 CONSTRAINT约约束名CHECK (约约束条条件表达达式)(3) 表级完整性约束条件涉及到关系中多个列的限制条件。1

5、) UNIQUE约束。惟一性约束。2) PRIMARY KEY约束。定义主码,保证惟一性和非空性。CONTRAINT约束名PRIMARY KEY CLUSTERED (列组)3) FOREIGN KEY约束。用于定义参照完整性。CONTRAINT约束名FOREIGN KEY(外码)REFERENCES被参照表名(与外码对应的主码名)CREATE TABLE 学生(学号 CHAR(5) NOT NULL UNIQUE,姓名 CHAR(8) NOT NULL,年龄 SMALLINT,性别 CHAR(2),所在系 CHAR(20),DEFAULT C1 20 FOR 年龄,CONSTRAINT C2

6、 CHECK(性别 IN (男,女);CREATE TABLE 课程(课程号 CHAR(5) PRIMARY KEY,课程名 CHAR(20),先行课 CHAR(5);CREATE TABLE 选课(学号 CHAR(5),课程号 CHAR(5),成绩 SMALLINT,CONSTRAINT C3 CHECK(成绩 BETWEEN 0 AND 100),CONSTRAINT C4 PRIMARY KEY(学号,课程号),CONSTRAINT C5 FOREIGN KEY(学号) REFERENCES 学生(学号) ,CONSTRAINT C6 FOREIGN KEY(课程号) REFERENCE

7、S课程(课程号);【例5-1 】建立基本表: 学生(学号,姓名,年龄,性别,所在系); 课 程(课程号,课程名,先行课); 选课(学号,课程号,成绩).2. 修改基本表和删除基本表ALTER TABLE表名ADD(新列名数数据类类型完整性约约束 , n)DROP完整性约约束名MODIFY(列名数数据类类型,n); (1) 使用ADD子句增加新列 【例5-2】向课课程表中增加“学时学时 ”字段。ALTER TABLE 课课程 ADD 学时学时 SMALLINT; (2) 使用MODIFY子句修改列的原定义义 (3) 使用DROP子句删删除指定的完整性约约束条条件 【例5-3】删删除学学生表中对对

8、年龄龄的默认值认值 的定义义。ALTER TABLE 学学生 DROP C1; 删删除基本表的一般格式为为: DROP TABLE表名;5.2.2 5.2.2 索引的定义和维护索引的定义和维护1. 索引的作用 1) 使用索引可以明显地加快数据查询的速度。 2) 使用索引可保证数据的惟一性。 3) 使用索引可以加快连接速度。2. 建立索引的原则 1) 索引的建立和维护由DBA和DBMS完成。 2) 大表应当建索引,小表则不必建索引。 3) 对于一个基本表,不要建立过多的索引。 4) 根据查询要求建索引。3. 建立和删除索引的格式建立格式为为: CREATE UNIQUE CLUSTER INDE

9、X索引名 ON 表名(列名次序,列名次序) ;删删除索引格式为为: DROP INDEX 索引名;【例5-4】为学为学 生_课课程数数据库库中的学学生、课课程和选课选课 三个个表 建立索引。其中,学学生表按学号学号 升序建立索引;课课程表按课课 程号号升序建惟一索引;选课选课 表按学号学号 升序和课课程号号降序建 惟一索引。 CREATE UNIQUE INDEX 学号学号 ON 学学生(学号学号 ); CREATE UNIQUE INDEX 课课程号号 ON 课课程(课课程号号); CREATE UNIQUE INDEX 选课号选课号 ON 选课选课 (学号学号 ASC, 课课程号号 DES

10、C);5.2.3 视图的定义和维护1. 视图的优点 1) 视图能够简化用户的操作。 2) 视图机制可以使用户以不同的方式看待同一数据。 3) 视图对数据库的重构提供了一定程度的逻辑独立性 。 4) 视图可以对机密的数据提供安全保护。2. 视图定义的格式 一般格式为:CREATE VIEW视图名(列名组)AS子查询WITH CHECK OPTION;视图举例【例5-6】建立计计算机系学学生的视图视图 。CREATE VIEW 计计算机系学学生AS SELECT 学号学号 ,姓名,年龄龄FROM 学学生WHERE 所在系=计计算机系;【例5-7】由学学生、课课程和选课选课 三个个表,定义义一个计个

11、计 算机系 的学学生成绩视图绩视图 ,其属属性包括学号学号 、姓名、课课程名和成 绩绩。CREATE VIEW 学学生成绩绩(学号学号 ,姓名,课课程名,成绩绩)AS SELECT 学学生.学号学号 ,学学生.姓名,课课程.课课程名,选课选课 .成绩绩FORM 学学生,课课程,选课选课WHERE 学学生.学号学号 =选课选课 .学号学号 AND 程.课课程名=选课选课 .课课程号号AND 学学生.所在系=计计算机系;3. 视图的删除 、查询和维护视图删除语句的一般格式为:DROP VIEW视图名;视图可以和基本表一样被查询,其使用方法与基本表 相同,但利用视图进行数据增、删、改操作,会受到 一

12、定的限制。5.3 数据查询语句 5.3.1 数数据查询查询 的基本语语法1. SELECT语句的语法SELECT目标标列组组FROM数数据源WHERE元组选择条组选择条 件GROUP BY分列组组HAVING 组选择条组选择条 件 ORDER BY排序列1排序要求1 ,n;语法说明(1) SELECT子句:指明目标标列(字段、表达达式、函数数表达达 式、常量)。基本表中相同的列名表示为为:表名.列 名(2) FROM子句:指明数数据源。表间间用“,”分割。数数据源不在 当当前数数据库库中,使用“数数据库库名.表名”表示。一表 多用,用别别名标识标识 。定义义表别别名:表名别别名(3) WHER

13、E子句:元组选择条组选择条 件。(4) GROUP BY子句:结结果集分组组。当当目标标列中有统计统计 函数数 ,则统计为则统计为 分组统计组统计 ,否则为对则为对 整个结个结 果集统计统计 。子句 后带带上HAVING子句表达组选择条达组选择条 件(带带函数数的表达达式 )。(5) ORDER BY子句:排序。当当排序要求为为ASC时时升序排序 ;排序要求为为DESC时时降序排列。2. SELECT语句的操作符(1) 算术操作符+(加号)、(减号)、*(乘号)和 /(除号)。(2) 比较操作符=(等于)、(大于)、=(大于等于)、!=(不等于)、(不大于)和 !、=、90;例子(2) 自身连

14、连接 例如,课课程表中的先行课课是在上学学期应开设应开设 的,先行课课的先行 课课,即间间接先行课应课应 提前一学学年开设开设 。如果求查询查询 某门课门课 的 间间接先行课课或全部课课程的间间接先行课课,就需要对课对课 程表进进行 自身连连接。 课程号课程名先行课C1计算机引论C2PASCAL语言C1C3数据结构C2C4数据库C3C5软件工程C4课程的先行关系链为:C5C4C3C2C1, 课程的间接关系链为:C5C3C1。 课程号课程名先行课 课程号课程名先行课C1计算机引论 C1计算机引 论C2Pascal语言C1C2Pascal语言C1C3数据结构C2C3数据结构C2C4数据库C3C4数

15、据库C3C5软件工程C4C5软件工程C4A.课程号A.课程名B.先行课C2Pascal语言 C3数据结构C1C4数据库C2C5软件工程C3AB结果【例5-18】查询每一门课的间接先行课。SELECT A.课程号,A.课程名,B.先行课FROM 课程 A,课程 BWHERE A.先行课=B.课程号 (3) 外部连接左外部连接操作是在结果集中保留连接表达式左表中的非匹配记录;右外部连接操作是在结果集中保留连接表达式右表中的非匹配记录。外部连接符号为“*=”,右外部连接符号为“=*”。外部连接中不匹配的分量用NULL表示。职工 号姓名性别年龄所在部 门部门 号部门名 称电话1010李勇男201111生产科5661011刘晨女19 12计划科5781012王敏女221213一车间4671014张立男211314科研所 职工表 部门表 连接的结果集 职工号姓名性别年龄所在部门部门名称电话1010李勇男2011生产科5661012王敏女2212计划科5781014张立男2113一车间467职工号姓名性别年龄所在部门部门名称电话1010李勇男2011生产科5661011刘晨女19 1012王敏女2212计划科5781014张立男2113一车间467内连接的结果集 左外部连接的结果集 内连接:SELECT 职工

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号