1.Oracle 复制表
create table tmps as select * from emp;
2.使用子查询插入数据
insert into temps select * from user_objects;
3.Oracle 中递归查询的使用
select * from emp start with ename='KING' connect by prior empno = mgr; 找出第顶部数据where ename='KING' 总是找出前一条数据的empno 等于当前的数据行的父节点mgr select empno,ename,sys_connect_by_path(ename,'/') from emp start with ename='KING' connect by prior empno = mgr;--能够现实层级管理并用‘/’连接
4.基本数据类型容纳的长度 char 2000 不足右补空格
varchar 4000 varchar2 4000
5.向表中添加列
alter table tableA add col1 varchar(2000)
6. lpad函数
lpad('source',len,'0') 左补足至N位 rpad('source',len,'0') 右补足0至N位 lower()转换为小写 upper()转换为大写 initcap() 单词首字母大写 select initcap('hello world') s from dual-->Hello World length(A) 取A的长度 substr('123456',start_index,length) substr('123456',2,3)->234 instr('123456','23'[,times]) 获得字符串出息的位置------> 2 ltrim() 去除左空格 rtrim() 去除右空格 trim() 删除两侧空格 contact() 连接两个字符串
7.oracle的number[pre[,scale]] 1<=pre<=38 -84<=scale<=127
8.取整
ceil() 向上取整 ceil(23.9)->24 ceil(-23.8) ->23 floor() 向下取整 floor(23.9)->23 floor(-23.9)->24 mod(12/5)->2 取模 sign() 正数 1 ,零->0 ,负数->-1 power(4,3) 4的三次方 trunc() trunc(2.789,2)->2.78 round(2.789,2)->2.79 trunc(2.789)=trunc(2.789,0)--->2.78
9.Oracle中日期的处理
SELECT SYSDATE FROM DUAL; 加上一个月 SELECT add_months(SYSDATE,1) FROM DUAL; select to_date('2011-09-12','YYYY-MM-DD') FROM DUAL;字符串转日期 select last_day(to_date('2011-09-12','YYYY-MM-DD')) FROM DUAL select months_between(to_date('2011-09-18','YYYY-MM-DD'),to_date('2011-09-14','YYYY-MM-DD')) FROM DUAL select next_day(to_date('2011-09-13','YYYY-MM-DD'),2) from dual--返回2011年09月13日后的第一个星期一 日期 DD MM YYYY MI HH,HH12,HH24 select TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') from dual