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

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

EXISTS测试的子查询

   在子查询中,还可以使用EXISTS,它一般用在WHERE子句中,其后紧跟一个SQL子查询,从而构成一个条件,当该子查询至少存在一个返回值时,这个条件为真(.T.),否则为假(.F.)

注意:使用EXISTS引入的子查询在以下几方面与其它子查询略有不同:

·  EXISTS关键字前面没有列名、常量或其它表达式。

·  EXISTS引入的子查询的选择列表通常几乎都是由星号(*)组成。由于只是测试是否存在符合子查询中指定条件的行,所以不必列出列名。

【例5.30查询所有任课教师的tnamedepart

SELECT tname,depart

FROM teacher a

WHERE EXISTS

   (SELECT *

     FROM course b

     WHERE a.tno=b.tno)

本例执行结果如下:

tname    depart    

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

李诚       计算机系 

王萍       计算机系 

张旭       电子工程系

本例也有一个相关子查询,其执行过程是:从头到尾扫描teacher表的行,对于每个行,执行子查询,此时,a.tno是一个常量,子查询便是在course表中查找tno等于该常量的行,如果存在这样的行,EXISTS子句便返回真,主查询屏幕显示teacher表中的当前行;如果子查询未找到这样的行,EXISTS子句返回假,主查询不显示teacher表中的当前行。主查询继续查找teacher表的下一行,其过程与上述相同。

5.31查询所有未讲课的教师的tnamedepart

SELECT tname,depart

FROM teacher a

WHERE NOT EXISTS

(SELECT *

    FROM course b

    WHERE a.tno=b.tno)

本例执行结果如下:

tname    depart    

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

刘冰       电子工程系

本例的执行过程与上例基本相同,只是将EXISTS子句的结果取反,当子查询找到了这样的行,WHERE条件为假;当子查询未找到这样的行,则WHERE条件为真,所示查询结果与上例正好相反。 

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

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

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

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

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

相关子查询在前面的例子中,每个子查询仅执行一次,返回的值为主查询的WHERE子句所用。在有的查询中,子查询不只执行一次,例如,要显示其成绩比该课程平均成绩高的成绩表,其主查询为:SELECT sno,...
  • popkiler
  • popkiler
  • 2007年09月19日 09:50
  • 469

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

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

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

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

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

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

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

表的连接查询    在数据查询中,经常涉及到提取两个或多个表的数据,这就需要使用表的连接来实现若干个表数据的联合查询。在一个查询中,当需要对两个或多个表连接时,可以指定连接列,在WHERE子句中给出连...
  • popkiler
  • popkiler
  • 2007年09月19日 09:49
  • 529

懒人摘抄(内容转自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资源中教程)-数据查询08-带EXISTS测试的子查询
举报原因:
原因补充:

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