精华内容
下载资源
问答
  • select 1 from ... sql语句中的1代表什么意思?

    万次阅读 多人点赞 2018-10-08 19:39:11
    我们都知道,exists代替in可以提高sql语句的执行效率,例如如下两个例子: 检索部门所在地为 NEW YORK’的员工信息。 使用IN select * from scott.emp where deptno in ( select deptno from scott.dept ...

    我们都知道,用exists代替in可以提高sql语句的执行效率,例如如下两个例子:
    检索部门所在地为 NEW YORK’的员工信息。

    使用IN

     select * from scott.emp
     where deptno in (
      select deptno from scott.dept where loc='NEW YORK');
    

    使用 exists

     select * from scott.emp
     where  exists (
      select 1 from scott.dept where scott.dept.deptno=scott.emp.deptno and  loc='NEW YORK');
    

    注意,这里出现了一个特殊用法select 1 ?
    比如说,使用select 1 from table的结果是临时得到1列(列的值为1),其行数为表的记录数(行数),如果配合exists 语句则可以快速查询结果是否存在,而结果的具体数据不涉及到。
    就像我上述提供的例子,它只查询验证dept表的字段deptno和emp的字段deptno是否有相等的情况,并且loc=‘NEW YORK’,而不需要知道dept表和emp表哪些记录存在那样的情况,也不需要知道相等情况下其他字段的值。在应用中,效率比select * 快。
    扩展: select 1 from table;与select anycol(目的表集合中的任意一行) from table;与select * from table 从作用上来说是没有差别的,都是查看是否有记录,一般是作条件查询用的。select 1 from 中的1是一常量(可以为任意数值),查到的所有行的值都是它,但从效率上来说,1>anycol>*,因为不用查字典表。

    展开全文
  • 你已经在上面取出w打头记录的例子中看到了LIKE的用法。...假设你想取出5位数字的SKU号码,而且其开头是1结尾是5,那么你可以用下划符(_)代替%符号:SQL = "SELECT * FROM Products WHERE p_sku LIKE 1___5

    你已经在上面取出w打头记录的例子中看到了LIKE的用法。LIKE判定词是一个非常有用的符号。不过,在很多情况下用了它可能会带给你太多的数据,所以在用到它之前最好先开动脑筋多想想自己到底想获得什么数据。假设你想取出5位数字的SKU号码,而且其开头是1结尾是5,那么你可以用下划符(_)代替%符号:
    SQL = "SELECT * FROM Products WHERE p_sku LIKE '1___5'"

    下划符表示任意一个字符。所以在输入“1___5”的情况下,你的搜索就会限制在满足特定模式的5位数范围内了。

    假如你想反其道而行之,要找出所有不匹配“1___5”模式的SKU条目。那么你只需要在刚才语句例子中的LIKE前面加上NOT就可以了。

    BETWEEN
    假设你想取出一定范围内的数据,而且你事先知道范围的起点和终点,那么你不妨采用BETWEEN 判断词。现在就让我们假设你想选取给定表内范围在 1和 10之间的记录。你可以如下使用BETWEEN:
    …WHERE ID BETWEEN 1 AND 10

    或者你也可以采用已经熟悉的数学判断字句:
    …WHERE ID >= 1 AND ID >= 10

    展开全文
  • sql子查询

    2018-04-22 16:07:00
    1 什么是子查询 将一个子查询的结果拥有查询条件中。 2 子查询存在的问题 ...一般情况下可以用连接代替子查询。 SELECT * FROM t1 WHERE t1.a1 NOT in (SELECT a2 FROM t2 ) 优化后: SELECT * FROM t...

    1 什么是子查询

    将一个子查询的结果拥有查询条件中。

    2 子查询存在的问题

    需要为子查询的结果创建一个临时表,耗内存并且费时。

    连接不需要创建临时表,它的操作直接在原表或者原表的索引上进行。

    一般情况下可以用连接代替子查询。

    SELECT * FROM t1
    WHERE t1.a1 NOT in (SELECT a2 FROM t2 )
    优化后:
    SELECT * FROM t1
    LEFT JOIN t2 ON t1.a1=t2.a2
    WHERE t2.a2 IS NULL  

    转载于:https://www.cnblogs.com/hustdc/p/8907780.html

    展开全文
  • SQL查询优化

    2010-09-02 12:55:26
    我们来讨论一下select ... from ... where ... exists ....这个了。Exists的查询速度要比in强得多,这是众所周知的事,但我们并不可以说完全exists来代替in。为什么这么说呢?我们先...
    我们来讨论一下select ... from ... where ... exists ....这个了。Exists的查询速度要比in强得多,这是众所周知的事,但我们并不可以说完全用exists来代替in。为什么这么说呢?我们先来看看可以用exists来代替in的场合吧。

     

    select... from A where id in (select id from B)可以替代为select...from A where exists (select id from B where A.id = id)

    not in 的话可以替换成not exists。这是可以使用exists来提高查询性能的场合,接着什么是不能直接替换的场合呢?

     

    select...from A where id in (1,2,3,4,5,6....)这种出现零散值的时候就不能直接使用exists来替换了。

    如果出现这种情况的话,我的做法是用in和exists结合的办法,就像我在in篇写的使用临时表作为辅佐,先用in把筛选过的数据导进临时表里,然后用临时表跟其他表关联或者使用where exists(select id from #tempTable where A.id = id)这种方法来筛选记录。这样做法往往比一大串的表连接加where in的性能好很多。

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16436858/viewspace-672408/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/16436858/viewspace-672408/

    展开全文
  • PL/SQL 基础.doc

    2010-09-29 09:31:29
    可以代替RECORD类型. 5. TABLE类型 TYPE tabletype IS TABLE OF type(类型名,要保存成的数据类型) INDEX BY BINARY_INTEGER; 例:DECLARE TYPE t_emp IS TABLE OF s_emp%ROWTYPE INDEX BY BINARY_INTERGER; ...
  • 把上面的标准Random 示例扩展一下就可以用SQL应对上面两种情况了。  为了取出几条随机选择的记录并存放在同一recordset内,你可以存储三个随机数,然后查询数据库获得匹配这些数字的记录:  SQL = "SELECT * FROM ...
  • 也就是hibernate中有没有什么方法代替ResultSet的getBinaryStream();</p><br />问题补充:</strong><br />第一个的回答,我试过了有[Microsoft][SQLServer 2000 Driver for JDBC]Unsupported data conversion异常...
  • struts in Action

    2010-09-11 11:06:44
    2.2.4. Struts 开发Web 应用......................................................................................42 2.3. 为什么需要框架...................................................................
  • 尽量少用IN操作符,基本上所有的IN操作符都可以用EXISTS代替。  不用NOT IN操作符,可以用NOT EXISTS或者外连接+替代。  Oracle在执行IN子查询时,首先执行子查询,将查询结果放入临时表再执行主查询。而EXIST则...
  • Core Data是iOS中很重要的一个部分,可以理解为基于SQLite(当然也可以是其他的Storage,如In-memory,只是SQLite比较常见)的一个ORM实现,所以有关系数据库的特性,又不用写SQL。顺便吐一下槽,官方说法是使用Core ...
  • iOS的多线程Core Data

    2015-03-10 13:54:50
    Core Data是iOS中很重要的一个部分,可以理解为基于SQLite(当然也可以是其他的Storage,如In-memory,只是SQLite比较常见)的一个ORM实现,所以有关系数据库的特性,又不用写SQL。顺便吐一下槽,官方说法是使用Core ...
  • Core Data是iOS中很重要的一个部分,可以理解为基于SQLite(当然也可以是其他的Storage,如In-memory,只是SQLite比较常见)的一个ORM实现,所以有关系数据库的特性,又不用写SQL。顺便吐一下槽,官方说法是使用Core ...
  • MySQL命令大全

    2018-01-15 11:19:17
    mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt”INTO TABLE MYTABLE; 9:导入.sql文件命令(例如D:/mysql.sql) mysql>use database; mysql>source d:/mysql.sql; 10:删除表 mysql>drop TABLE MYTABLE; 11:...
  • IN关键字可以判断某个字段的值是否在指定的集合中。如果字段的值在集合中,则满足查询条件,该纪录将被查询出来。如果不在集合中,则不满足查询条件。其语法规则如下:[ NOT ] IN ( 元素1, 元素2, …, 元素n ) [sql...
  • Oracle_Database_11g完全参考手册.part1/3

    热门讨论 2012-08-18 17:29:13
    13.2.4 NOTEXISTS代替NOTIN 13.3 自然连接和内部连接 13.4 UNION、INTERSECT和MINUS 13.4.1 IN子查询 13.4.2 UNION、INTERSECT和MiNUS的限制 第14章 一些复杂的技术 14.1 复杂的分组 14.2 使用临时表 14.3 使用...
  • MYSQL常用命令大全

    2011-05-30 13:31:24
    也就是说你可以把一个完整的命令分成几行来打,完后分号作结束标志就OK。  2、你可以使用光标上下键调出以前的命令。但以前我过的一个MYSQL旧版本不支持。我现在的是mysql-3.23.27-beta-win。  二、显示...
  • 13.2.4 NOTEXISTS代替NOTIN 13.3 自然连接和内部连接 13.4 UNION、INTERSECT和MINUS 13.4.1 IN子查询 13.4.2 UNION、INTERSECT和MiNUS的限制 第14章 一些复杂的技术 14.1 复杂的分组 14.2 使用临时表 14.3 使用...
  • 13.2.4 NOTEXISTS代替NOTIN 13.3 自然连接和内部连接 13.4 UNION、INTERSECT和MINUS 13.4.1 IN子查询 13.4.2 UNION、INTERSECT和MiNUS的限制 第14章 一些复杂的技术 14.1 复杂的分组 14.2 使用临时表 14.3 使用...
  • asp.net知识库

    2015-06-18 08:45:45
    也论该不该在项目中使用存储过程代替SQL语句 如何使数据库中的表更有弹性,更易于扩展 存储过程——天使还是魔鬼 如何获取MSSQLServer,Oracel,Access中的数据字典信息 C#中利用GetOleDbSchemaTable获取数据库内表信息...
  • [Oracle.11g权威指南(第2版)].谷长勇.扫描版.pdf

    千次下载 热门讨论 2013-06-23 21:16:09
    8.1 用SQL*Plus与数据库交互 196 8.1.1 SQL*Plus的主要功能 197 8.1.2 启动SQL*Plus连接数据库 197 8.2 使用SQL*Plus的编辑功能 199 8.2.1 SQL语句、PL/SQL块与SQL*Plus命令的区别 199 8.2.2 编辑命令 200 8.2.3 ...
  • springmybatis

    2015-09-05 06:54:28
    其实还有更简单的方法,而且是更好的方法,使用合理描述参数和SQL语句返回值的接口(比如IUserOperation.class),这样现在就可以至此那个更简单,更安全的代码,没有容易发生的字符串文字和转换的错误.下面是详细...
  • asp.net面试题

    2011-05-27 17:56:26
    三、C#中为了防止非本程序集的代码访问,可以用什么关键字修饰类或者类成员? 四、为了将table表内bb(datetime类型)字段的数据按年月降序输出,对应的SQL语句为 选择题答案: 1.B,2.D,3.C,4.BC,5.B,6.AC,7....
  • iBATIS实战

    2015-11-13 17:53:19
    11.3.2 为什么使用Spring代替iBATIS 211 11.4 创建自己的DAO层 211 11.4.1 从实现中分离出接口 212 11.4.2 创建一个工厂以解耦 212 11.5 小结 214 第12章 扩展iBATIS 215 12.1 理解可插拔组件的设计 215 12.2 使用...
  • 13.2.4 NOT EXISTS 代替NOT IN 219 13.3 自然连接和内部连接 220 13.4 UNION﹑INTERSECT和MINUS 221 13.4.1 IN 子查询 224 13.4.2 UNION、INTERSECT和MINUS的限制 224 第14章 一些复杂的技术 225 14.1 复杂...
  • 现在需要您写一个数据库连接字符串,以连接AllWin上SQL SERVER中的一个名为PubBase实例的Test库。请问,应该选择下面哪一个字符串?( B )  A. “Server=AllWin;Data Source=PubBase;Initial Catalog=Test;...

空空如也

空空如也

1 2 3 4
收藏数 76
精华内容 30
关键字:

in可以用什么代替sql