资源描述:
《数据库系统概论第三章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章关系数据库标准语言SQLSQL语言SQL概述SQL数据查询功能SQL数据定义功能SQL数据更新功能嵌入式SQLSQL概述历史1974年,由Boyce和Chamberlin提出,称为SEQUEL(StructuredEnglishQueryLanguage)。1975-1979年,在IBM的SanJose研究室研制的SystemR上实现。1981年,IBM在推出SQL/DS关系数据库时,将其命名为SQL(StructuredQueryLanguage)。现在,不仅关系型数据库系统,甚至非关系型
2、数据库系统都将SQL作为其数据库语言。SQL语言已成为当今最为成功和应用最广的数据库语言。SQL概述(I)有关标准随着SQL语言应用的日益广泛,ANSI和ISO先后制定了多个SQL标准:SQL-86:较为简单,主要包括数据定义语言、数据操纵语言、嵌入式语法等几个部分。SQL-89:增加了对完整性约束的支持。SQL-92:也称SQL2,是SQL-89的超集,增加了许多新特性,如新的数据类型,更丰富的数据操作,更强的完整性、安全性支持等。SQL-3:正在讨论中的新的标准,将增加对面向对象模型的支持。SQL
3、概述(II)特点综合统一集数据定义,数据操纵,数据查询和数据控制于一体。单一的结构----关系,带来了数据操作符的统一。高度非过程化用户只需提出“做什么”,无须告诉“怎么做”,不必了解存取路径。面向集合的操作方式操作的对象和操作的结果均为集合。以同一种语法结构提供两种使用方式SQL既是自含式语言,又是嵌入式语言SQL概述(III)语言简捷,易学易用类似于英语自然语言SQL功能操作符数据查询SELECT数据定义CREATE,DROP数据操纵INSERT,UPDATE,DELETE数据控制GRANT,RE
4、VOKESQL对关系数据库模式的支持用户视图1视图2SQL基本表1基本表2基本表3基本表4存储文件1存储文件2外模式内模式概念模式SQL对关系数据库模式的支持基本表是本身独立存在的表,一个(或多个)基本表对应一个存储文件存储文件由数据块构成的存储空间,用于存储基本表、索引等。其逻辑结构组成了关系数据库的内模式视图是从一个或几个基本表中导出的表,其本身不独立存储于数据库中例子表SnoSnameSexSageSdept95001李勇男20CS95002刘晨女19IS95003王敏女18MA95004张立男
5、19ISSTUDENTSnoCnoGrade9500119295001285950013889500229095002380SCCnoCnameCpnoCcredit1数据库542数学23信息系统144操作系统635数据结构746数据处理27Pascal语言64COURSESQL数据查询功能查询语句SELECT的语法:Select[ALL
6、DISTINCT]<目标表达式>[{,<目标表达式>}]From<表名或视图名>[{,<表名或视图名>}][Where<条件表达式>][GroupBy<分组列>[{
7、,<分组列>}][HAVING<条件表达式>]][OrderBy<排序列><排序方式>[{,<排序列><排序方式>}]SQL数据查询功能其语义是:从FROM子句给定的表中,检索出满足WHERE子句给定检索条件的记录,并根据SELECT子句从这些记录中选出指定的列(属性)所构成的结果集合。SELECT和FROM两个子句定义了投影操作。WHERE子句给出了选取操作的定义(当涉及多表操作时,WHERE子句要同时给出连接操作条件)。可见,查询语句作为整体代表着关系代数中的投影、选取、连接等操作的组合。但是,由
8、于在查询语句中并不规定投影、选取、连接等操作的执行顺序。因此,它比关系代数更一般,更少过程化。SQL数据查询功能单表查询连接查询嵌套查询集合查询单表查询查询全体学生的姓名与学号SelectSname,SnoFromStudent;查询全体学生的全部属性Select*FromStudent;查看全体学生的姓名及其出生年份SelectSname,2001-SageFromStudent;单表查询(续I)查询全体学生所在学校、姓名、出生年份和所在系(用小写字母显示系名)。Select“北航”,Sname,2
9、001-Sage,ISLOWER(Sdept)FromStudent;Select“北航”School,Sname,2001-SageBirth,ISLOWER(Sdept)FromStudent;单表查询(续II)查询条件谓词比较>,>=,<,<=,=,!=,<>,!>,!<;NOT+上述比较运算符确定范围BETWEENAND,NOTBETWEENAND确定集合IN,NOTIN字符匹配LIKE,NOTLIKE空值ISNULL,ISNOTNULL多重条件