当前位置:  数据库>sqlserver

sql语句中exists用法举例

    来源: 互联网  发布时间:2014-08-29

    本文导语:  问题: 查询学过编号为"01"并且也学过编号为"02"的课程的同学的信息   代码示例: --方法1 select student.* from student , sc where student.s# = sc.s# and sc.c# = '01' and exists (select 1 from sc sc_2 where sc_2.s# = sc.s# and sc_2.c# = '02') order by student.s#  ...

问题:
查询学过编号为"01"并且也学过编号为"02"的课程的同学的信息
 

代码示例:
--方法1
select student.* from student , sc where student.s# = sc.s# and sc.c# = '01' and exists (select 1 from sc sc_2 where sc_2.s# = sc.s# and sc_2.c# = '02') order by student.s# 
 

exists用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值true或false。
 
例表a:tablein

例表b:tableex
 
二). 比较使用 exists 和 in 的查询。注意两个查询返回相同的结果。
 

代码示例:
select * from tablein where exists(select bid from tableex where bname=tablein.aname)
select * from tablein where aname in(select bname from tableex)
 

三). 比较使用 exists 和 = any 的查询。注意两个查询返回相同的结果。
 

代码示例:
select * from tablein where exists(select bid from tableex where bname=tablein.aname)
select * from tablein where aname=any(select bname from tableex)

not exists 的作用与 exists 正好相反。如果子查询没有返回行,则满足了 not exists 中的 where 子句。
 
一种通俗的可以理解为:将外查询表的每一行,代入内查询作为检验,如果内查询返回的结果取非空值,则exists子句返回true,这一行行可作为外查询的结果行,否则不能作为结果。
 
exists与in的使用效率的问题,通常情况下采用exists要比in效率高,因为in不走索引,但要看实际情况具体使用:
in适合于外表大而内表小的情况;exists适合于外表小而内表大的情况。

您可能感兴趣的文章:

    
 
 

您可能感兴趣的文章:

  • sql server中Exists的用法举例
  • sql多表级联更新update的用法举例
  • sql count查询举例(图文)
  • sql server 存储过程中If Else的用法举例
  • asp批量更新sql语句举例
  • SQL Server分组排序提取数据的代码举例
  • sql server中distinct筛选重复记录的用法举例
  • 用java访问SQL数据库应做些什么工作,步骤,并请用代码举例?
  • sql server 2005 output子句应用举例
  • SQL预处理语句(Prepared Statements)用法举例
  • SQL常用语句举例
  • T-SQL实例 列别名的用法举例
  • sql having子句应用举例
  • sql server分页存储过程应用举例
  • sql查询重复记录的方法举例
  • sql server 模糊查询的常用方法举例
  • mysql的SQL_NO_CACHE(在查询时不使用缓存)和sql_cache用法
  • C#调用SQL语句时乘号的用法
  • sql中all,any,some用法
  • SQL事务用法begin tran,commit tran和rollback tran的用法
  • sql游标的用法简单笔记
  • sql查询语句group by用法简介
  • 浅析SQL语句中GROUP BY的用法
  • sql server中ISNULL函数与Mysql中IFNULL函数的用法
  • SQL中object_id函数的用法
  • SQL cursor用法实例
  • sql语句中isnull函数用法 实例教程
  • sql Set IDENTITY_INSERT的用法
  • if exists和if not exists关键字用法(sql server)
  • SQL SELECT DISTINCT 语句用法
  • sql数据库中ISNULL函数用法 sql语句判断值是否为空
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • mysql中查询当前正在运行的SQL语句并找出mysql中运行慢的sql语句
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • Mysql增加主键或者更改表的列为主键的sql语句
  • sql语句实例 取得日志条目的sql语句
  • Mysql下在某一列后即表的某一位置添加新列的sql语句
  • SQL Server统计SQL语句执行时间的脚本
  • sql语句实例 统计页面链接的sql语句
  • 如何实现连接一次数据库,提交多个sql语句。(sql的批处理)
  • 一条SQL语句搞定Sql2000 分页
  • C#中验证sql语句是否正确(不执行语句)
  • SQL Server数据库的修复SQL语句
  • SQL 语句拦截 P6SPY
  • C#使用带like的sql语句时防sql注入的方法
  • t-sql/mssql用命令行导入数据脚本的SQL语句示例
  • 在SQL Server的try...catch语句中获取错误消息代码的的语句
  • sql2005创建远程登录帐户的sql语句分享
  • SQL SERVER 查询正在实行的SQL语句
  • SQL语句中含有乘号报错的处理办法
  • sql无效字符引起的执行sql语句报错的解决方法
  • C#代码验证sql语句是否正确(只验证不执行sql)的方法
  • SQL Server中选出指定范围行的SQL语句代码
  • java命名空间java.sql接口statement的类成员方法: executeupdate定义及介绍
  • 请问,这是什么错误!java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][Named Pipes]??????? SQL Server?虽然分少,但一定给,只要您是前5名回复者中最好的以为!
  • java命名空间java.sql接口connection的类成员方法: nativesql定义及介绍
  • SQL查询分析工具 SQL Workbench/J
  • java命名空间java.sql接口preparedstatement的类成员方法: executeupdate定义及介绍
  • SQL客户端软件 PKLite SQL Client
  • java命名空间java.sql接口rowid的类成员方法: getbytes定义及介绍
  • SQL语句实现SQL Server 2000及Sql Server 2005日志收缩(批量)
  • java命名空间java.sql接口ref的类成员方法: getbasetypename定义及介绍
  • SQL客户端管理工具 SQuirreL SQL Client


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3