Oracle
基本查询:
select * from emp;
select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp;
select empno 员工编号,ename as 员工姓名,job "工作",mgr as "上级领导",hiredate "123456" from emp;
select distinct job from emp;
select empno,ename, sal*12 as 年薪 from emp;
select empno,ename,sal,comm, sal*12+comm as 年收入 from emp;
select empno,ename,sal,comm, sal*12+nvl(comm,0) as 年收入 from emp;
select concat(concat('a','b'),'c') from dual;
select 'a'||'b'||'cWEFasfaSFsdf' from dual;
条件查询:
select *
from emp
where comm is not null and comm >0;
select *
from emp
where comm >0;
select *
from emp
where sal > 1500 and sal < 3000;
select *
from emp
where sal >= 1500 and sal <= 3000;
select *
from emp
where sal between 1500 and 3000;
select * from emp where ename like '%M%';
select * from emp where ename like '_M%';
排序查询:
select *
from emp
order by sal desc;
select *
from emp
order by comm desc nulls last;
单行函数:
select upper('abc') from dual;
select lower('ABC') from dual;
select substr('hello',0,2) from dual;
select substr('hello',1,2) from dual;
select substr('hello',2,2) from dual;
select replace('hello','l','x') from dual;
select round(5699.863) from dual;
select round(5699.863,2) from dual;
select trunc(5699.863) from dual;
select trunc(5699.866,2) from dual;
select sysdate from dual;
select empno,ename,hiredate, trunc(sysdate-hiredate) 入职天数
from emp;
select empno,ename,hiredate, trunc((sysdate-hiredate) /7 )入职周数
from emp;
select 123,to_char(123) from dual;
select sysdate,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
select '123456',to_number('123456') from dual;
select '2018-08-01 10:20:30',to_date('2018-08-01 10:20:30','yyyy-mm-dd hh24:mi:ss') from dual;
select empno,ename,deptno,
case deptno
when 10 then 'java部门'
when 20 then 'UI部门'
else
'总裁办公室'
end as "部门名称"
from emp;
select empno,ename,deptno,
decode(deptno,10,'java部门',20,'UI部门','总裁办公室')
as "部门名称" from emp;
多行函数(聚合函数):
select count(*) from emp;
select count(empno) from emp;
select avg(sal) from emp;
select deptno,avg(sal)
from emp
group by deptno;
select deptno,avg(sal)
from emp
group by deptno
having avg(sal) > 2000;