第三章SQL语言(partⅡ).ppt
文本预览下载声明
lily_lgj@163.com Oracle技术专题 Oracle技术专题 SQL语言 本章内容 SQL概述 SQL数据定义功能 SQL数据查询功能 SQL数据更新功能 视图 SQL数据查询功能 语句结构 单表查询 连接查询 嵌套查询 集合查询 查询语句的一般结构 语句格式: SELECT [ALL|DISTINCT]目标列表达式[,目标列表达式]··· FROM 表名或视图名[,表名或视图名]··· [WHERE 条件表达式] [GROUP BY 列名1[HAVING条件表达式]] [ORDER BY 列名2[ASC|DESC]]; 描述: 根据WHERE子句的条件表达式,从FROM子句指定的基本表或视图中找出满足条件的元组,再按SELECT子句中的目标列表达式,选出元组中的属性值形成结果表。如果有GROUP BY子句则将结果按列名1的值进行分组,该属性列相等的元组为一个组。通常会在每组中使用集函数。如果GROUP子句带有HAVING短语,则只有满足指定条件的组才予输出。如果有ORDER BY子句,则结果表还要按列名2的值升序或降序排列。 单表查询 选若干列 查询指定列 例1: SELECT Sno,Sname FROM Student; 查询全部列 例2:SELECT *FROM Student; 查询经过计算的值 例3:SELECT Sname, 2008-Sage FROM Student; 另外,用户可以通过指定别名来改变查询结果的列标题, 这对于含算术表达式、常量、函数名的目标列表达式尤 为有用。例如对于上例,可以如下定义列别名 : SELECT Sname , 2008-Sage Year_of_Birth FROM Student; 单表查询 选若干元组 消除重复行 原本不完全相同的元组,经过向某些列投影操作后,可能变成相同的行了。如果想去掉结果表中的重复行,必须指定DISTINCT短语,没有指定,则使用缺省值ALL,意为保留结果表中所有的行。 [例]:SELECT Sage [例]:SELECT DISTINCT Sage FROM Student; FROM Student; 结果为: 结果为: Sage Sage ------------ ------------ 20 20 22 22 20 22 单表查询 选若干元组 查询满足条件的元组 查询指定条件的元组可以通过WHERE子句来实现。WHERE常用的查询条件如下表所示 。 单表查询 选若干元组 查询满足条件的元组 比较 [例]:查所有年龄在20岁以下的学生姓名及其年龄 SELECT Sname, Sage FROM Student WHERE Sage 20; [例]:查考试成绩有不及格的学生的学号 SELECT DISTINCT Sno FROM grade WHERE Gmark 60; 这里使用了DISTINCT,当一个学生有多门课程不及格,他的学号也只列一次。 单表查询 选若干元组 查询满足条件的元组 确定范围 谓词BETWEEN AND与NOT BETWEEN AND的一般格式为 属性列[NOT] BETWEEN a AND b 查询属性值在(或不在)指定范围内的元组。其中a为范围的下限(低值),b为范围的上限(高值)。选出的元组包括边界a与b,要求a=b。 [例]:查询年龄在20至23岁之间的学生的姓名和年龄
显示全部