Oracle常用函数及操作命令简单整理
其中(1)、(2)、(3)为定义泛型
(1)定义接口泛型:
public interface IStudent<T> extends Serializable
(2)接口中定义方法
T executeStudent(Student s);
(3)在接口中定义的泛型方法
public <E> E getServiceMethod(Class<E> class).
(4)Oracle常用函数:Decode
如:DECODE(value, if1, then1, if2,then2, if3,then3, . . . else )
(5)Oracle常用函数:NVL
NVL( string1, replace_with)
功能:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值。
NVL2
NVL2(x,value1,value2)
功能:如果x非空,返回value1,否则返回value2
(6)Oracle常用函数:Round与TRUNC
Round函数对日期进行“四舍五入”,
Trunc函数对日期进行截取。
如果我们不指定格式的话,Round会返回一个最接近date参数的日期
Trunc函数只会简单的截取时分秒部分,返回年月日部分。
(7)Oracle消除重复号
select distinct deptno from emp;
(8)创建序列,并使用序列
CREATE SEQUENCE sequence_name
[START WITH num] //备注从某一个整数开始,升序,默认值是1,降序默认值是-1.
[INCREMENT BY increment] //增长数
[MAXVALUE num|NOMAXVALUE] //最大值,若nomaxvalue默认,升序最大值10的27次方。
[MINVALUE num|NOMINVALUE] //指最小值,若nominvalue,降序最小值为-10的26次方。
[CYCLE|NOCYCLE]//表示如果升序达到最大值后,从最小值重新开始;如果是降序序列,达到最小值后,从最大值重新开始。
[CACHE num|NOCACHE]//使用CACHE选项时,该序列会根据序列规则预生成一组序列号。保留在内存中,当使用下一个序列号时,可以更快的
响应。并保存在缓存中,这样可以提高生成序列号的效率。Oracle默认会生产20个序列号。
create sequence sequence_infos start with 1 increment by 1 nocycle cache 30;
select sequence_infos.nextval sequenceValue from dual;
(9)创建视图:
CREATE [OR REPLACE] //如果视图已经存在,则替换旧视图
[{FORCE|NOFORCE }] //force即使表不存在,也可创建,但视图不能正常使用,当表创建后,才可用
VIEW view_name
AS
SELECT 查询
[WITH READ ONLY CONSTRAINT] //通过视图可以对基表执行增删查改操作,但是有很多在基表上的限制。
//如:基表某列不能为空,但该列没有出现在视图中,则不能通过视图进行操作。
如:create or replace view empdetail as
select empno,ename,job,hiredate, emp.deptno,dname from emp join dept on emp.deptno=dept.deptno
with read only
select * from empdetail;
(10)索引:
第一种情况:如果表中的某些字段经常被查询并作为查询的条件出现时,就应考虑该列。
第二种情况:当从很多行的表中查询少数行时,也要考虑创建索引。
有一条基本的准则是:当任何单个查询要检索的行少于或者等于整个表行数的10%时,索引就非常有用。
语法:
CREATE [UNIQUE] //UNIQUE指定索引列上的值必须唯一。
INDEX index_name ON //index_name:指定索引名
table_name(column_name[,column_name]) //指定要为哪个表创建索引。
//column_name指定要对哪个列创建索引。
create unique index uq_ename_idx on emp(name);
(11)查看当前用户的序列.
select * from user_sequences