oraclesqlor
Ⅰ oracle sql 请问用什么可以替代or,这样查的效率特别慢
含有"IN"、"OR"的Where子句常会使用工作表,使索引失效;如果不产生大量重复值,可以考虑把子句拆开;拆开的子句中应该包含索引。
select count(*) from stuff where id_no in('0','1')(23秒)
可以考虑将or子句分开:
select count(*) from stuff where id_no='0'
select count(*) from stuff where id_no='1'
然后再做一个简单的加法,与原来的SQL语句相比,查询速度更快。
Ⅱ oracle sql 优化 in or 哪个效率高
执行的效率是一样的。
两极化的plan hash value一模一样,说明他们内部执行是一模一样的
Ⅲ oracle语句查询 or和and
and优先级大于or。
加括号则优先执行or,后执行and;不加括号,会先执行and,再执行or,所以查询结果不同。举例:
数据库存在数据:
Thomas Carter
WilliamCarter
ThomasKing
执行:SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William')
AND LastName='Carter'
结果为:
ThomasCarter
WilliamCarter
执行:SELECT * FROM Persons WHERE FirstName='Thomas' OR FirstName='William'
AND LastName='Carter'
结果为:
ThomasCarter
WilliamCarter
ThomasKing
(3)oraclesqlor扩展阅读:
ORACLE数据库特点:
1、完整的数据管理功能:
(1)数据的大量性
(2)数据的保存的持久性
(3)数据的共享性
(4)数据的可靠性
2、完备关系的产品:
(1)信息准则---关系型DBMS的所有信息都应在逻辑上用一种方法,即表中的值显式地表示;
(2)保证访问的准则
(3)视图更新准则---只要形成视图的表中的数据变化了,相应的视图中的数据同时变化
(4)数据物理性和逻辑性独立准则
3、分布式处理功能:ORACLE数据库自第5版起就提供了分布式处理能力,到第7版就有比较完善的分布式数据库功能了,一个ORACLE分布式数据库由oraclerdbms、sql*Net、SQL*CONNECT和其他非ORACLE的关系型产品构成。
4、用ORACLE能轻松的实现数据仓库的操作。
参考资料:网络-Oracle数据库
Ⅳ 在oracle sql 命令窗口中出现ORA-01858: 在要求输入数字处找到非数字字符什么意思啊
意思是本来要求只能输入数字的,现在给了非数字的。
出错原因是:preparedstatement在执行的时候不能把红框内的串替换为sql中的问号,主要是to_date函数替换不了。
dat是个date类型应该写成:insert into tablename(colname) values ('"+dat.toString()+"')" ;
这样数据库才能把dat.toString()转化为数据库中的日期类型。
(4)oraclesqlor扩展阅读:
注意事项
to_date函数先放到sql语句中,然后替换后面的变量,就不报这个错误了。
在oracle中建有date类型的字段,插入可以采取如下方法:
1、如果是小时为:1-12采取如下格式:yyyy-mm-dd HH:MI:SS
insert into test values(to_date('2009-5-7 07:09:37','yyyy-mm-dd HH:MI:SS'));
2、如果是小时为:1-24采取如下格式:yyyy-mm-dd HH24:MI:SS
insert into test values(to_date('2009-5-7 17:09:37','yyyy-mm-dd HH24:MI:SS'));
Ⅳ oracle sql 用什么可以替代or,这样查询特别慢
可以用union,比如select 内容 from user where name='张三' union select 内容 from user where name='李四',相当于select 内容 from user where name='张三' or name='李四' ,因为union会用到索引,不知道你这个表有没有索引,表的数据多大?