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>"
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/79730/viewspace-350500/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/79730/viewspace-350500/