oracle笔记

来源:互联网 发布:大数据投融资新闻 编辑:程序博客网 时间:2024/05/16 05:33

日期处理

to_date('2012-12-12 12:12:12', 'yyyy-mm-dd hh24:mi:ss');

 PreparedStatement ps = new PreparedStatement();

StringBuffer sql= new StringBuffer();

sql.append("select * from table where id = ?");这里设置了一个"?"号,它的值暂时还不确定。

ps = conn.prepareStatement(sql.toString());将sql语句进行预编译.设置?号的值ps.setString(1, “123”);1代表?号的序列(第几个?),后面的就是设置的值。

执行ps.executeQuery();返回ResultSet结果集

查询部门、职位和 SMITH都相同的员工信息。(注意:这里的是多个条件的判断)

select ename from emp e where (e.deptno,e.job) = (select deptno,job from emp where ename='SMITH');

===数据库分组order by

 select ename ,job from emp order by 2;2表示第2列(ename 1, job 2)。

===查询工资高于本部门的平均工资的信息

方法1:select e.ename,e.sal from emp e where e.sal > (select avg(sal) from emp ee where ee.deptno = e.deptno);

方法2:可以把条件当做一张表处理

select e.ename, e.sal from emp e,(select avg(sal) myavg , deptno from emp group by deptno) T where e.deptno=T.deptno and e.sal > T.myavg;

==分页技术

 select t2.* , rownum from (select t1.*,rownum  rn from (select * from emp order by sal desc) t1 where rownum <=6) t2 where rn >= 4;

说明:最里面的(select * from emp order by sal desc)表示符合条件的表、数据(无论是单表还是多表)。查询第4-6的记录

依据一张表生成一张表
create table mytest as select empno, ename,sal,comm,deptno from emp;
自我复制
insert into mytest  (select * from mytest);最好无primary

key


正确的复制一张表

create table employee1 as select * from emp order by ename desc;