易截截图软件、单文件、免安装、纯绿色、仅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 Server 2000连接中的四个最常见错误

一."SQL Server 不存在或访问被拒绝"
这个是最复杂的,错误发生的原因比较多,需要检查的方面也比较多.
一般说来,有以下几种可能性:
1,SQL Server名称或IP地址拼写有误
2,服务器端网络配置有误
3,客户端网络配置有误
要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因.
============= 首先,检查网络 ......

asp.net连接SQL 和ACCESS数据库

ASP.NET如何连接Access或SQL Server数据库 
首先看一个例子代码片断:
程序代码: 
--------------------------------------------------------------------------------
using System.Data;
using System.Data.OleDb;
......
string strConnection="Provider=Microsoft.Jet.OleDb.4.0;";
strConnection+ ......

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号