数据库系统概论课件(三)

上传人:tian****1990 文档编号:74441743 上传时间:2019-01-28 格式:PPT 页数:120 大小:736.31KB
返回 下载 相关 举报
数据库系统概论课件(三)_第1页
第1页 / 共120页
数据库系统概论课件(三)_第2页
第2页 / 共120页
数据库系统概论课件(三)_第3页
第3页 / 共120页
数据库系统概论课件(三)_第4页
第4页 / 共120页
数据库系统概论课件(三)_第5页
第5页 / 共120页
点击查看更多>>
资源描述

《数据库系统概论课件(三)》由会员分享,可在线阅读,更多相关《数据库系统概论课件(三)(120页珍藏版)》请在金锄头文库上搜索。

1、2019年1月28日,第三章 关系数据库标准语言SQL,1,第三章 关系数据库标准语言SQL,3.1 SQL概述 3.2 学生-课程数据库 3.3 数据查询 3.4 数据定义 3.5 数据更新 3.6 视图 ,2019年1月28日,第三章 关系数据库标准语言SQL,2,3.1 SQL概述,SQL(Structured Query Language) 是结构化查询语言。它是用于对存放在计算机数据库中的数据进行组织、管理和检索的工具,是一种用于和关系数据库进行交互通讯的计算机语言。 SQL 语言是一个唯一通过了国际标准的关系数据库语言,该语言得到各大数据库厂商的支持,在各种DBMS产品中都能使用。

2、,2019年1月28日,第三章 关系数据库标准语言SQL,3,SQL语言的发展及标准化,1974年由Boyce和Chamberlin提出。 1986年 美国国家标准局ANSI 公布了SQL语言标准SQL86,随后ISO通过了该标准。 1989年 ISO公布了SQL89,加进了完整性等内容。 1992年 ISO公布了SQL92,即 SQL2,分初级、中级、完全三级,加进 BIT 数据类型,支持对远程数据库的访问。 1999年 ISO发布了标准化文件ISO/IEC9075:数据库语言SQL(1999),即SQL3,增加了面向对象功能,支持用户自定义函数。 2003年 ISO发布了SQL2003。,

3、2019年1月28日,第三章 关系数据库标准语言SQL,4,SQL的主要特点,集DDL、DML、DCL为一体(一体化) 高度非过程化 面向集合的操作方式 两种使用方式(自含式和嵌入式),统一的语法结构 语言简捷,功能丰富,易学易用,2019年1月28日,第三章 关系数据库标准语言SQL,5,SQL的功能,数据定义 CREATE、ALTER、DROP 数据查询 SELECT 数据更新 INSERT(插入)、UPDATE(更新)、DELETE (删除) 数据控制 COMMIT、ROLLBACK GRANT、REVOKE、DENY,2019年1月28日,第三章 关系数据库标准语言SQL,6,SQL的

4、基本概念,SQL支持关系数据库三级模式结构,2019年1月28日,第三章 关系数据库标准语言SQL,7,SQL的基本概念(续),基本表 本身独立存在的表 SQL中一个关系就对应一个基本表 一个(或多个)基本表对应一个存储文件 一个表可以带若干索引 存储文件 逻辑结构组成了关系数据库的内模式 物理结构是任意的,对用户透明 视图 从一个或几个基本表导出的表 数据库中只存放视图的定义而不存放视图对应的数据 视图是一个虚表 用户可以在视图上再定义视图,2019年1月28日,第三章 关系数据库标准语言SQL,8,3.2 学生-课程数据库,学生-课程模式 S-T : 学生表: Student ( Sno,

5、Sname,Ssex,Sage,Sdept ) 课程表: Course ( Cno,Cname,Cpno,Ccredit ) 学生选课表: SC ( Sno,Cno,Grade ),2019年1月28日,第三章 关系数据库标准语言SQL,9,Student表,2019年1月28日,第三章 关系数据库标准语言SQL,10,Course表,2019年1月28日,第三章 关系数据库标准语言SQL,11,SC表,2019年1月28日,第三章 关系数据库标准语言SQL,12,3.4 SQL的数据查询,【语句格式】 SELECT ALL | DISTINCT select_list INTO new_ta

6、ble_name FROM table_source WHERE search_condition GROUP BY group_by_expression HAVING search_condition ORDER BY order_expression ASC | DESC COMPUTE clause,2019年1月28日,第三章 关系数据库标准语言SQL,13,2019年1月28日,第三章 关系数据库标准语言SQL,14,3.3.1 简单查询,目标列查询 条件查询 排序查询,2019年1月28日,第三章 关系数据库标准语言SQL,15,简单查询1:目标列查询,语法 SELECT ALL

7、 | DISTINCT select_list FROM table_source 目标列select_list的形式 属性名(列名) * 属性和常数组成的算术表达式,字符串常数 别名 DISTINCT 属性名,2019年1月28日,第三章 关系数据库标准语言SQL,16,查询指定列,例1 查询全体学生的学号与姓名。 SELECT Sno, Sname FROM Student; 例2 查询全体学生的姓名、学号、所在系。 SELECT Sname, Sno, Sdept FROM Student;,2019年1月28日,第三章 关系数据库标准语言SQL,17,查询全部列,方法1:在SELECT

