ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle coll

oracle coll

原创 Linux操作系统 作者:leonwoo 时间:2008-06-17 10:07:27 0 删除 编辑

1. 组合索引(concatenated index):由多个列构成的索引,如create index idx_emp on emp(col1, col2, col3, ……),则我们称idx_emp索引为组合索引。在组合索引中有一个重要的概念:引导列(leading column),在上面的例子中,col1列为引导列。当我们进行查询时可以使用”where col1 = ? ”,也可以使用”where col1 = ? and col2 = ?”,这样的限制条件都会使用索引,但是”where col2 = ? ”查询就不会使用该索引。所以限制条件中包含先导列时,该限制条件才会使用该组合索引。

[2] 组合索引
   
当某个索引包含有多个已索引的列时,称这个索引为组合(concatented)索引。在 Oracle9i引入跳跃式扫描的索引访问方法之前,查询只能在有限条件下使用该索引。比如:表emp有一个组合索引键,该索引包含了empno、 ename和deptno。在Oracle9i之前除非在where之句中对第一列(empno)指定一个值,否则就不能使用这个索引键进行一次范围扫 描。
   
特别注意:在Oracle9i之前,只有在使用到索引的前导索引时才可以使用组合索引!

 

2.查找表里的重复记录

select count(*) from table_name where rowid in (select a.rowid from table_name a, table_name b where a.rowid < b.rowid and a.col1=b.col1 and a.col2 = b.col2 and a.col3=b.col3); 

3.删除表里的重复记录

delete from table_name where rowid in (select a.rowid from table_name a, table_name b where a.rowid < b.rowid and a.col1=b.col1 and a.col2 = b.col2 and a.col3=b.col3);

4,

[Q]如何插入单引号到数据库表中
[A]
可以用ASCII码处理,其它特殊字符如&也一样,如
insert into t values('i'||chr(39)||'m'); -- chr(39)
代表字符
'
或者用两个单引号表示一个

or insert into t values('I''m'); --
两个''可以表示一个'。

5

[Q]抽取从N行到M行的记录,如从20行到30行的记录
[A]select * from (select rownum id,t.* from table where ……
and rownum <= 30) where id > 20;

6.

数据库字符集(oracle服务器端字符集)
        数据库字符集在创建数据库时指定,在创建后通常不能更改。在创建数据库时,可以指定字符集(CHARACTER SET)和国家字符集(NATIONAL CHARACTER SET)。
2.4.1 字符集

    (1) 用来存储CHAR, VARCHAR2, CLOB, LONG等类型数据

    (2) 用来标示诸如表名、列名以及PL/SQL变量等

    (3) 用来存储SQL和PL/SQL程序单元等

2.4.2 国家字符集:

    (1) 用以存储NCHAR, NVARCHAR2, NCLOB等类型数据

    (2) 国家字符集实质上是为oracle选择的附加字符集,主要作用是为了增强oracle的字符处理能力,因为NCHAR数据类型可以提供对亚洲使用定长多字节编码的支持,而数据库字符集则不能。国家字符集在oracle9i中进行了重新定义,只能在unicode编码中的AF16UTF16和UTF8中选择,默认值是
AF16UTF16
2.4.3
查询字符集参数

    可以查询以下数据字典或视图查看字符集设置情况

    nls_database_parameters 、props$、
v$nls_parameters
   
查询结果中NLS_CHARACTERSET表示字符集,NLS_NCHAR_CHARACTERSET表示国家字符集

7.

       查看oracle的sga

        Show sga或者select * from v$sga;

8.

        EXP <user-id/password@database to be copied>"

        IMP @INSTANCE FILE= FULL=Y
9.                    批量更新某个字段部分内容
update ptlogicact set logicclass='pub'||substr(ptlogicact.logicclass,3,length(ptlogicact.logicclass))

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

上一篇: oracle explain plan
请登录后发表评论 登录
全部评论

注册时间:2008-06-16

  • 博文量
    20
  • 访问量
    14330