SQL
子查询
--子查询(内查询)在主查询之前一次执行一次完成;子查询的结果被主查询使用(外查询)。
select * from score s where s.grade > (select s.grade from score s where s.id=2);
为表添加删除新的字段
--添加新的字段 test1
-- alter table emp add test1 varchar(10);
--删除一个字段 test1
--alter table emp drop(test1);
rowid的使用。
--查询所有的话要在*前面加上别名。
--select rowid,e.* from emp e;
rownum的使用。(用 < 别用 > )
select rownum,e.* from emp e where rownum < 2;
NVL(E1, E2)的功能为:
case when 用法
select avg(nvl(e.comm,0)),
case
when avg(nvl(e.comm,0))>300
then '奖金还不错'
when avg(nvl(e.comm,0))>100and avg(nvl(e.comm,0))<300
then '有点点奖金'
when avg(nvl(e.comm,0))<100
then '几乎没奖金'
end 奖金状况
from emp e group by e.deptno;
备份一张表
create table emp1 as select * from emp;
插入指定行数据
insert into emp1 e (e.empno,e.sal,e.deptno) values (7999,4100,30);
mysql和oracle的区别
(1)mysql小一点 oracle大一点 (2)oracle可以给用户不同的权限相对安全 (3)查询分页mysql用limit 而oracle用rownum(4)自增mysql用 auto_increment oracle用序列。
MySql 计算两个时间之间的秒数
select timestampdiff(SECOND,'2011-09-30','2011-10-01');
select (UNIX_TIMESTAMP(endTime) - UNIX_TIMESTAMP(startTime)) dif_second from pp_press_status;
DECODE 函数
逻辑编程中,经常用到If – Then –Else 进行逻辑判断。在DECODE的语法中,实际上就是这样的逻辑处理过程。它的语法如下:
DECODE(value, if1, then1, if2,then2, if3,then3, . . . else )
Value 代表某个表的任何类型的任意列或一个通过计算所得的任何结果。当每个value值被测试,如果value的值为if1,Decode 函数的结果是then1;如果value等于if2,Decode函数结果是then2;等等。事实上,可以给出多个if/then 配对。如果value结果不等于给出的任何配对时,Decode 结果就返回else 。
需要注意的是,这里的if、then及else 都可以是函数或计算表达式。