易截截图软件、单文件、免安装、纯绿色、仅160KB

sql中 in 、not in 、exists、not exists 用法和差别


exists (sql 返回结果集为真) 
not exists (sql 不返回结果集为真) 
如下: 
表A 
ID NAME 
1    A1 
2    A2 
3  A3 
表B 
ID AID NAME 
1    1 B1 
2    2 B2 
3    2 B3 
表A和表B是1对多的关系 A.ID => B.AID 
SELECT ID,NAME from A WHERE EXIST (SELECT * from B WHERE A.ID=B.AID) 
执行结果为 
1 A1 
2 A2 
原因可以按照如下分析 
SELECT ID,NAME from A WHERE EXISTS (SELECT * from B WHERE B.AID=1) 
--->SELECT * from B WHERE B.AID=1有值返回真所以有数据 
SELECT ID,NAME from A WHERE EXISTS (SELECT * from B WHERE B.AID=2) 
--->SELECT * from B WHERE B.AID=2有值返回真所以有数据 
SELECT ID,NAME from A WHERE EXISTS (SELECT * from B WHERE B.AID=3) 
--->SELECT * from B WHERE B.AID=3无值返回真所以没有数据 
NOT EXISTS 就是反过来 
SELECT ID,NAME from A WHERE NOT EXIST (SELECT * from B WHERE A.ID=B.AID) 
执行结果为 
3 A3 
=========================================================================== 
EXISTS = IN,意思相同不过语法上有点点区别,好像使用IN效率要差点,应该是不会执行索引的原因 
SELECT ID,NAME from A  WHERE ID IN (SELECT AID from B) 
NOT EXISTS = NOT IN ,意思相同不过语法上有点点区别 
SELECT ID,NAME from A WHERE ID NOT IN (SELECT AID from B) 
下面是普通的用法: 
SQL中IN,NOT IN,EXISTS,NOT EXISTS的用法和差别:&nbs


相关文档:

tempdb对SQL Server数据库性能有何影响

tempdb对SQL Server数据库性能有何影响
 
本文关键词:SQL Server 网络
相反如果访问很频繁,loading就会加重,tempdb的性能就会对整个DB产生重要的影响.优化tempdb的性能变的很重要的,尤其对于大型数据库.如果使用临时表储存大量的数据且频繁访问,考虑添加index以增加查询效率.
   1.SQL Server系统数据库介 ......

SQL Server2008行数据和页数据压缩解密

SQL Server2008行数据和页数据压缩解密
 
数据压缩意味着减小数据的有磁盘占用量,所以数据压缩可以用在表,聚集索引,非聚集索引,视图索引或是分区表,分区索引上。2.前标压缩:每一页中的所有列,在行标头下面,每行都存储着一个行定义值,压缩后,所有行的定义值都被替换成行头值的引用。
  本文将为大家介绍 ......

SQL Server2008行数据和页数据压缩解密

SQL Server2008行数据和页数据压缩解密
 
数据压缩意味着减小数据的有磁盘占用量,所以数据压缩可以用在表,聚集索引,非聚集索引,视图索引或是分区表,分区索引上。2.前标压缩:每一页中的所有列,在行标头下面,每行都存储着一个行定义值,压缩后,所有行的定义值都被替换成行头值的引用。
  本文将为大家介绍 ......

SQL 中的命令大全

--语 句 功 能 
--数据操作 
SELECT --从数据库表中检索数据行和列 
INSERT --向数据库表添加新数据行 
DELETE --从数据库表中删除数据行 
UPDATE --更新数据库表中的数据 
--数据定义 
CREATE TABLE --创建一个数据库表 
DROP TABLE --从数据库中删除表 
......

SQL中的CASE WHEN使用

Case具有两种格式。简单Case函数和Case搜索函数。
--简单Case函数
CASE sex
         WHEN '1' THEN '男'
         WHEN '2' THEN '女'
ELSE '其他' END
--Case搜索函数
CASE WHEN sex = '1' THEN '男'
     ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号