版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第6章数据库查询,第六章 数据库的查询,第6章数据库查询,本章重点,SELECT语句的使用 使用SELECT语句进行简单的查询 使用SELECT语句进行分组筛选和汇总计算 使用SELECT语句进行连接查询 使用SELECT语句进行子查询,第6章数据库查询,本章难点,使用SELECT语句进行连接查询 使用SELECT语句进行连子查询 GROUP BY语句的使用 使用HAVING子句对分组数据的进一步筛选,第6章数据库查询,6.1 SELECT语句概述,SELECT 从表中检索数据 可以是简单或条件 SELECT 选择表中所有列的数据 SELECT * FROM table_name; 选择表中指
2、定列的数据 SELECT colname1, colname2, , colnamen FROM table_name;,第6章数据库查询,6.1.2 SELECT语句的执行,使用企业管理器 使用查询分析器,第6章数据库查询,6.2 简单查询,简单查询是按照一定的查询条件在单表上查询数据,并对查询结果排序和保存 1、选择表中指定的列 使用SELECT语句选择一个表中的某些列进行查询,要在SELECT后写出要查询的字段名,并用逗号分隔,服务器将按照SELECT后给出的列的顺序显示满足查询条件的列。,第6章数据库查询,6.2 简单查询,例题6.1 查询XS数据库的XSDA表中所有学生的姓名、性别、
3、系名和总学分。 USE XS SELECT 姓名,性别,系名,总学分 FROM XSDA GO,第6章数据库查询,6.2 简单查询,例题6.2 查询XSDA表中所有学生的所有列的信息。 USE XS SELECT * FROM XSDA GO,第6章数据库查询,6.2 简单查询,2、指定列的别名(修改查询结果中的列标题) 当希望查询结果中的某些列不显示表结构中规定的列标题,而使用用户自己另外选择的列标题时,可以在列名之后用AS子句更改查询结果中列标题名。,第6章数据库查询,6.2 简单查询,例题6.3 查询XSDA表中所有学生的学号、姓名、查询结果中要求各列的标题分别指定为number和nam
4、e. 1、 别名 别名 SELECT 学号 AS number,姓名 AS name FROM XSDA 2、 SELECT 学号 number,姓名 name FROM XSDA 别名 别名 3、 SELECT number=学号,name=姓名 FROM XSDA GO,第6章数据库查询,6.2 简单查询,2、修改查询结果中的列标题 注意:当自定义的列标题中含有空格时,必须使用单引号将标题括起来。例如: USE XS SELECT student number=学号,姓名 AS student name FROM XSDA GO,第6章数据库查询,6.2 简单查询,3、查询导出列(计算列值
5、) Select子句中的列表达式不仅可以是表中的属性列,也可以是通过计算得到的列,称为导出列。一般情况下,导出列是通过运算符和函数得到的表达式 例题6.4 假设XSCJ表中所有学生的成绩均为期未考试成绩,计算总成绩时,只占80%,要求按照公式:期未成绩成绩0.8 USE XS SELECT 学号,课程编号,期未成绩成绩0.8 FROM XSCJ GO,第6章数据库查询,6.2 简单查询,4.消除结果集中的重复行 对表只选择某些列时,可能会出现重复行,可以使用DISTINCT关键字消除结果集中的重复行。,第6章数据库查询,DISTINCT 子句,查找 employeestatistic 表中职位
6、的唯一性列表 SELECT DISTINCT position FROM employeestatistics 结果将显示为 position - Manager Staff Entry-level,第6章数据库查询,DISTINCT 子句,与DISTINCT相反,当使用关键字ALL时,将保留结果集中的所有行。当SELECT语句中省略ALL与DISTINCT时,默认值为ALL.,第6章数据库查询,DISTINCT 子句,例6.5 查询XSDA表中所有学生的性别和系名。 USE XS SELECT ALL 性别,系名 FROM XSDA GO 或 USE XS SELECT 性别,系名 FROM
7、 XSDA GO,第6章数据库查询,5.使用TOP n指定返回查询结果的前n行记录 例6.6:select TOP 4 * FROM sales,6.2 简单查询,第6章数据库查询,N是一个正整数,表示返回查询结果集的前N行。若带PERCENT关键字,则表示返回结果集的前n%行 TOP N PERCENT 例题6.7 查询XSCJ表中所有学生的学号、课程编号和成绩,只返回结果集的前10%行。 USE XS SELECT TOP 10 PERCENT 学号,课程编号,成绩 FROM XSCJ GO,6.2 简单查询,第6章数据库查询,使用 WHERE 子句来指定条件 SELECT 语句,限制返回
8、的数据行 WHERE子句用于指定搜索条件,过滤不符合查询条件的数据记录,使用比较灵活而且复杂。可以使用的条件包括比较运算,逻辑运算,范围,模糊匹配以及未知值等,6.2.2 WHERE子句,第6章数据库查询,比较表达式作查询条件,运算符意义 =等于 大于 =大于或等于 或 !=不等于,使用比较运算符可以让表中的值与指定值或表达式作比较,第6章数据库查询,比较表达式作查询条件的示例,1、SELECT employeeidno FROM employeestatistics WHERE salary = 50000; 2、WHERE描述语句称为条件。条件同样可用于文本列。例如 SELECT empl
9、oyeeidno FROM employeestatistics WHERE position = Manager; 3、语句中出现的的任何文本都要用单引号括起来。注意WHERE子句中Manager的值是区分大小写的,需要和在表中存储的方式相匹配,第6章数据库查询,逻辑表达式作查询条件,逻辑运算符优先顺序 NOT AND OR,第6章数据库查询,逻辑运算符,AND 运算符 连接两个或多个条件,显示满足所有条件的所有行 SELECT employeeidno FROM employeestatistics WHERE salary 40000 AND position = Staff OR 运算
10、符 连接两个或多个条件,显示至少满足一个条件的所有行 SELECT employeeidno FROM employeestatistics WHERE salary 40000 OR benefits 10000,第6章数据库查询,模式匹配,LIKE谓词用于指出一个字符串是否与指定的字符串相匹配。 在实际应用中,用户不是总能够给出精确的查询条件。因此,经常需要根据一些不确切的线索来搜索信息,这就是模糊查询。 LIKE进行模式匹配时,如果与通配符配合使用,即可进行模糊查询。SQL Server提供了以下四种通配符供用户灵活实现复杂的查询条件,通配符表如6-2所示。,第6章数据库查询,模式匹配,
11、表6-2 通配符列表,第6章数据库查询,模式匹配,例6.8 查询XSDA表中姓“王”或“李”并且单名的学生情况。 USE XS SELECT * FROM XSDA WHERE 姓名 LIKE 王李_ GO,第6章数据库查询,模式匹配,查找姓是以“S”开头的所有雇员 SELECT employeeidno FROM employeeaddress WHERE lastname LIKE S% 1、百分号(%)用于表示零个或多个字符。上述示例使用“S%” ,指定了任何以“S”开头,后面有零个或多个字符的姓。 2、要查询姓以“S”结尾的雇员,则使用“%S” 3、要查询姓中包含了“S”的人,则,可以
12、使用“%S%” 4、要查询姓的第三个字母是“S”的雇员,则使用“_S%”。 5、”_”表示一个未知字符,两个“_”,第6章数据库查询,范围比较,用于范围比较的关键字有: BETWEEN和IN BETWEEN运算符查找给定范围内的值 找出特定薪水范围($30000 到 $50000)内的所有雇员 SELECT employeeidno FROM employeestatistics WHERE salary BETWEEN 30000 AND 50000,第6章数据库查询,范围比较,使用IN关键字可以指定一个值表,值表中列出所有可能的值,当与值表中任意一个匹配时,返回true,否则false 查
13、询是经理或职员的所有雇员的SQL语句 SELECT employeeidno FROM employeestatistics WHERE position =Manager OR position= Staff 该查询也可以用 IN 运算符来写 SELECT employeeidno FROM employeestatistics WHERE position IN (Manager, Staff) 将作为比较的一组值在IN运算符后面用括号括起来,并且值之间用逗号分隔,第6章数据库查询,空值比较,当需要判定一个表达式的值是否为空值,使用IS NULL关键字,格式为: Expression IS
14、 NOT NULL 说明:当不使用NOT 时,若表达式EXPRESSION的值为空值,返回TRUE,否则返回FALSE:当使用NOT时,结果刚好相反。 例6.9 查询XSDA表中没有备注的学生情况。 USE XS SELECT * FROM XSDA WHERE 备注 IS NULL GO,第6章数据库查询,ORDER BY子句,在应用中经常要对查询的结果排序输出,例如将学生成绩由高到低排序输出。在SELECT语句中,使用ORDER BY子句对查询结果进行排序。 关键字ASC表示升序排列,DESC表示降序排列,系统默认值为ASC. 例6.10 将XSDA表中所有“管理系”学生按年龄从小到大的顺
15、序排序输出。 USE XS SELECT * FROM XSDA WHERE 系名管理 ORDER BY 出生日期 DESC GO,第6章数据库查询,6.3分类汇总,对表数据进行检索时,经常需要对查询结果进行分类、汇总或计算。例如,在学生数据库中求某门课程的总成绩、统计各分数段的人数等。本节将介绍SELCET语句中用于数据统计的子句及函数,第6章数据库查询,聚合函数,聚合函数用于计算表中的数据,只能在select语句中使用。返回单个计算结果 重要的聚合函数有 SUM、AVG、MAX、MIN 和 COUNT SUM()函数返回在满足条件的行集合中给定列的值的总和 1、SELECT SUM(sal
16、ary) FROM employeestatistics,第6章数据库查询,聚合函数,AVG()函数返回在满足条件的行集合中给定列的值的平均值 2、SELECT AVG(salary) FROM employeestatistics MIN()函数返回在满足条件的行集合中给定列的最小值 3、SELECT MIN(benefits) FROM employeestatistics WHERE position = Manager; MAX()函数返回在满足条件的行集合中给定列的最大值 4、SELECT MAX(SALARY) FROM employeestatistics,第6章数据库查询,聚合
17、函数 COUNT,SELECT COUNT(*) FROM employeestatistics WHERE position = Staff; COUNT 函数统计职位为“Staff” 的雇员的数目 COUNT函数把*作为列名,*表示表中的所有列。实际上COUNT是统计满足条件的所有行的数目 * 只可用于 COUNT 函数,而不能用于其它聚合函数 Count(字段)表示统计表中这个字段的所有行数,count(*)表示统计整张表的所有行数,第6章数据库查询,分组筛选,分组是按照某一列数据的值或某个列组合的值将查询出的行分成若干组,每组在指定列或列组合上具有相同的值。分组可通过使用GROUP B
18、Y子句来实现。 简单分组 例6.11:求XSDA表中男女生人数。 USE XS SELECT 性别,COUNT(*) AS 人数 FROM XSDA GROUP BY 性别 GO,第6章数据库查询,分组筛选,GROUP BY后面的字段是分组的依据 GROUP BY是配合聚合函数一块使用的 使用了group by的select语句中出现的字段只能是聚合函数或group by后面的字段名 例如:SELECT buyerid, COUNT(item) AS items FROM toys GROUP BY buyerid 一般group by后面的字段都应该出现在SELECT 增强查询结果的可读性,
19、第6章数据库查询,GROUP BY 子句,SELECT 语句的输出需要基于某个属性值,对现有数据进行逻辑分组 例6.12:找出每个购买者购买的玩具数目 SELECT buyerid, COUNT(item) AS items FROM toys GROUP BY buyerid 按购买者进行逻辑分组,在每一组的数据上,应用COUNT函数以统计每一组的商品总数,第6章数据库查询,分组筛选,例6.13 求XSDA表中各系的男、女生各自的总学分的平均值。 USE XS SELECT 系名,性别,AVG(总学分)AS 总学分的平均值。 FROM XSDA GROUP BY 系名,性别 GO,第6章数据
20、库查询,分组筛选,使用HAVING筛选结果 使用GROUP BY子句和聚合函数对数据进行分组后,还可以使用HAVING子句是对分组后的数据进一步筛选。 注意:1、如果语句中出现了HAVING子句,那么一定会出现group by, HAVING子句不能在没有group by的情况下单独出现 2、但是group by可以没有having子句单独存在,第6章数据库查询,分组筛选,例:6.14 查找学生档案表中平均成绩在75分以上的学生的学号和平均分。 select 姓名,avg(成绩) from 学生档案 group by 姓名 having avg(成绩)=75,第6章数据库查询,HAVING 子
21、句,如果要查询购买的商品超过两件的购买者购买的商品数目,必须引入COUNT(item)2 SELECT buyerid , COUNT(item) AS items FROM toys GROUP BY buyerid HAVING COUNT(item) 2,第6章数据库查询,分组筛选,注意在SELECT语句中,当WHERE、GROUP BY与HAVING子名同时被使用时,要注意它们的作用和执行顺序:WHERE用于筛选由FROM指定的数据对象,即从FROM指定的基表或视图中检索满足条件的记录;GROUP BY 用于WHERE的筛选结果进行分组;HAVING则是对使用GROUP BY分组以后的
22、数据进行过滤。,第6章数据库查询,分组筛选,例6.15 查找选修课超过3门,并且成绩在90分以上的学生的学号。 USE XS SELECT 学号 FROM XSCJ WHERE 成绩90 GROUP BY 学号 HAVING COUNT( * )3 GO,注: 1、goup by 是对where条件筛选后的结果进行分组,所以group by放在where后面 2、having是对分组后的结果进行筛选,所以having 出现在group by后面,第6章数据库查询,计算与汇总,计算与汇总是生成合计作为附加的汇总行出现在结果集的最后。 例6.16 查找信息系所有男生的学号、姓名、性别和系名,并产生
23、一个学生总人数行。 USE XS SELECT 学号,姓名,性别,系名 FROM XSDA WHERE 系名=信息 AND 性别1 COMPUTE CONUNT(学号),第6章数据库查询,计算与汇总,例6.17 将学生按系名排序,并汇总各系的人数和总学分的平均值。 USE XS SELECT 学号,姓名,系名,总学分 FROM XSDA ORDER BY 系名 COMPUTE COUNT(学号), AVG(总学分) BY 系名 GO,第6章数据库查询,计算与汇总,注意 COMPUTE或COMPUTE BY子句中的表达式,必须出现在选择列表中,并且必须将其指定为与选择列表中的某个表达式完全一样,
24、不能使用在选择列表中指定的列的别名。 COMPUTE或COMPUTE BY子句中,不能指定为ntext、text、image数据类型。,第6章数据库查询,计算与汇总,如果使用COMPUTE BY,则必须也使用ORDER BY子句。表达式必须与在ORDER BY后列出的子句相同或是其子集,并且必须按相同的序列。例如,如果ORDER BY子句是ORDER BY a,b,c ,则COMPUTE子句可以是下面的任意一个(或全部); COMPUTE BY a,b,c COMPUTE BY a,b COMPUTE BY a 在SELECT INTO 语句中不能使用COMPUTE。因此,任何由COMPUTE
25、生成的计算结果不出现在用SELECT INTO语句创建的新表内,第6章数据库查询,连接查询,连接查询是关系数据库中最主要的查询方式,连接查询的目的是通过加载连接字段条件将多个表连接起来,以便从多个表中检索用户所需要的数据。 在T-SQL语句中,连接查询有两个大类表示形式,一类是符合SQL标准连接谓词的表示形式,另一类是T-SQL扩展使用的关键字JOIN的表示形式。,第6章数据库查询,连接谓词,可以在SELCET语句的WHERE子句中使用比较运算符给出连接条件对表进行连接,这种表示形式被称为连接谓词表示形式。 例6.18 查找XS数据库中每个学生的情况以及选修的课程情况。 SELECT 学生档案
26、.*,学生成绩.* FROM 学生档案, 学生成绩 WHERE 学生档案.学号=学生成绩.学号,第6章数据库查询,连接谓词,SELECT 学生成绩.学号,姓名,分数 FROM 学生档案, 学生成绩 WHERE 学生档案.学号=学生成绩.学号,第6章数据库查询,连接谓词,注意:连接谓词中的两个列(即字段)称为连接字段,他们必须是可比的。例如,本例中连接谓词中的两个字段分别是XSDA表和XSCJ表中的学号字段。 连接谓词中的比较运算符可以是“”、“=”、“!=”、“”、“!”,当比较运算符是“=”时,就是等值连接。若在目标列中去除相同的字段名,则为自然连接。,第6章数据库查询,连接谓词,例6.19
27、 对例6.28进行自然连接查询 USE XS SELECT XSDA.*, XSCJ.课程编号,XSCJ.成绩 FROM XSDA,XSCJ WHERE XSDA.学号=XSCJ.学号 GO,第6章数据库查询,连接谓词,例6.20 查找选修软件工程课程并且成绩优秀的学生的姓名及成绩。 SELECT 姓名,分数 FROM 学生档案,学生成绩 WHERE 学生档案.学号=学生成绩.学号 AND 课程=软件工程 AND 分数=90,第6章数据库查询,连接谓词,例6.21 查找选修了“计算机文化基础”课程并且成绩优秀的学生的学号、姓名、课程名称及成绩。 USE XS SELECT XSDA.学号,姓名
28、,课程名称,成绩 FROM XSDA,KCXX,XSCJ WHERE XSDA,学号=XSCJ.学号 AND KCXX.课程编号=XSCJ.课程编号 AND 课程名称=计算机文化基础 AND 成绩=90 GO,第6章数据库查询,JOIN关键字指定的连接,T-SQL扩展使用的关键字JOIN指定连接的表示方式,使表的连接运算能力得到增强。以JOIN关键字指定的连接有以下3种类型。 内连接 内连接是按照ON所指定的连接条件合并两个表,返回满足条件的行。 例6.22 查找XS数据库中每个学生的情况以及选修的课程情况。 USE XS SELECT * FROM XSDA INNER JOIN XSCJ
29、ON XSDA.学号=XSCJ.学号 GO,第6章数据库查询,1、内联接,学生表:,班级表:,第6章数据库查询,1、内联接,SELECT 学号, 学生姓名, 性别, 出生时间, 班级名称, 所在学院, 专业名称 FROM 学生,班级 WHERE 学生.班级编号=班级.班级编号,第6章数据库查询,1、内联接,这是JOIN最常见用法,称为内连接,在运行后,上面的语句会变成如下格式,系统会自动增加部分语句: SELECT 学号, 学生姓名, 性别, 出生时间, 班级名称, 所在学院, 专业名称 FROM 学生 INNER JOIN 班级 ON 学生.班级编号=班级.班级编号 内连接是仅当至少有一个同
30、属于两表的数据行符合连接条件时,才返回数据行.内连接消除了与另一张表中的任何不匹配的行,第6章数据库查询,2、左外连接,左外连接(LEFT OUTER JOIN):返回参与联接查询的表中所有匹配的行和所有来自左表(第一张表)的不符合指定条件的行 左外连接的步骤: 1、取出第一张表和第二张表所有匹配的行 2、取出存在于第一张表中但与第二张表中的记录没有匹配关系的记录,第二张表中没有匹配的列用NULL填充(取出第一张表中剩下的所有记录,第二张表的字段用NULL填充),第6章数据库查询,2、左外连接,第6章数据库查询,2、左外连接,ANSI语法实现 SELECT 学生.学生姓名,学 生.性别,班级.
31、班级名称 FROM 学生 where学生.班级编号*=班级.班级编号,第6章数据库查询,2、左外连接,Program Student,第6章数据库查询,2、左外连接,用SQL语句说明Left Outer JOIN SELECT gram_name, program.course_no, program.grade_points, student.student_name, student.course_no FROM program left outer join student on program.course_no=student.course_no,第6章数据库查
32、询,3、右外连接,(RIGHT OUTER JOIN):返回参与联接查询的表中所有匹配的行和所有来自右表(第二张表)的不符合指定条件的行 右外连接的步骤: 1、取出第一张表和第二张表所有匹配的行 2、取出存在于第二张表中但与第一张表中的记录没有匹配关系的记录,第一张表中没有匹配的列用NULL填充(取出第二张表中剩下的所有记录,第一张表的字段用NULL填充),第6章数据库查询,3、右外连接,第6章数据库查询,3、右外连接,第6章数据库查询,3、右外连接,Program Student,第6章数据库查询,3、右外连接,用SQL语句说明Right Outer JOIN SELECT program.
33、program_name, program.course_no, program.grade_points, student.student_name, student.course_no FROM program right outer join student on program.course_no=student.course_no,第6章数据库查询,4、完全外连接,根据 JOIN 条件中指定的基于值的等价条件,将第一张表中的记录与第二张表中的记录进行映射 这个 JOIN 是 Left Outer JOIN 和 Right Outer JOIN 的组合 包括不满足基于等价条件的所有记录
34、,第6章数据库查询,4、完全外连接,第6章数据库查询,4、完全外连接,第6章数据库查询,4、完全外连接,staff_name,第6章数据库查询,4、完全外连接,用SQL语句说明Left Outer JOIN SELECT gram_name, program.course_no, program.grade_points, student.student_name, student.course_no FROM program full outer join student on program.course_no= student.course_no,第6章数据库查询,
35、交叉连接,交叉连接没有ON子句,也不允许带有WHERE子句,它返回查询对象中所有行的笛卡尔积,查询结果的数据行数为每个查询对象所含数据行的乘积,第6章数据库查询,第6章数据库查询,自连接,连接操作不仅可以在不同的表上进行,也可以在同一张表内进行自身连接,即将同一个表的不同行连接起来。自连接可以看作一张表的两个副本之间的连接。若要在一个表中查找具有相同列值的行,则可以使用自连接,使用自连接时需要为表指定两个别名,使之逻辑上成为两张表。对所有列的引用均要用别名限定。,第6章数据库查询,自连接,例 6.23 在表中查找出与学号为09w1在同一个班的学生的姓名和学号 SELECT XSDA1.姓名,X
36、SDA1.学号 FROM 学生信息 AS XSDA1 JOIN 学生信息 AS XSDA2 ON XSDA1.班级号=XSDA2.班级号 WHERE XSDA2.学号=09w1 and XSDA1.学号XSDA2.学号,第6章数据库查询,6.5嵌套查询(子查询),嵌套查询概述 一个SELECT-FROM-WHERE语句称为一个查询块 将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为嵌套查询,第6章数据库查询,SELECT 姓名外层查询/父查询 FROM 学生档案 WHERE 学号 IN (SELECT 学号 内层查询/子查询 FROM 班级信息 WHERE 班
37、级号= w2 );,6.5嵌套查询(子查询),第6章数据库查询,6.5嵌套查询,不相关子查询 子查询的查询条件不依赖于父查询 相关子查询 子查询的查询条件依赖于父查询,分类:,第6章数据库查询,不相关子查询 是由里向外逐层处理。即每个子查询在 上一级查询处理之前求解,子查询的结果 用于建立其父查询的查找条件。,6.5嵌套查询,第6章数据库查询,子查询 1、带有IN运算符的子查询 操作符IN用于WHERE子句中时,通常用来确定某个属性列的值是否包含在一个表达式或者常量的集合中。同样,操作符IN也可以用于子查询,用来确定某个列值是否在内部查询的结果集中。 在带有IN运算符的子查询中,子查询的结果是
38、一个结果集。,6.5嵌套查询,第6章数据库查询,子查询 1、带有IN运算符的子查询 在执行包含子查询的select语句时,系统先执行子查询,产生一个结果表,在执行外层查询。 例6.24:查找选修了软件工程课程的学生情况。 此查询要求可以分步来完成 确定选修了软件工程课程学生的学号 SELECT 学号 FROM 学生成绩 where 课程=软件工程,6.5.1带有IN谓词的子查询,运行结果:,第6章数据库查询,SELECT * FROM 学生档案 WHERE 学号 IN (SELECT 学号 FROM 学 生成绩 where 课程=软件 工程),6.5.1带有IN谓词的子查询,SELECT *
39、FROM 学生档案 WHERE 学号 IN ( 1, 4),显示学生的详细信息,将第一步查询嵌入到第二步查询的条件中,等价于,第6章数据库查询,select * from xsda where 学号 not in (select 学号 FROM xscj),布置学生思考:查询未选修任何课程的学生情况,6.5.1带有IN谓词的子查询,P275 4.如何按照上例写代码。,第6章数据库查询,例6.25 查询选修了课程名为“数据结构”的学生学号和姓名 SELECT 学号,姓名 最后在xsda关系中 FROM xsda 取出学号和姓名 WHERE 学号 IN (SELECT 学号 然后在xscj关系中找
40、出选 FROM xscj 修了104号课程的学生学号 WHERE 课程编号 IN (SELECT 课程编号 首先在kcxx关系中找出“数据结构 FROM kcxx”的课程号,结果为104 WHERE 课程名称= 数据结构),6.5.1带有IN谓词的子查询,第6章数据库查询,带有比较运算符的子查询 在带有比较运算符的子查询中,子查询的结果是一个单值。父查询通过比较运算符将“父查询”中的表达式与子查询结果(单值)进行比较,如果相等运算的结果为TRUE,否则返回FALSE。 常用的比较运算符有: ,= , ,!= ,! ,! 。,6.5.2比较子查询,第6章数据库查询,列出选修了104号课程,且成绩高于该课程平均分的学生的学号。,6.5.2比较子查询,select 学号 FROM xscj where 课程编号=104 and 成绩(select avg(成绩) from xscj where 课程编号=104),列出选修了104号课程,且成绩高于该课程 平均分的学生信息。?,第6章数据库查询,谓词语义 ANY:任意一个值 AL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年小学成语故事《价值连城》文物成语完整教案
- 2026年小学成语故事《才高八斗》才华赏析公开课教案
- 税务师税法二章节练习与真题汇编
- 注册会计师CPA经济法综合练习及案例分析集锦
- 执业药师(西药)药学专业知识一冲刺练习1000题
- 劈裂式肺段切除技术临床应用规范
- 项目六 基础策略
- 2027年灵活合同模板二篇
- 规范的药品销售合同(2026版)
- 房地产代理合同原
- 全国投入产出调查培训手册工业分册
- GB/T 28784.5-2022机械振动船舶振动测量第5部分:客船和商船适居性振动测量、评价和报告准则
- 传染病产妇的产程护理
- 职业技术学院《农产品市场营销》课程标准
- 日本旭硝子F-9010简介
- 《财务会计知识讲解》课件
- 人教版新高一英语必修一单词表(默写版)
- 失禁性皮炎病例护理查房课件
- 核电基础知识考试题及答案
- 《学习指导与练习 语文 基础模块 上册》参考答案
- 2024年秋季新人教版历史七年级上册全册教案
评论
0/150
提交评论