Oracle
chenzhongwei99
这个作者很懒,什么都没留下…
展开
-
Oracle 集合操作
当取并集的时候会出现数据类型不匹配和数据长度不一样的情况。 1.出现数据类型不匹配可以利用to_char()来转换,就可以解决该问题。 例:select name from teachersunion allselect to_char(teacher_id) from teachers name为varchar2的类型。teacher_id为原创 2012-12-04 11:07:51 · 286 阅读 · 0 评论 -
oracle 时间函数
两个日期之间的每个月的最后一天SELECT distinct last_day(to_date((TO_CHAR(TO_DATE('2009-04-1', 'YYYY-MM-DD') + ROWNUM - 1, 'YYYY-MM-DD')),'yyyy-mm-dd')) FROM DUALCONNECT BY ROWN原创 2013-04-14 19:40:23 · 461 阅读 · 0 评论 -
oracle 行转列
目录结构如下:行转列列转行[一]、行转列 1.1、初始测试数据 表结构:TEST_TB_GRADE Sql代码 create table TEST_TB_GRADE ( ID NUMBER(10) not null, USER_NAME VARCHAR2(20 CHAR), COURSE VARCHAR2(20转载 2013-02-20 07:47:20 · 687 阅读 · 0 评论 -
Oracle删除重复数据
删除重复数据delete from T_HR_YVBalance a where fyear = '2013' and rowid > (select min(rowid) from T_HR_YVBalance b where a.fpersonid = b.fpersonid原创 2013-01-04 13:14:31 · 247 阅读 · 0 评论 -
Oracle 临时表(有无on commit preserve rows区别)
create global temporary table x( id integer, name varchar2(100)) on commit preserve rows 无这句话: 就算你执行了添加操作,数据也保存不了.有这句话:你执行了添加操作,会有数据,但是当你关闭此会话,数据也保存不了.原创 2012-12-14 10:31:45 · 1027 阅读 · 0 评论 -
Oracle提高SQL查询效率,要注意的原则
(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那转载 2012-12-08 11:26:15 · 329 阅读 · 0 评论 -
Oracle 联合索引
我现在用的是oracle 9i 1.一个表建立多少个索引比较合适?比如说不大于5个 这个没有定论,楼主要综合查询效率和dml效率自己确定,索引可以加快select的查询速度,但也会降低delete,insert和update等dml语句的执行速度。2.联合索引比单索引的效率高么? 如果联合索引中的多个字段都在where谓词中出现了,则联合索引效率比单列索引高,因为转载 2012-12-08 09:35:34 · 9099 阅读 · 0 评论 -
union all 就比 or及in 使用技巧
对于索引列来最好使用union all,因复杂的查询【包含运算等】将使or、in放弃索引而全表扫描,除非你能确定or、in会使用索引。 对于只有非索引字段来说你就老老实实的用or 或者in,因为 非索引字段本来要全表扫描而union all 只成倍增加表扫描的次数。 对于及有索引字段【索引字段有效】又包含非索引字段来时,按理你也使用or 、in或者union a转载 2012-12-08 11:25:25 · 647 阅读 · 0 评论 -
Oracle的索引类型及使用技巧
逻辑上:Single column 单行索引Concatenated 多行索引Unique 唯一索引NonUnique 非唯一索引Function-based函数索引Domain 域索引物理上:Partitioned 分区索引NonPartitioned 非分区索引B-tree:Normal 正常型B树Rever Key 反转型B树 Bitm转载 2012-12-08 11:24:32 · 406 阅读 · 0 评论 -
oracle索引整理
一,oracle的索引陷阱一个表中有几百万条数据,对某个字段加了索引,但是查询时性能并没有什么提高,这主要可能是oracle的索引限制造成的。 oracle的索引有一些索引限制,在这些索引限制发生的情况下,即使已经加了索引,oracle还是会执行一次全表扫描,查询的性能不会比不加索引有所提高,反而可能由于数据库维护索引的系统开销造成性能更差。下面是一些常见的索引限制问题。转载 2012-12-08 11:23:47 · 320 阅读 · 0 评论 -
Oracle创建自增字段方法-ORACLE SEQUENCE的简单介绍 .
先假设有这么一个表:create table S_Depart ( DepartId INT not null, DepartName NVARCHAR2(40) not null, DepartOrder转载 2012-12-08 11:23:06 · 387 阅读 · 0 评论 -
Oracle 管理员密码忘记解决方案
安装完Oracle以后,我们肯定会给自己新增个用户,给自己设置管理员的那种权限. 我们可以用那个账户进去 接着可以利用select username , password from dba_users来查看所有的用户名和密码. 接着就可以利用此sql进行修改.alter user system identified by manager原创 2012-12-05 14:46:56 · 454 阅读 · 0 评论 -
Oracle 处理空值
select nvl(bonus,0)+wage from teachers where teacher_id=7 select nvl2(bonus,bonus+wage,wage) from teachers where teacher_id=7 select coalesce(bonus+wage,wage) from teachers where teacher_id=7原创 2012-12-04 09:31:28 · 349 阅读 · 0 评论 -
to_char和to_date
当增改查的时候,to_char和to_date的用法 select to_char(sysdate,'yyyy-mm-dd') from dualupdate teachers set hire_date=to_date('2012-06-01','yyyy-mm-dd') where teacher_id=12insert into teachers (teacher_原创 2012-12-04 14:25:57 · 357 阅读 · 0 评论 -
Oracle 内/左/右/全连接
teachers表: 部门表: 内连接: 左连接: 右连接: 全连接:原创 2012-12-04 13:11:42 · 269 阅读 · 0 评论 -
Oracle Having子句中使用子查询
select department_id, avg(wage) from teachers group by department_idhaving avg(wage) > (select(min(avg(wage))) from teachers group by department_id)原创 2012-12-04 10:22:21 · 770 阅读 · 0 评论 -
Oracle 多列子查询
select * from teachers where (department_id, wage) in (select department_id, min(wage) from teachers group by department_id)利用此语句,就可以显示多列了。原创 2012-12-04 10:30:53 · 1486 阅读 · 0 评论 -
oracle 两字段重复
select max(aa.a),max(aa.b),max(aa.c),max(aa.d) from (select max(t1.fnumber) a,max(t1.name) b, substr(to_char(tim, 'yyyy-mm-dd hh24:mi:ss'), 1, 13) c, count(*) d from jiaban t lef原创 2013-04-16 22:25:19 · 683 阅读 · 0 评论