2015第五章SQL语言.ppt
《2015第五章SQL语言.ppt》由会员分享,可在线阅读,更多相关《2015第五章SQL语言.ppt(176页珍藏版)》请在三一办公上搜索。
1、第五章关系数据库标准语言SQL,课程安排,SQL分组聚集查询SQL数据操纵功能SQL视图SQL索引SQL的完整性实现,SQL概述SQL数据基本定义功能SQL查询的基本结构SQL单关系查询SQL多关系查询SQL嵌套查询,课程安排,SQL嵌套查询SQL分组聚集查询SQL数据操纵功能SQL视图SQL索引SQL的完整性实现,SQL概述SQL概貌及特点SQL的基本概念SQL数据基本定义功能SQL查询的基本结构SQL单关系查询SQL多关系查询,SQL的概貌与特点,SQL的产生与发展结构化查询语言(Structured Query Language)简称SQL。1974年:Boyce和Chamberlin提
2、出,IBM的原型系统Systerm R上实现。1986年10 月由美国国家标准局(ANSI)通过的数据库语言美国标准,接着,国际标准化组织(ISO)颁布了SQL正式国际标准。1989年4月,ISO提出了具有完整性特征的SQL89标准。1992年11月又公布了SQL92标准,在此标准中,把数据库分为三个级别:基本集、标准集和完全集。1999年,SQL发布的版本包括框架、SQL基础部分,SQL调用接口,永久存储模块,宿主语言绑定,外部数据管理,对象语言绑定等多个部分。2003和2006版本又包含了XML相关内容。,SQL的概貌与特点,一体化的特点(相对于非关系模式的数据语言)集数据定义语言、数据操
3、纵语言、数据控制语言于一体根据需要随时修改模式实体和联系均用关系表示两种使用方式,统一的语法格式高度非过程化面向集合的操作方式语言简洁、易学易用,SQL语言的组成部分,数据定义语言(DDL:Data Definition Language)负责数据结构定义与数据库对象定义的语言,由CREATE、ALTER与DROP三个语法所组成,操作的对象包括关系表、视图、索引等。数据操纵语言(DML:Data Manipulation Language)其语句包括动词SELECT,INSERT,UPDATE和DELETE。它们分别用于查询、添加、修改和删除表中的行。,SQL语言的组成部分,数据控制语言(DC
4、L:Data Control Language)在SQL语言中,是一种可对数据访问权进行控制的指令,由 GRANT 和 REVOKE 两个指令组成。事务处理语言(TPL:Transaction Processing Language)它的语句能确保被DML语句影响的表的所有行及时得以更新。包括BEGIN TRANSACTION,COMMIT和ROLLBACK。,课程安排,SQL嵌套查询SQL分组聚集查询SQL操纵功能SQL视图定义SQL索引SQL的完整性实现,SQL概述SQL概貌及特点SQL的基本概念SQL数据基本定义功能SQL查询语句基本结构SQL单关系查询SQL多关系查询,数据库三级模式,
5、SQL语言也支持关系数据库三级模式体系结构外模式:视图+一些基本表模式:基本表内模式:存储文件(逻辑结构),SQL的基本概念,视图1,视图2,模式,存储文件1,存储文件2,基本表2,基本表1,基本表3,基本表4,SQL,外模式,内模式,SQL语言多样性,各种不同的数据库对SQL语言的支持与标准存在着细微的不同,因为有的产品的开发先于标准的公布,另外,各产品开发商为了达到特殊的性能或新的特性,需要对标准进行扩展。,课程安排,SQL嵌套查询SQL分组聚集查询SQL数据修改操作SQL视图定义SQL附加操作SQL的完整性实现,SQL概述SQL数据基本定义功能模式定义基本表定义查询语句基本结构SQL单关
6、系查询SQL多关系查询,样板模式-学生选课应用,学生表Student(Sno,Sname,Ssex,Sage,Sdept)学生(学号,姓名,性别,年龄,所在系)课程表Course(Cno,Cname,Cpno,Ccredit)课程(课程号,课程名,先行课,学分)学生选课表SC(Sno,Cno,Grade)选课(学号,课程号,成绩),SQL数据基本定义功能,SQL提供了三级模式结构的定义功能,相关的定义语句如下:,创建模式基本语句 CREATE SCHEMA AUTHORIZATION 拥有DBA权限或者获得了DBA授予的Create Schema权限的用户例子:定义一个学生-课程模式S-T C
7、reate schema“S-T”authorization Wang不指明模式名则隐含为 模式名为用户名例子:Create schema authorization Wang定义一个命名空间,SQL数据基本定义功能-定义模式,CREATE SCHEMA AUTHORIZATION|例子:Create schema test authorization Zhang create table Tab1(A1 int,A2 char(10),A3 char(20),SQL数据基本定义功能-定义模式,删除模式基本语句 DROP SCHEMA 例子:Drop schema Zhang cascade,
8、SQL数据基本定义功能-删除模式,SQL数据基本定义功能-模式,模式与表的关系每一个基本表都属于某一个模式一个模式包含多个基本表定义基本表的模式在表名中明显地给出模式名Create table“S-T”.Students()在创建模式语句中同时创建表设置所属的模式,在创建表时表名中不必给出模式名当用户创建表时若没有指定模式,系统根据搜索路径来确定该对象所属的模式,课程安排,SQL嵌套查询SQL分组聚集查询SQL数据操作功能SQL视图定义SQL索引SQL的完整性实现,SQL概述SQL数据基本定义功能模式定义基本表定义SQL查询语句基本结构SQL单关系查询SQL多关系查询,SQL数据基本定义功能-
9、创建表,SQL基本建表语句CREATE TABLE 表名(数据类型 列级约束,数据类型 列级约束,表级约束)。,SQL数据基本定义功能-创建表,创建表Students Create table Students(Sno char(11),Sname char(20),Ssex char(2)Sage int,Sdept char(20),primary key(Sno),Create table Students(sno char(11)primary key,Sname char(20),Ssex char(2),Sage int,Sdept char(20),表级约束,列级约束,Stude
10、nts,(Sno,Sname,Ssex,Sage,Sdept),创建表Courses Create table Courses(Cno char(4),Cname char(40),Cpno char(4),Ccredit int,primary key(Cno),Foreign Key(Cpno)REFERENCES Courses(Cno),表级约束,Courses,(Cno,Cname,Cpno,Ccredit),定义外键,SQL数据基本定义功能-创建表,创建表SC Create table SC(Sno char(9),Cno char(4),Grade int,primary key
11、(Sno,Cno),foreign key(Sno)references Students(Sno),foreign key(Cno)references Courses(Cno),表级约束,SC,(Sno,Cno,Grade),SQL数据基本定义功能-创建表,char(n):固定长度为n的字符串varchar(n):可变长度为n的字符串smallint:短整数int:长整数numeric(p,s):定点数。由p位数字组成,包括s 位小数 float(n):精度至少为n位数字的浮点数real:取决于机器精度的浮点数double precision:取决于机器精度的双精度浮点数date:日期,格
12、式为年、月、日,YYYY-MM-DD time:时间,格式为时、分、秒,HH:MM:SS,SQL基本定义功能-数据类型,SQL基本定义功能-表的修改,修改添加列|完整性约束:ALTER TABLE ADD 完整性约束删除列|完整性约束:ALTER TABLE DROP 完整性约束 修改列:ALTER TABLE ALTER COLUMN,SQL基本定义功能-表的修改,修改表:在学生表中添加字段Sclass,字符类型,长度20 Alter table Students add Sclass char(20)将年龄的数字类型由字符型改为整型 Alter table Students alter c
13、olumn Sage int增加课程名称必须取唯一值的约束条件Alter table Courses add unique(Cname),SQL基本定义功能-表的删除,删除表Drop table restrict|cascsdeRestrict:表删除有限制条件,不能被其他表的约束所引用,不能有视图、触发器、存储过程或函数Cascade:把一个基本表的定义连同表上的所有记录、索引以及由此基本表导出的所有视图都删除,并释放相应的存储空间删除表Students:Drop table Students cascade,课程安排,SQL嵌套查询SQL分组聚集查询SQL数据修改操作SQL视图SQL附加操
14、作SQL的完整性实现,SQL概述SQL数据基本定义功能SQL查询语句基本结构SQL单关系查询SQL多关系查询,SQL查询语句基本结构,SQL查询语句的基本结构SELECT DISTINCT,FROM,WHERE Group by having Order By asc|desc;,SQL查询语句基本结构,SQL查询语句的三个子句Select:对应关系代数的投影运算,列出查询结果中的属性From:对应关系代数的笛卡尔集运算,列出表达式求值中需扫描的关系Where:对应关系代数的选择谓词,包括一个作用在from子句中关系属性上的谓词。,Select A1,A2,AnFrom r1,r2,rmWhe
15、re P,A1,A2,.,An(P(r1 r2 rm),样板模式S-C,Students(Sno,Sname,Ssex,Sage,Sdept)Courses(Cno,Cname,Cpno,Credit)SC(Sno,Cno,Grade),Sailors(sid,sname,rating,age)Boats(bid,bname,color)Reserve(sid,bid,day),样板模式S-B-R,课程安排,SQL嵌套查询SQL分组聚集查询SQL数据操纵功能SQL视图SQL索引SQL的完整性实现,SQL概述SQL数据基本定义功能SQL查询语句基本结构SQL单关系查询属性列查询元组查询SQL多关
16、系查询,单表查询-属性列查询,单表查询查询内容仅涉及一个表查询指定的属性列例子:查询全体学生的学号和姓名 select Sno,Sname from Students;,Students(Sno,Sname,Ssex,Sage,Sdept)Courses(Cno,Cname,Cpno,Credit)SC(Sno,Cno,Grade),顺序无关性,单表查询-属性列查询,用*表示关系的全部属性例子:查询全体学生的基本情况 select*from Students;,Students(Sno,Sname,Ssex,Sage,Sdept)Courses(Cno,Cname,Cpno,Credit)SC
17、(Sno,Cno,Grade),单表查询-属性列查询,包含运算符的查询结果属性例子:查询全体学生的姓名及出生年份 select Sname,2014-Sage from Students;,Students(Sno,Sname,Ssex,Sage,Sdept)Courses(Cno,Cname,Cpno,Credit)SC(Sno,Cno,Grade),常量属性和函数例子:查询全体学生的姓名、出生年份和所在系,要求用小写字母表示所有系名 select Sname,Year of birth:,2014-Sage,islower(Sdept)from Students;,示意答案,单表查询-属性
18、列查询,用户可以通过指定别名来改变查询结果的列标题 select Sname NAME,Year of birth BIRTH,2014-Sage BIRTHDAY,islower(Sdept)DEPARTMENT from Students;,单表查询-属性列查询,课程安排,SQL嵌套查询SQL分组聚集查询SQL数据操纵功能SQL视图SQL索引SQL的完整性实现,SQL概述SQL数据基本定义功能SQL查询语句基本结构SQL单关系查询属性列查询元组查询SQL多关系查询,消除取值重复的行查询选修了课程的学生学号 select Sno from SC;消除重复行 select distinct S
19、no from SC;,Sno11001 11001110011100211002,Sno11001 11002,与关系代数中投影操作不同,SQL语句中默认不消除重复,需要使用distinct关键字消除重复行,单表查询-元组查询,查询满足条件的元组:WHERE子句常用查询条件查询条件 谓词比较=,=,!,!not+上述比较运算符(例如not=)确定范围 between and,not between and确定集合 in,not in字符匹配 like,not like空值 is null,is not null多重条件 and,or,单表查询-元组查询,比较查询查询年龄在20岁以下的学生姓名
20、及其年龄 select Sname,Sage from Students where Sage 20;查询考试成绩有不及格的学生的学号select distinct sno from SCwhere Grade60,单表查询-元组查询,单表查询-元组查询,范围查询查询年龄在2023岁之间的学生姓名、所在系,年龄 select Sname,Sdept,Sage from Students where Sage between 20 and 23;与betweenand相对的谓词是not betweenand,下限,上限,确定集合查询查询信息系、数学系和计算机系学生的姓名和性别 select Sn
21、ame,Ssex from Students where Sdept in(IS,MA,CS);与in相对的谓词是Not in,单表查询-元组查询,注意:字符类型的查询条件需要使用引号标注属性值,字符匹配查询用谓词like进行字符串的匹配not like escape 通配符%:任意长度的字符串。例如:a%bacb,addgb,ab _:任意单个字符例如:a_bacb,adb,单表查询-元组查询,查询所有姓刘的学生的姓名、学号和性别 select Sname,Sno,Ssex from Students where Sname like 刘%;查询所有不姓刘的学生的姓名、学号和性别 selec
22、t Sname,Sno,Ssex from Students where Sname not like 刘%;,单表查询-元组查询,单表查询-元组查询,查询姓欧阳且全名为三个汉字的学生姓名 select Sname from Students where Sname like 欧阳_;查询以C开始和结束,并且有至少3个字母组成的系的学生的学号 select Sno from Students where Sdept like C_%C;,查询DB_Design课程号和学分 select Cno,Ccredit from Courses where Cname like DB_Design es
23、cape;查询以”DB_”开头,且倒数第3个字符为i的课程的详细情况 select*from Courses where Cname like DB_%i_ escape;,单表查询-元组查询,如果用户查询的字符串本身包含通配符%或_,用escape短语,对通配符转义,单表查询-元组查询,查询学号为20140001的学生的详细情况select*from studentswhere sno like 20140001,如果Like后面的匹配串中不含通配符,可以用=运算符取代like谓词,用!=或(不等于)运算符取代not like,空值查询查询缺考学生的学号和课号 select Sno,Cno
24、from SC where Grade is null;查询有成绩的学生的学号和课号 select Sno,Cno from SC where Grade is not null;,单表查询-元组查询,Is 不能用“=”,复合查询查询计算机系年龄在20岁以下的学生的姓名 select Sname from Students where Sdept=CS and Sage20;查询信息系、数学系和计算机系学生的姓名和性别 select Sname,Ssex from Students where Sdept=CS or Sdept=IS or Sdept=MA,单表查询-元组查询,and优先级高
25、于or可以用()改变优先级,In谓词是多个or运算符的缩写,单表查询,对查询结果排序:ORDER BY子句 ORDER BY asc|descasc 升序;desc降序例子:查询选修了3号课程的学生学号和成绩,要求查询结果按成绩降序排列 select Sno,Grade from SC where Cno=3 order by Grade desc;,单表查询,例子:查询全体学生的情况,查询结果按系号升序排列,同一系的学生按年龄降序排列 select*from Students order by Sdept asc,Sage desc;,对于空值,若按升序排列,含空值的元组将在最后显示,若按降
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2015 第五 SQL 语言
链接地址:https://www.31ppt.com/p-5406974.html