VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 数据库 > sql语句 >
  • sql语句大全之使用子查询

使用子查询

使用子查询或连接,都可以实现使用查询语句来访问多个表中的数据的效果。子查询可以使用在SELECT、INSERT、UPDATE或DELETE语句中,子查询同样遵循SQL Server语法规范,根据子查询返回行数的不同,又可将其分为返回多行的子查询和返回单行的子查询。同时,子查询又可嵌套使用。

5.3.1  返回多行的子查询

返回多行的子查询是指在执行查询语句获得的结果集中返回了多行数据的子查询。一般情况下,对子查询都是通过WHERE子句实现的,但实际上它还能应用于SELECT语句及HAVING子句中。在子查询中可以使用IN关键字、EXISTS关键字和比较运算符来连接表。
1.使用IN关键字
通过使用IN关键字可以把原表中目标列的值和子查询返回结果进行比较,如果列值与子查询的结果一致或存在与之匹配的数据行,则查询结果集中就包含该数据行。使用IN关键字的子查询的语法格式为:
SELECT select_list
FROM table_sourcde
WHERE expression IN|NOT IN (subquery)
上面语法中(subquery)表示子查询,括号外围的查询将子查询结果作为限定条件,进而进行查询。例如下面语句:
USE 网店购物系统
SELECT * FROM 注册会员
WHERE 会员编号 IN
(SELECT 会员编号 FROM
订单信息 WHERE 交易数量 >3)
括号中子查询得出的结果为交易数量大于3的会员的会员编号,外围查询根据会员编号将其作为限定条件,查询出“注册会员”表中的相应数据,查询结果如图5-34所示。

图5-34  使用IN关键字的子查询
 
同样,这里也可以使用NOT IN关键字查询出与IN关键字相反的结果。


相关教程