- 1、本文档共436页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 Oracle数据库基础--SQL语言??? 1、什么是SQL语言 2、SQL语言的发展历程 3、SQL语言应用情况 ? 4、SQL语言优点(特点) 5、SQL语言的分类 第二节? SQL的数据定义 一、基本表的创建、修改和删除1、创建基本表 2.基本表结构的修改 3.基本表的删除 二、视图的创建和删除1、视图的特点(作用): 2. 创建视图语法如下: 4.删除视图 三、索引的创建和删除 ? ?2、索引的创建 ?3、索引的删除 ▲ SELECT 语句完整的句法: ▲功能: 一、单表查询1、选择表中若干列(SELECT)(1)查询指定列(或全部列) (2)查询经过计算的列?? 对某些列的值用算术表达式计算后得其结果 ?例2:16学时为一个学分,将课表中的课程按学时数的升序排列。 ?例3:查询学生学号、姓名和出生年份,并按出生年份的升序排列,出生年份相同时,按学号的降序排列。 常用谓词 like、between、null、in 例8:查询所有女生的学号、姓名和年龄。 例10:查询所有姓赵的学生的学号和 姓名,并按年龄升序排列。 例11:查询所有年龄在17到18岁之间的学生的学号和姓名,并按年龄升序排列。 ? 例12:查询选修了课程但没参加考试的学生的学号和姓名。 ?? 4、使用集合函数(5个)??? 集合函数→垂直方向(一个值) ?例17:求男同学的总人数和平均年龄 ?例18:统计选修了课程的学生人数 ?例19:求选修课程c2的学生的最 高分和最低分。 例20:求每个同学平均成绩 例21:查询选修课程在三门以上的同学姓名(学号?) 例22:找出平均成绩90以上的女生姓名 例23:求LIU老师所授课程的每门课程的学生平均成绩。 例24:统计每一年龄选修课程的学生人数 例25:统计基本表S中男同学的每一年龄组(超过50人)的学生人数,要求查询结果按人数升序排列,人数相同按年龄降序排列。 三、多表联接查询 若一个查询同时涉及两个以上的表时(from 子句中有多个表名),称为连接查询。包括等值连接、自然连接、非等值连接、自身连接、外连接、复合条件连接。 ? 例28:查询选修c2或c4课程的学生学号和姓名 例30:查询选修c2和c4课程的学生学号。 例32:查询选修课程名为DB的学生学 号和姓名。 ?1、不相关子查询(一般子查询) 子查询的查询条件不依赖于父查询,这类子查询称为不相关子查询。 2)采用不相关子查询(一般子查询)实现 where子句中包含另一个能独立运行查询语句。 (3)带有 ALL 谓词的不相关子查询 表达式 比较运算符 all 子查询结果集例36:查询所有课程成绩均大于90分的学生 学号和姓名。 例37:查询比所有女同学年龄大的男同学的学号和姓名。 ★ all 等价于 not in ★ =any 等价于 in ★ =all、any没有意义 例:查询选修c2课程的学生学号和姓名 例39:查询没选修c2课程的学生学号和姓名 exist (子查询)、 not exist (子查询) 例33可采用相关子查询实现查询有一门课程成绩等于95分的学生学号和姓名。 例42:查询选修c2课程的学生学号和姓名。 例43:查询没有选课的学生姓名。 例44:查询选修c2课程的学生学号和姓名。 例45:查询所有课程成绩均及格的学生学号和姓名。 回顾例39:查询没选修c2课程的学生学号和姓名。 例46:检索选修全部课程的学生姓名(相当于查询这样的学生,没有一门课是他不选的) 例47:检索所学课程包含学生S3所学全部课程的学生学号(相当于查询学号X,对所有课程Y,只要S3选修了课程Y,则学生X也选修了Y) (2) 其他子句中的子查询 前面讲述的不相关子查询和相关子查询都是在SELECT语句的WHERE子句中使用子查询的例子。在其他DML语句和SELECT语句的其他子句中都可以使用子查询。如: 1、 FROM 子句中的子查询 2、HAVING 子句中的子查询 3、 多表查询时的子查询 4、其他DML语句中的子查询 1、 FROM 子句中的子查询 例:希望找出每个部门的平均工资,并且找出每个部门中的每一个雇员的工资与其所在部门的平均工资的差。 SQLSELECT e.deptno, e.ename, e.sal salary , a.average, e.sal-a.average difference FROM emp e, (SELECT deptno,avg(sal) average
文档评论(0)