请问oracle中=与in有什么区别,求大神

如题所述

一、范围不同

1、=:用来查询指定的数据记录。

2、in:用来查询范围内匹配的数据。

二、语法不同

1、=:DELETE FROM example WHERE column2 = 'N'。

2、in:SELECT column_name(s)FROM table_nameWHERE column_name IN (value1,value2,...)。


三、规定不同

1、=:等号运算符中可以使用字符串、日期或数字。例如,比如想要查询字段为name,值为“MTbaby”的工作人员,可以使用等号进行匹配

2、in:允许在 WHERE 子句中规定多个值。

参考资料来源:百度百科-SQL IN

参考资料来源:百度百科-SQL语法

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-05
首先应用范围不一样:
in 可以理解为是范围内的选择
= 只有一个
例如:
select sno, sname from t1 where sno in ('sn1001','sn1002');
select sno, sname from t1 where sno in ('sn1001');
select sno, sname from t1 where sno ='sn1001';
select sno, sname from t1 where sno in (select sno from t2); --子查询结果可以不止一个结果
select sno, sname from t1 where sno =(select sno from t2); --子查询结果只能有一个
其次性能也不一样;=的性能大于in的性能,因为=能较好的使用索引等本回答被提问者采纳
第2个回答  2015-06-26
=只能与一个固定值相比较,比如:=3,='姓名'
in是包含在一个范围内,比如:in (1,2,3), in('张三','李四','王五')
in (1,2,3)等价于:=1 or =2 or =3
第3个回答  2015-06-26
in里面可以放入多个参数 = 后面是一个参数
比如.查学生表 学生有 年龄字段. 要查年龄为18,28,38岁的学生...
假设有38岁的学生........

select * from Student where age in (18,28,38);即可.
但是用等于 就要写成
select * from Student where age = 18 or age =28 or age =38:追问

就是in后面能跟多个查询条件而=只有一个?

追答

准确说不是多个查询条件 而是一个条件符合的多种情况

第4个回答  2015-06-26
执行速度上有区别。追问

有区别

有个语句用in能执行,用=无法执行

追答

那要看你什么语句了。理论上是不可能的。

请问oracle中=与in有什么区别,求大神
一、范围不同 1、=:用来查询指定的数据记录。2、in:用来查询范围内匹配的数据。二、语法不同 1、=:DELETE FROM example WHERE column2 = 'N'。2、in:SELECT column_name(s)FROM table_nameWHERE column_name IN (value1,value2,...)。三、规定不同 1、=:等号运算符中可以使用字符串...

Oracle语句中IN和=的区别有哪些?
Oracle语句中IN和=的区别有:1、首先应用范围不一样:in 可以理解为是范围内的选择;= 只有一个。例如:select sno, sname from t1 where sno in ('sn1001','sn1002');select sno, sname from t1 where sno in ('sn1001');select sno, sname from t1 where sno ='sn1001';select sno, ...

oracle数据库中in和=有什么区别吗,对于查询的效率有什么影响吗,谢谢
in是对一个查询后结果集的操作,=是对单个字段值的判断,都是用于筛选,我想=快些,in毕竟还要执行一个遍历结果集

Oracle SQL中的!=与<>有什么区别?
第一个问题:\\x0d\\x0a这两个都是不等于符号,没有什么区别,如果这个字段有索引,都可以使用的。\\x0d\\x0a第二个问题:\\x0d\\x0ain 和 not in 都可以使用索引的,但是如果name字段有很多值,那么not in的执行时间应该稍微长一点,因为它返回的值比较多。 \\x0d\\x0a补充:如果name的值比较...

oracle中in,not in和exists,not exists之间的区别
In和exists对比:若子查询结果集比较小,优先使用in,若外层查询比子查询小,优先使用exists。因为若用in,则Oracle会优先查询子查询,然后匹配外层查询,若使用exists,则oracle会优先查询外层表,然后再与内层表匹配。最优化匹配原则,拿最小记录匹配大记录2、关于在 Oracle8i 之后 时代中in和exists的区别in 是把外表和内...

oracle中in和out用法
oracle过程中定义了in、out、inout三种参数模式,每个参数可以选择其一。1、in是参数的默认模式,这种模式就是在程序运行的时候已经具有值,在程序体中值不会改变;2、out模式定义的参数只能在过程体内部赋值,表示该参数可以将某个值传递回调用的过程;3、inout模式表示高参数可以向该过程中传递值,也可...

【Oracle】使用WHERE
成员运算符IN用于比较,等同于=ANY,NOT IN等同于<>ALL。在使用NOT IN时,若列表包含NULL,比较结果可能为假或未知;若子查询无返回记录,比较结果为真。使用IN运算符时,伪列LEVEL不能出现在运算符左边。范围运算符BETWEEN..AND...,相当于>=与=的组合使用。尽管效率较低,但建议使用>=与=替代。...

oracle 中 in ,between,大于小于,走不走索引
(1)‘!=’ 将不使用索引. 记住, 索引只能告诉你什么存在于表中, 而不能告诉你什么不存在于表中. (2) ‘||’是字符连接函数. 就象其他函数那样, 停用了索引. (3) ‘+’是数学函数. 就象其他数学函数那样, 停用了索引. (4)相同的索引列不能互相比较,这将会启用全表扫描....

数据库里“:=”什么意思啊?和“=”有区别吗?
在存储结构里,这二个数据库语言是有区别的,在oracle中变量申明必须是:= 而sql-server就一个=

Oracle SQL的exists与in
两个用法本来就有区别,IN判断字段的值有没有列表中,列表中的值少的情况下直接用IN,多的情况下建议用JOIN连接;EXISTS条件是判断子查询存在不存在符合的记录,并且只有有一条记录符合条件就判定EXISTS成立。

相似回答