8、关键字后面列出所有列名 方法2:将指定为 * 例3 查询全体学生的详细记录。,SELECT Sno,Sname,Ssex,Sage,Sdept FROM Student; 或 SELECT * FROM Student;,2019年1月28日,第三章 关系数据库标准语言SQL,18,例4 查询全体学生的姓名及其出生年份。,查询经过计算的值,2019年1月28日,第三章 关系数据库标准语言SQL,19,查询经过计算的值(续),例5 查询全体学生的姓名、出生年份和所在系,要求用小写字母表示所有系名。,2019年1月28日,第三章 关系数据库标准语言SQL,20,使用列别名改变查询结果的列标题,SE

9、LECT Sname 姓名, 2009-Sage 出生年份, ISLOWER(Sdept) 系部 FROM Student; 输出结果: 姓名 出生年份 系部 - - - 李勇 1989 cs 刘晨 1990 is 王敏 1991 ma 张立 1990 is,2019年1月28日,第三章 关系数据库标准语言SQL,21,消除取值重复的行,如果没有指定DISTINCT关键词,则缺省为ALL。 例6 查询选修了课程的学生学号。 SELECT Sno FROM SC; 等价于: SELECT ALL Sno FROM SC;,2019年1月28日,第三章 关系数据库标准语言SQL,22,消除取值重复

10、的行(续),指定DISTINCT关键词,去掉结果表中重复的行。 SELECT DISTINCT Sno FROM SC;,2019年1月28日,第三章 关系数据库标准语言SQL,23,简单查询2:条件查询(WHERE子句),语法 SELECT ALL|DISTINCT select_list FROM table_source WHERE search_condition 功能 比较测试(=,=,!,!) 复合条件测试(NOT、AND、OR) 范围测试(BETWEENAND、NOT BETWEENAND ) 集合测试(IN、NOT IN) 模式匹配测试(LIKE、NOT LIKE) 空值测试(

11、IS NULL、IS NOT NULL),2019年1月28日,第三章 关系数据库标准语言SQL,24,(1) 比较测试,例7查询计算机科学系全体学生的名单。 SELECT Sname FROM Student WHERE Sdept= CS ; 例8查询所有年龄在20岁以下的学生姓名及其年龄。 SELECT Sname, Sage FROM Student WHERE Sage 20 ; 例9查询考试成绩有不及格的学生的学号。 SELECT DISTINCT Sno FROM SC WHERE Grade60 ;,2019年1月28日,第三章 关系数据库标准语言SQL,25,(2) 复合条件

12、测试,用逻辑运算符NOT、AND和 OR来联结多个查询条件 优先级由高到低: NOT、AND、OR 可以用括号改变优先级 例23 查询计算机系年龄在20岁以下的学生姓名。 SELECT Sname FROM Student WHERE Sdept= CS AND Sage20 ;,2019年1月28日,第三章 关系数据库标准语言SQL,26,(3) 范围测试,谓词: BETWEEN AND NOT BETWEEN AND 例10 查询年龄在2023岁(包括20岁和23岁)之间的 学生的姓名、系别和年龄。 SELECT Sname, Sdept, Sage FROM Student WHERE

13、Sage BETWEEN 20 AND 23 ; 例11 查询年龄不在2023岁之间的学生姓名、系别和年龄。 SELECT Sname, Sdept, Sage FROM Student WHERE Sage NOT BETWEEN 20 AND 23 ;,2019年1月28日,第三章 关系数据库标准语言SQL,27,(4) 集合测试,谓词:IN , NOT IN 例12查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。 SELECT Sname, Ssex FROM Student WHERE Sdept IN ( IS,MA,CS ); 例13查询既不是信息系、数学

14、系,也不是计算机科学系的学生的姓名和性别。 SELECT Sname, Ssex FROM Student WHERE Sdept NOT IN ( IS,MA,CS );,2019年1月28日,第三章 关系数据库标准语言SQL,28,(5) 模式匹配测试,谓词: NOT LIKE ESCAPE 通配符 %(百分号)代表任意长度(长度可以为0)的字符串。 _(下划线)代表任意单个字符。 例15 查询所有姓刘学生的姓名、学号和性别。 SELECT Sname, Sno, Ssex FROM Student WHERE Sname LIKE 刘% ;,2019年1月28日,第三章 关系数据库标准语

15、言SQL,29,例16 查询姓“欧阳“且全名为三个汉字的学生的姓名。 SELECT Sname FROM Student WHERE Sname LIKE 欧阳_; 例17 查询名字中第2个字为“阳“字的学生的姓名和学号。 SELECT Sname, Sno FROM Student WHERE Sname LIKE _阳%; 例18 查询所有不姓刘的学生姓名。 SELECT Sname, Sno, Ssex FROM Student WHERE Sname NOT LIKE 刘%;,2019年1月28日,第三章 关系数据库标准语言SQL,30,使用换码字符将通配符转义为普通字符,例19 查询DB_Design课程的课程号和学分。 SELECT Cno,Ccredit FROM Course WHERE Cname LIKE DB_Design ESCAPE ; 例20 查询以“DB_“开头,且倒数第3个字符为 i的课程的详细情况。 SELECT * FROM Course WHERE Cname LIKE DB_%i_ _ ESCAPE ; 注:ESCAPE 表示“ ” 为换码字符,2019年1月28日,第三章 关系数据库标准语言SQL,3

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

最新文档


当前位置:首页 > 高等教育 > 大学课件

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