日期处理
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;