首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 
设为首页
加入收藏
联系我们
热门关键字: .net应用  操作系统  Dreamweaver  WinRAR  网络推广
高级搜索
您当前的位置: 主页>数据库>基础常识>SQL中IN,NOTIN,EXISTS,NOT EXISTS的用法和差别
SQL中IN,NOTIN,EXISTS,NOT EXISTS的用法和差别
来源: 发布时间:2008-02-21 发布人: 浏览: 人次   字体: [ ]  
导读:
  SQL中IN,NOT IN,EXISTS,NOT EXISTS的用法和差别:
  IN:确定给定的值是否与子查询或列表中的值相匹配。
  IN 关键字使您得以选择与列表中的任意一个值匹配的行。
  当要获得居住在 California、Indiana 或 Maryland 州的所有作者的姓名和州的列表时,就需要下列查询:
  SELECT ProductID, ProductName FROM Northwind.dbo.Products WHERE CategoryID = 1 OR CategoryID = 4 OR CategoryID = 5
  然而,如果使用 IN,少键入一些字符也可以得到同样的结果:
  SELECT ProductID, ProductName FROM Northwind.dbo.Products WHERE CategoryID IN (1, 4, 5)
  IN 关键字之后的项目必须用逗号隔开,并且括在括号中。
  下列查询在 titleauthor 表中查找在任一种书中得到的版税少于 50% 的所有作者的 au_id,然后从 authors 表中选择 au_id 与
  titleauthor 查询结果匹配的所有作者的姓名:
  SELECT au_lname, au_fname FROM authors WHERE au_id IN (SELECT au_id FROM titleauthor WHERE royaltyper <50)
  结果显示有一些作者属于少于 50% 的一类。
  NOT IN:通过 NOT IN 关键字引入的子查询也返回一列零值或更多值。
  以下查询查找没有出版过商业书籍的出版商的名称。
  SELECT pub_name FROM publishers WHERE pub_id NOT IN (SELECT pub_id FROM titles WHERE type = 'business')
  使用 EXISTS 和 NOT EXISTS 引入的子查询可用于两种集合原理的操作:交集与差集。两个集合的交集包含同时属于两个原集合的所有元素。
  差集包含只属于两个集合中的第一个集合的元素。
  EXISTS:指定一个子查询,检测行的存在。
  本示例所示查询查找由位于以字母 B 开头的城市中的任一出版商出版的书名:
  SELECT DISTINCT pub_name FROM publishers WHERE EXISTS (SELECT * FROM titles WHERE pub_id = publishers.pub_id AND type =
  'business')
  SELECT distinct pub_name FROM publishers WHERE pub_id IN (SELECT pub_id FROM titles WHERE type = 'business')
  两者的区别:
  EXISTS:后面可以是整句的查询语句如:SELECT * FROM titles
  IN:后面只能是对单列:SELECT pub_id FROM titles
  NOT EXISTS:
  例如,要查找不出版商业书籍的出版商的名称:
  SELECT pub_name FROM publishers WHERE NOT EXISTS (SELECT * FROM titles WHERE pub_id = publishers.pub_id AND type =
  'business')
  下面的查询查找已经不销售的书的名称:
  SELECT title FROM titles WHERE NOT EXISTS (SELECT title_id FROM sales WHERE title_id = titles.title_id)

相 关 文 章   发布商链接
·软件开发之数据库设计技巧大放送
·速学数据库链路的建立及其使用
·如何查找数据库中某一字段所在的表名...
·两个实现删除数据库字段中汉字或字符...
·超全超强SQL语法大全
·sql语句使用内嵌视图与临时表示例
·SET IDENTITY_INSERT的用法
·SQL数据库面试题目及其答案
·sql语句实现根据月分打印月历的两种...
·设计一个用户,角色,功能三者之间的...
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·两个实现删除数据库字段中汉...
·如何查找数据库中某一字段所...
·速学数据库链路的建立及其使...
·软件开发之数据库设计技巧大...
·DB2、oralce、mysql数据库取...
·SQL语法中常用字符串函数大全
·设计一个用户,角色,功能三...
·sql语句实现根据月分打印月历
·SQL数据库面试题目及其答案
·SET IDENTITY_INSERT的用法
·sql语句使用内嵌视图与临时表
热 门 文 章
·SET IDENTITY_INSERT的用法
·SQL数据库面试题目及其答案
·超全超强SQL语法大全
·SQL语法中常用字符串函数大全
·祥解磁盘 I/O 性能 对数据库...
·DB2、oralce、mysql数据库取...
·sql语句使用内嵌视图与临时表...
·sql语句实现根据月分打印月历...
·设计一个用户,角色,功能三...
·软件开发之数据库设计技巧大...
·如何查找数据库中某一字段所...
·速学数据库链路的建立及其使...
·两个实现删除数据库字段中汉...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .