《数据库语言 》PPT课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《《数据库语言 》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《数据库语言 》PPT课件.ppt(97页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第五章第五章 数据库语言数据库语言SQL1概述概述nSQL的发展的发展n1974年,由年,由Boyce和和Chamberlin提出提出n19751979,IBM San Jose Research Lab的的关系数据库管理系统原型关系数据库管理系统原型System R实施了实施了这种语言这种语言nSQL-86是第一个是第一个SQL标准标准nSQL-89、SQL-92(SQL2)、SQL-99(SQL3)2概述概述n现状现状n大部分大部分DBMS产品都支持产品都支持SQL,成为操作,成为操作数据库的标准语言数据库的标准语言n有方言,支持程度不同有方言,支持程度不同3n数据定义(数据定义(DDL)
2、n定义、删除、修改关系模式(基本表)定义、删除、修改关系模式(基本表)n定义、删除视图(定义、删除视图(View)n定义、删除索引(定义、删除索引(Index)n数据操纵(数据操纵(DML)n数据查询数据查询n数据增、删、改数据增、删、改n数据控制(数据控制(DCL)n用户访问权限的授予、收回用户访问权限的授予、收回概述概述SQL的功能的功能4n交互式交互式SQLn一般一般DBMS都提供联机交互工具都提供联机交互工具n用户可直接键入用户可直接键入SQL命令对数据库进行操作命令对数据库进行操作n由由DBMS来进行解释来进行解释概述概述SQL的形式的形式5嵌入式嵌入式SQLn能将能将SQL语句嵌入
3、到高级语言(宿主语言)语句嵌入到高级语言(宿主语言)n使应用程序充分利用使应用程序充分利用SQL访问数据库的能力、访问数据库的能力、宿主语言的过程处理能力宿主语言的过程处理能力n一般需要预编译,将嵌入的一般需要预编译,将嵌入的SQL语句转化为语句转化为宿主语言编译器能处理的语句宿主语言编译器能处理的语句概述概述SQL的形式的形式6n数据定义数据定义nCreate、Drop、Altern数据操纵数据操纵n数据查询:数据查询:Selectn数据修改:数据修改:Insert、Update、Deleten数据控制数据控制nGrant、Revoke概述概述SQL的动词的动词7数据查询是数据库应用的核心功
4、能数据查询是数据库应用的核心功能n基本结构基本结构Select A1,A2,.,AnFrom r1,r2,.,rmWhere PA1,A2,.,An(p(r1r1.rm)数据查询数据查询SelectWhereFrom8Select语句的含义语句的含义n对对 From 子句中的各关系,作笛卡儿子句中的各关系,作笛卡儿积(积()n对对 Where 子句中的逻辑表达式进行选子句中的逻辑表达式进行选择(择()运算,找出符合条件的元组)运算,找出符合条件的元组n根据根据 Select 子句中的属性列表,对上子句中的属性列表,对上述结果作投影(述结果作投影()操作)操作9Select语句的含义语句的含义n
5、结果集结果集查询操作的对象是关系,结果还是一个关查询操作的对象是关系,结果还是一个关系,是一个结果集,是一个动态数据集系,是一个结果集,是一个动态数据集10Select子句子句n对应于关系代数的投影()运算,用以列出查询结果集中的期望属性11nSQL具有包的特性nSelect 子句的缺省情况是保留重复元组(ALL),可用 Distinct 去除重复元组Select Distinct sdept From StudentSelect All sdept From Studentn去除重复元组:费时n需要临时表的支持Select子句子句重复元组重复元组12Select子句子句*与属性列表与属性列表
6、n星号星号*表示所有属性表示所有属性n星号星号*:按关系模式中属性的顺序排列,:按关系模式中属性的顺序排列,并具有一定的并具有一定的逻辑数据独立性逻辑数据独立性n显式列出属性名:按用户顺序排列显式列出属性名:按用户顺序排列Select*From StudentSelect Student.*,cno,gradeFrom Student,SCWhere Student.sno=SC.sno13Select子句子句更名更名n为结果集中的某个属性改名为结果集中的某个属性改名n使结果集更具可读性使结果集更具可读性Select sno as stu_no,cno as course_no,gradeFr
7、om SCSelect sno,sname,2001-sage as birthdayFrom Student14Where 子句子句nwhere子句对应与关系代数中的子句对应与关系代数中的选择选择()n查询满足指定条件的元组可以通过查询满足指定条件的元组可以通过Where子句来实现子句来实现n使使where子句中的逻辑表达式返回子句中的逻辑表达式返回True值值的元组,是符合要求的元组,将被选择的元组,是符合要求的元组,将被选择出来出来15Where 子句子句运算符运算符n比较:比较:、=、=、not+n确定范围:确定范围:Between A and B、Not Between A and
8、Bn确定集合:确定集合:IN、NOT INn字符匹配:字符匹配:LIKE,NOT LIKEn空值:空值:IS NULL、IS NOT NULLn多重条件:多重条件:AND、OR、NOT16Where 子句子句Liken字符匹配:字符匹配:Like、Not Liken通配符通配符n%匹配任意字符串匹配任意字符串n_ 匹配任意一个字符匹配任意一个字符n大小写敏感大小写敏感17Where 子句子句Like例:列出姓张的学生的学号、姓名。例:列出姓张的学生的学号、姓名。Select sno,snameFrom StudentWhere sname LIKE 张张%18Where 子句子句Like例:列
9、出张姓且单名的学生的学号、姓名。例:列出张姓且单名的学生的学号、姓名。Select sno,snameFrom StudentWhere sname LIKE 张张_ _19Where 子句子句转义符转义符 escape n例:列出课程名称中带有例:列出课程名称中带有_的课号及课的课号及课名名。Select cno,cnameFrom CourseWhere cname LIKE%_%escape 20From 子句子句nFrom子句对应与关系代数中的笛卡儿积子句对应与关系代数中的笛卡儿积()n列出将被扫描的关系(表)列出将被扫描的关系(表)例:列出所有学生的学号、姓名、课号、成绩。例:列出所
10、有学生的学号、姓名、课号、成绩。Select Sudent.sno,sname,SC.cno,gradeFrom Student,SCWhere Student.sno=SC.sno21From 子句子句元组变量元组变量n为为 From 子句中的关系定义子句中的关系定义元组变量元组变量n方便关系名的引用方便关系名的引用n在同一关系的笛卡儿积中进行辨别在同一关系的笛卡儿积中进行辨别例:列出与例:列出与95001同岁的同学的学号同岁的同学的学号,姓名姓名,年龄年龄SelectT.sno,T.sname,T.sageFromStudent as T,Student as SWhereS.sno=95
11、001 ANDT.sage=S.sage22Order By子句子句n指定结果集中元组的排列次序指定结果集中元组的排列次序n耗时耗时nASC(缺省)、(缺省)、DESC、未选中的属性、未选中的属性n例:列出例:列出CS系中的男生的学号、姓名、年龄,并按系中的男生的学号、姓名、年龄,并按年龄进行排列(升序)年龄进行排列(升序)Select sno,sname,sageFrom StudentWhere sdept=CSOrder By sage ASC 23SQL的集合操作的集合操作nSQL的结果集是的结果集是“包包”n多个多个 Select 语句的结果可以进行集合操语句的结果可以进行集合操作,
12、使结果为作,使结果为“集合集合”(default)nSQL-92支持支持n参加集合操作的关系(结果集)必须是参加集合操作的关系(结果集)必须是相容相容的的24SQL的集合操作的集合操作相容相容n属性个数必须一致属性个数必须一致n对应的类型必须一致对应的类型必须一致n属性名无关属性名无关n最终结果集采用第一个结果的属性名最终结果集采用第一个结果的属性名n缺省为自动去除重复元组缺省为自动去除重复元组n除非显式说明除非显式说明ALLnOrder By放在整个语句的最后放在整个语句的最后25SQL的集合操作的集合操作并并nunion(并,对应与关系代数的(并,对应与关系代数的),标准),标准SQL都支
13、持的都支持的n采用集合的观点,合成多个查询的结果采用集合的观点,合成多个查询的结果select-without-order by.UNION ALL select-without-order by.UNION ALL select-without-order by .ORDER BY integer ASC|DESC,.26例:查询计算机系的学生例:查询计算机系的学生或者或者年龄不大于年龄不大于1919岁岁的学生,并按年龄倒排序。的学生,并按年龄倒排序。SQL的集合操作的集合操作并并27nintersect(交,对应与关系代数的(交,对应与关系代数的),并不),并不是所有的是所有的DBMS都支
14、持都支持n例:查询计算机系的学生例:查询计算机系的学生并且并且年龄不大于年龄不大于1919岁岁的学生,并按年龄倒排序。的学生,并按年龄倒排序。SQL的集合操作的集合操作交交28nexcept(差,对应与关系代数的(差,对应与关系代数的-),并不是),并不是所有的所有的DBMS都支持都支持n例:查询计算机系的男生。例:查询计算机系的男生。SQL的集合操作的集合操作差差29n数据定义语言数据定义语言(Data Definition Language)nCreate、Drop、Altern定义一组关系(基本表)、说明各关系的信息定义一组关系(基本表)、说明各关系的信息n各关系的模式各关系的模式n各属
15、性的值域各属性的值域n完整性约束完整性约束n索引索引n安全性和权限安全性和权限数据定义语言(数据定义语言(DDL)30n字符型字符型nchar(n)、varchar(n)n数值型数值型ninteger、smallintnnumeric(p,d)nreal、double、float(n)n日期日期/时间型时间型ndatentimeDDLSQL中的域类型中的域类型31n域定义语句(域定义语句(SQL-92支持)支持)n需重复使用的需重复使用的nCreate Domain stu_name varchar(20)nCreate Domain zip_code char(6)DDLSQL中的域类型中的
16、域类型32Create Table r(A1D1,A2D2,AnDn,)其中:其中:r 关系名(表名)、关系名(表名)、Ai 关系关系 r 的一个属性名的一个属性名Dn 属性属性Ai域值的域类型域值的域类型主键声明:主键声明:primary key(Aj1,Aj2,Ajvm)DDLSQL的模式定义的模式定义33Create Domain stu_name varchar(20)Create Table Student(sno char(10)primary key(sno),sname stu_name,sage smallint,ssex char(1),sdept char(2)DDLSQ
17、L的模式定义的模式定义34Create Table Course(cno char(10)primary key(cno),cname varchar(20),credit smallint)Create Table SC (sno char(10)not null,cno char(10)not null,grade smallint,primary key(sno,cno)DDLSQL的模式定义的模式定义35n用用SQL删除关系(表)删除关系(表)n将整个关系模式(表结构)彻底删除将整个关系模式(表结构)彻底删除n表中的数据也将被删除表中的数据也将被删除Drop Table rDrop T
18、able student;DDL删除表结构删除表结构 Drop36n删除表中的某属性删除表中的某属性n去除属性及相应的数据去除属性及相应的数据Alter Table r Drop ADDL修改模式修改模式 Alter37n增加表中的属性增加表中的属性n向已经存在的表中添加属性向已经存在的表中添加属性nallow nulln已有的元组中该属性的值被置为已有的元组中该属性的值被置为NullAlter Table r Add A DAlter Table student phone char(16);DDL修改模式修改模式 Alter38n属性的默认值属性的默认值n用户不提供某属性的值时,默认值被使
19、用用户不提供某属性的值时,默认值被使用n初始值初始值nTimeStampnDDL中:中:ModifyDate char(30)Default TimeStamp;Alter Table student Add ID integer Default AutoIncrement;DDL Default Value39n定义一个新的域(用户定义的域)定义一个新的域(用户定义的域)n需要重复使用的域需要重复使用的域n必须具有相同类型的属性必须具有相同类型的属性Create Domain As;Create Domain datelog As char(30)default timestampn域的删除
20、域的删除nDrop Domain datelogn各各DBMS的方法是不同的的方法是不同的Restrict/Cascaden使用该域的属性的处理使用该域的属性的处理DDL 域定义域定义40n索引是一种数据结构,是对照表、指针表索引是一种数据结构,是对照表、指针表n索引是为了索引是为了加速加速对表中元组的检索而创建的一种分散对表中元组的检索而创建的一种分散存储结构(存储结构(B树)树)n索引是对表而建立的,由除存放表的数据页面以外的索引是对表而建立的,由除存放表的数据页面以外的索引页面组成索引页面组成n索引是把双刃剑,减慢更新的速度索引是把双刃剑,减慢更新的速度n索引不是索引不是SQL标准的要求
21、标准的要求DDL 索引索引 Index41n索引的种类索引的种类n聚簇索引(聚簇索引(Clustered Index)n非聚簇索引(非聚簇索引(Non-Clustered Index)DDL 索引索引 Index42n聚簇索引(聚簇索引(Clustered Index)n表中的元组按聚簇索引的顺序物理地存放表中的元组按聚簇索引的顺序物理地存放n根级页面根级页面-中间层页面中间层页面-叶级页面(叶级页面(数据页面数据页面)n一个表中只能有一个聚簇索引一个表中只能有一个聚簇索引n更新的复杂性,需要大量的临时空间更新的复杂性,需要大量的临时空间DDL 索引索引 Index43n非聚簇索引(非聚簇索引
22、(Non-Clustered Index)n表中元组存储的物理顺序与索引的顺序无关表中元组存储的物理顺序与索引的顺序无关n叶级索引页面是指向数据页面的指针叶级索引页面是指向数据页面的指针n每个表可有多个非聚簇索引每个表可有多个非聚簇索引DDL 索引索引 Index44CREATE UNIQUE CLUSTERED|NONCLUSTEREDINDEX index-name On TableName(Column,Column,)Create Index YearIndex On Movie(year);Create Clustered Index SnoIndex On student(sno)
23、;Drop Index YearIndex;DDL 索引索引 Index45n查询与更新的评估查询与更新的评估n查询多?查询多?n更新多?更新多?n索引的覆盖索引的覆盖nWhere表达式表达式nWhere表达式的顺序表达式的顺序n索引越多越好吗?索引越多越好吗?n了解优化器了解优化器DDL 索引的使用索引的使用46n数据添加数据添加n用用SQL的插入语句,向数据库表中添加数据的插入语句,向数据库表中添加数据n按关系模式的属性顺序按关系模式的属性顺序Insert Into Student Values(95001,张三张三,27,M,CS)n按指定的属性顺序,也可以只添加部分属性(非按指定的属性
24、顺序,也可以只添加部分属性(非Null属性为必需)属性为必需)Insert Into Student(sno,sname,sage)Values(95002,李四李四,26)47n把一列中的值进行聚合运算,返回单值的函数把一列中的值进行聚合运算,返回单值的函数n五个预定义的聚合函数五个预定义的聚合函数n平均值:平均值:AvgAvgn总和:总和:Sum Sumn最小值:最小值:MinMinn最大值:最大值:MaxMaxn计数:计数:Count CountnCount(*)Count(*)、Count(Distinct)Count(Distinct)数值数值聚合函数聚合函数48nGroup Byn
25、将查询结果集按某一列或多列的将查询结果集按某一列或多列的值值分组,值相等分组,值相等的为一组,一个分组以一个元组的形式出现的为一组,一个分组以一个元组的形式出现n只有出现在只有出现在Group By子句中的属性,才可出现在子句中的属性,才可出现在Select子句中子句中例:统计各系学生的人数。例:统计各系学生的人数。Select sdept,count(*)as stu_countFrom StudentGroup By sdept聚合函数聚合函数49nHavingn针对聚合函数的结果值进行筛选(选择),它作用于针对聚合函数的结果值进行筛选(选择),它作用于分组计算结果集分组计算结果集n跟在跟
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库语言 数据库语言 PPT课件 数据库 语言 PPT 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内