懒人摘抄(内容转自CSDN资源中教程)-数据查询07-子查询

原创 2007年09月19日 09:50:00

相关子查询

在前面的例子中,每个子查询仅执行一次,返回的值为主查询的WHERE子句所用。在有的查询中,子查询不只执行一次,例如,要显示其成绩比该课程平均成绩高的成绩表,其主查询为:

SELECT sno,cno,degree

FROM score

WHERE degree >(待选学生所修课程的平均分)

该子查询为:

SELECT AVG(degree)

FROM score

WHERE cno=(主查询待选行的课程号cno)

这样,主查询在判断每个待选行时,必须“唤醒”子查询,告诉它该学生选修的课程号,并由子查询计算课程的平均成绩,然后将该学生的degree与平均成绩进行比较,找出相应的符合条件的行,我们把这种子查询称为相关子查询

5.29查询成绩比该课程平均成绩低的学生成绩表。

SELECT sno,cno,degree

FROM score a

WHERE degree<

   (SELECT AVG(degree)

    FROM score b

    WHERE a.cno=b.cno)

本例执行结果如下:

sno   cno        degree              

----- ---------- ----------

101   3-105      64

109   3-105      76

108   3-105      78

109   3-245      68

105   3-245      75

107   6-166      79

108   6-166      81

理解上述相关子查询的关键是别名,它出现在主查询“FROM score a”和子查询“FROM score b”中。这样同一个表相当于两个表,当在子查询中使用a.cno时,它访问待选行的cno,这时是一个常量,从而在b别名中找出该常量课程的平均分。由于这个过程很费时,因此不要对大于使用相关子查询。 

懒人摘抄(内容转自CSDN资源中教程)-数据查询00

数据查询数据库存在的意义在于将数据组织在一起,以方便查询。“查询”的含义就是用来描述从数据库中获取数据和操纵数据的过程。SQL语言中最主要、最核心的部分是它的查询功能。查询语言用来对己经存在于数据库中...
  • popkiler
  • popkiler
  • 2007年09月19日 09:44
  • 385

懒人摘抄(内容转自CSDN资源中教程)-数据查询08-带EXISTS测试的子查询

带EXISTS测试的子查询   在子查询中,还可以使用EXISTS,它一般用在WHERE子句中,其后紧跟一个SQL子查询,从而构成一个条件,当该子查询至少存在一个返回值时,这个条件为真(.T.),否则...
  • popkiler
  • popkiler
  • 2007年09月19日 09:51
  • 431

懒人摘抄(内容转自CSDN资源中教程)-数据查询06-子查询

子查询当一个查询是另一个查询的条件时,称之为子查询。子查询可以使用几个简单命令构造功能强大的复合命令。子查询最常用于SQL命令的WHERE子句中,我们按照子查询返回单个值还是一组值(此时子查询前应接关...
  • popkiler
  • popkiler
  • 2007年09月19日 09:49
  • 476

懒人摘抄(内容转自CSDN资源中教程)-修改表

修改表SQL语言提供了ALTER TABLE语句来修改表的结构。基本语法如下:ALTER TABLE table_name  ADD [column_name data_type]       [PR...
  • popkiler
  • popkiler
  • 2007年09月19日 09:42
  • 366

懒人摘抄(内容转自CSDN资源中教程)-建表

表的创建使用CREATE TABLE语句来建立表,其语法如下:CREATE TABLE table_name(    column_namel data_type [NULL | NOT NULL] ...
  • popkiler
  • popkiler
  • 2007年09月19日 09:41
  • 428

懒人摘抄(内容转自CSDN资源中教程)-删除表

删除关联和表使用SQL语言要比使用企业管理器删除表容易得多。删除表的语法如下:DROP TABLE table_name其中,“table_name”指出要删除表的名称。例如,要删除book表,可执行...
  • popkiler
  • popkiler
  • 2007年09月19日 09:43
  • 354

懒人摘抄(内容转自CSDN资源中教程)-数据查询02-选择查询

选择查询选择查询就是指定查询条件,只从表提取或显示满足该查询条件的记录。为了选择表中满足查询条件的某些行,可以使用SQL命令中的WHERE子句。WHERE子句的查询条件是一个逻辑表达式,它是由多个关系...
  • popkiler
  • popkiler
  • 2007年09月19日 09:46
  • 353

懒人摘抄(内容转自CSDN资源中教程)-数据查询03-排序查询

排序查询通过在SELECT命令中加入ORDER BY子句来控制选择行的显示顺序。ORDER BY子句可以按升序(缺省或ASC)、降序(DESC)排列各行,也可以按多个列来排序。注意:ORDER BY子...
  • popkiler
  • popkiler
  • 2007年09月19日 09:46
  • 529

懒人摘抄(内容转自CSDN资源中教程)-数据查询01-投影查询

投影查询使用SELECT语句可以选择查询表中的任意列,其中,“列表名”指出要检索的列的名称,可以为一个或多个列。当为多个列时,中间要用“,”分隔。FROM子句指出从什么表中提取数据,如果从多个表中取数...
  • popkiler
  • popkiler
  • 2007年09月19日 09:45
  • 385

懒人摘抄(内容转自CSDN资源中教程)-数据查询05-表的连接查询

表的连接查询    在数据查询中,经常涉及到提取两个或多个表的数据,这就需要使用表的连接来实现若干个表数据的联合查询。在一个查询中,当需要对两个或多个表连接时,可以指定连接列,在WHERE子句中给出连...
  • popkiler
  • popkiler
  • 2007年09月19日 09:49
  • 529
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:懒人摘抄(内容转自CSDN资源中教程)-数据查询07-子查询
举报原因:
原因补充:

(最多只允许输入30个字)