




已阅读5页,还剩51页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章数据库对象管理,SELECT语句的基本应用,SELECT语句的基本语法结构如下:SELECTDISTINCT子句INTO子句FROM子句WHERE子句GROUPBY子句HAVING子句ORDERBY子句,第7章数据库对象管理,SELECT查询,单表查询多表连接查询,第7章数据库对象管理,SELECT查询单表查询,单表查询指的是在一个源表中查找所需的数据。因此,单表查询时,FROM子句中的只需要给出一个源表表名。1.SELECT子句(1)选择表中若干列(2)选择表中所有列(3)使用表达式(4)设置列的别名(5)使用DISTINCT消除结果表中完全重复的行,第7章数据库对象管理,2.FROM子句,单表查询中,源表只有一个,因此,FROM子句FROM,SELECT查询单表查询,3.WHERE子句,WHERE查询体条件中没有多表连接条件,只有一个表的行筛选条件。中常用的运算符:比较运算符和逻辑运算符。比较运算符用于比较两个数值之间的大小是否相等。常用的比较运算符有:=(等于)、(大于)、=(大于等于)、(不等于)。,第7章数据库对象管理,逻辑运算符主要有:范围比较运算符:BETWEENAND,NOTBETWEENAND集合比较运算符:IN,NOTIN字符匹配运算符:LIKE,NOTLIKE空值比较运算符:ISNULL,ISNOTNULL条件连接运算符:AND,OR,NOT下面举例说明,第7章数据库对象管理,4.GROUPBY子句有时我们需要把FROM、WHERE子句产生的表按某种原则分成若干组,然后再对每个组进行统计。GROUPBY子句在WHERE子句后边。一般形式为:GROUPBY,n其中是分组的依据。分组原则是的列值相同,就为同一组。当有多个时,则先按第一个列值分组,然后对每一组再按第二个列值进行分组,依此类推。,SELECT查询单表查询,5.HAVING子句HAVING子句指定GROUPBY生成的组表的选择条件。它的一般形式为:HAVINGHAVING子句在GROUPBY子句之后,并且必须与GROUPBY子句一起使用,第7章数据库对象管理,6.ORDERBY子句指定整个SELECT语句的输出结果中记录的排序依据。ORDERBY排序子句的格式为:ORDERBYASC|DESC,n其中指定排序的依据,ASC表示按列值升序方式排序,DESC表示按列值降序方式排序。如果没有指定排序方式,则默认的排序方式为升序排序。在ORDERBY子句中,可以指定多个用逗号分隔的列名。,SELECT查询单表查询,第7章数据库对象管理,多表查询指的是从多个源表中检索数据。因此,多表查询时,FROM子句中的要给出所有源表表名,各个表名之间要用逗号分隔。(1)多表查询的FROM子句格式FROM例如,若一个查询用到三个表,表名分别为Students、Enrollment,Courses。则FROM子句为:FROMStudents,Enrollment,Courses,SELECT查询多表连接查询,第7章数据库对象管理,(2)多表查询中的SELECT子句不同的是:如果多个表中有相同的列名,则需要用:.来限定列是那个表的列。,SELECT查询多表连接查询,(3)多表查询中的GROUPBY、HAVING、ORDERBY子句与单表查询中的用法相同。不同的是:如果列名有重复,则要用.来限定列是那个表的列。,第7章数据库对象管理,(4)多表查询中的WHERE子句与单表查询中的用法差别较大。多表查询中往往要有多表的连接条件,当然还有表的一个或多个行选择条件,两者用AND操作符组合。这里着重介绍多表的连接条件。按连接条件的不同,连接分为:内连接、外连接。外连接又分为左外连接、右外连接。,SELECT查询多表连接查询,第7章数据库对象管理,1.非相关子查询非相关子查询,也称嵌套子查询,可以多层嵌套。这种子查询的执行不依赖于外查询。执行过程是,先执行子查询,子查询的结果并不显示出来,而是作为外查询的条件值,然后执行外查询。非相关子查询的特点:子查询只执行一次,其查询结果不依赖于外查询。而外查询的查询条件依赖于子查询的结果,因此,也可以说外查询的查询结果依赖于子查询的结果。非相关子查询的结果可以是一行或多行。返回一行的非相关子查询通常用在比较运算符之后;返回多行的非相关子查询通常用在比较运算符与ANY、ALL组成的运算符、IN、NOTIN之后。,SELECT查询子查询,第7章数据库对象管理,(1)返回一行的非相关子查询【例】查询与Sue在同一个系学习的学生学号、姓名SELECTSno,SnameFROMStudentsWHERESdept=(SELECTSdeptFROMStudentsWHERESname=Sue),第7章数据库对象管理,(2)返回多行的非相关子查询如果子查询返回多个值,即一个集合,则外查询条件中不能直接用比较运算符中的任意一个,因为某一行的一个列值不能与一个集合比较。必须在比较运算符之后加ANY或ALL关键字。使用格式为:列名比较符ANY|ALL子查询ANY的含义为:将一个列值与子查询返回的一组值中的每一个比较。若在某次比较中结果为TRUE,则ANY测试返回TRUE,若每一次比较的结果均为FALSE,则ANY测试返回FALSE。ALL的含义为:将一个列值与子查询返回的一组值中的每一个比较。若每一次比较中结果均为TRUE,则ALL测试返回TRUE,只要有一次比较的结果为FALSE,则ALL测试返回FALSE。,第7章数据库对象管理,【例】查询其他系中比计算机系所有学生年龄都小的学生基本情况。SELECT*FROMStudentsWHERESdeptComputerANDSage80ANDCno=(SELECTCnoFROMCoursesWHERECname=English),第7章数据库对象管理,2.相关子查询相关子查询,即子查询的执行依赖于外查询。相关子查询执行过程是先外查询,后内查询,然后又外查询,再内查询,如此反复,直到外查询处理完毕。使用EXSISTS或NOTEXSISTS关键字来表达相关子查询。格式为:EXISTSEXISTS表示存在量词,用来测试子查询是否有结果,如果子查询的结果集中非空(至少有一行),则EXISTS条件为TRUE,否则为FALSE。由于EXISTS的子查询只测试子查询的结果集是否为空,因此,在子查询中指定列名是没有意义的。所以在有EXISTS的子查询中,其列名序列通常都用“*”表示。,SELECT查询子查询,第7章数据库对象管理,【例】查询选修了C2课程的学生的学号和姓名。SELECTSno,SnameFROMStudentsWHEREEXISTS(SELECT*FROMEnrollmentWHERESno=Students.SnoANDCno=C2),第7章数据库对象管理,【例】查询没有选修C2课程的学生的学号、姓名。SELECTSno,SnameFROMStudentsWHERENOTEXISTS(SELECT*FROMEnrollmentWHERESno=Students.SnoANDCno=C2),第7章数据库对象管理,在标准SQL中,集合运算的关键字分别为UNION(并)、INTERSECT(交)、MINUS(或EXCEPT)(差)。因为一个查询的结果是一个表,可以看作是行的集合,因此,可以利用SQL的集合运算关键字,将两个或两个以上查询结果进行集合运算,这种查询通常称为组合查询(也称为集合查询)。1将两个查询结果进行并运算并运算用UNION运算符。它将两个查询结果合并,并消去重复行而产生最终的一个结果表。,SELECT查询组合查询,【例】查询选修了C1课程或选修了C2课程的学生学号。SELECTSnoFROMEnrollmentWHERECno=C1UNIONSELECTSnoFROMEnrollmentWHERECno=C2两个查询结果表必须是兼容的。即列的数目相同且对应列的数据类型相同。在两个查询结果合并时,将删除重复行。若UNION后加ALL,则结果集中包含重复行。,第7章数据库对象管理,2将两个查询结果进行交运算交运算符是INTERSECT。它将同时属于两个查询结果表的行,作为整个查询的最终结果表。【例】查询选修了C1课程并且也选修了C2课程的学生学号。SELECTSnoFROMEnrollmentWHERECno=C1INTERSECTSELECTSnoFROMEnrollmentWHERECno=C2,SELECT查询组合查询,第7章数据库对象管理,3将两个查询结果进行差运算差运算符是MINUS或EXCEPT。它将属于第一个查询结果表而不属于第二个查询结果表的行组成最终的结果表。【例】查询选修了C1课程但没有选修了C2课程的学生学号。SELECTSnoFROMEnrollmentWHERECno=C1MINUSSELECTSnoFROMEnrollmentWHERECno=C2,SELECT查询组合查询,第7章数据库对象管理,7.3视图管理,视图的基本概念视图管理页面创建视图修改视图删除视图,第7章数据库对象管理,视图的基本概念,视图特点着重于特定数据让用户着重于他们感兴趣的特定数据和所负责的特定任务。简化数据操作将经常使用的连接、选择、投影等定义为视图,可以简化数据操作。自定义数据允许用户以不同的方式查看数据。组合分区数据可以将来自不同表的数据看成一个结果表。,视图是一个虚拟的表,它在物理上并不存在。视图可以把表或其它视图的数据按照一定的条件组合起来,所以可以把它看成一个存储的查询。视图并不包含数据,它只是从基表中读取数据。,第7章数据库对象管理,视图管理页面,视图管理页面,第7章数据库对象管理,创建视图,“创建视图向导”窗口,第7章数据库对象管理,创建视图,CREATEVIEW语句创建视图:CREATEVIEWASSELECT语句;【例】创建计算机系的学生学号,姓名视图:CREATEVIEWMONITOR.C_VIEWASSELECTSno,SnameFROMSTUDENTSWHERESdept=Computer;,第7章数据库对象管理,修改视图,编辑视图页面,第7章数据库对象管理,修改视图,在CREATEVIEW语句中增加ORREPLACE子句,修改视图的定义。【例】修改视图C_VIEW,增加学生的性别,年龄和所在系信息:CREATEORREPLACEVIEWC_VIEWASSELECTSno,Sname,Ssex,Sage,SdeptFROMSTUDENTSWHERESdept=Computer,第7章数据库对象管理,删除视图,DROPVIEW语句删除指定视图。【例】删除视图C_VIEW:DROPVIEWC_VIEW;,第7章数据库对象管理,7.4索引管理,索引的概念索引管理页面创建索引修改索引删除索引,第7章数据库对象管理,索引的概念,UserName索引的存储和工作情况,UserName索引,Users表,第7章数据库对象管理,索引管理页面,索引管理页面,第7章数据库对象管理,创建索引,CREATEINDEX语句创建索引。【例】为表Users的列UserId创建索引,索引名为index_userid:CREATEINDEXindex_useridONUsers(UserId)TABLESPACEUsers;(1)当定义表时用关键字PRIMARYKEY指定主键后,则会自动按照该字段建立主键索引。(2)当定义表时用关键字UNIQUE指定惟一性约束时,则会自动按照该字段建立惟一索引。也可以使用CREATEUNIQUEINDEX语句创建惟一索引。,第7章数据库对象管理,创建索引,创建索引页面,第7章数据库对象管理,创建索引,索引选项页面,第7章数据库对象管理,修改索引,ALTERINDEX语句可以修改索引。【例】设置索引index_username不可用:ALTERINDEXindex_usernameUNUSABLEALTERINDEX中使用REBUILD关键词可重新使用索引index_username:ALTERINDEXindex_usernameREBUILDRENAMETO子句可以重命名索引。【例】将索引名index_username重命名为index_username_1:ALTERINDEXindex_usernameRENAMETOindex_username_1,第7章数据库对象管理,删除索引,DROPINDEX语句删除指定索引。【例】删除索引index_username:DROPINDEXindex_username;,第7章数据库对象管理,本章主要内容,7.1表管理7.2数据查询7.3视图管理7.4索引管理7.5序列管理,第7章数据库对象管理,7.5序列管理,创建序列修改序列删除序列序列的使用,第7章数据库对象管理,创建序列,序列管理页面,第7章数据库对象管理,创建序列,创建序列页面,第7章数据库对象管理,创建序列,语法格式为:CREATESEQUENCEsequence_nameSTARTWITHn1INCREMENTBYn2MAXVALUEn3|NOMAXVALUEMINVALUEn4|NOMINVALUECYCLE|NOCYCLECACHEn5|NOCACHEORDER|NOORDER,第7章数据库对象管理,创建序列,CREATESEQUENCE语句创建序列。【例】创建序列USER_S:CREATESEQUENCEUSER_SMINVALUE1NOMAXVALUESTARTWITH1INCREMENTBY1NOCYCLECACHE20;,第7章数据库对象管理,修改序列,编辑序列,第7章数据库对象管理,更改序列,要更改自己方案中的序列,用户必须具有ALTERSEQUENCE系统权限。要更改其他方案中的序列,必须具有ALTERANYSEQUENCE系统权限。利用ALTERSEQUENCE语句可以对序列进行更改。除了序列的起始值之外,可以对定义序列时设置的任何选项和参数进行更改。如果要更改序列的初始值必须删除后重
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 美术教师专业素养与教学能力提升培训
- 课程策划培训
- 客服主管培训
- 喷绒工艺流程图
- 培训成果总结汇报
- 进修教师培训开班仪式
- 合作协议合同简单模板:美甲店专用
- 国际贸易合同签订与履行实训报告
- 公共设施装饰工程合同
- 设备租赁合同版
- 第十二讲 建设社会主义生态文明PPT习概论2023优化版教学课件
- 工商管理实习周记十篇
- 幼儿园体育游戏活动评价表
- 2023年通管局安全员考试-培训及考试题库(导出版)
- GB/T 4857.22-1998包装运输包装件单元货物稳定性试验方法
- GB/T 25074-2010太阳能级多晶硅
- GB/T 23842-2009无机化工产品中硅含量测定通用方法还原硅钼酸盐分光光度法
- GA/T 1217-2015光纤振动入侵探测器技术要求
- 特种陶瓷介绍课件
- 有机物污染(环境化学)课件
- 安全生产培训合格证书样本
评论
0/150
提交评论