SQL开发模板
查询操作
简单查询
1、选择所有 select * from table;
2、选择部分列 select column1,column2 from table;
3、使用算数表达式 select salary+300 from emlpoyees;
4、使用 ()select 12*(salary+20) from emlpoyees;
5、使用列别名 select first_name Fname from employees;
6、使用字符串连接符 select first_name || last_name from employees;
7、过滤重复 select distinct department_id from employees;
8、where子句查询数据 select employee_id,last_name,job_id from employees where department_id=90;
9、order by 子句排序 select last_name from employees order by hire_date;
10、group 分组查询
select avg (salary),
max (salary),
min (salary),
sum (salary),
count (*),
count (commission_pct)
from employees where job_id like ‘%REP%’;
select department_id,
avg (salary)
from employees group by department_id;
select department_id,
max(salary)
from employees
group by department_id having max(salary) >10000;
select job_id ,
sum(salary) payroll
from employees
where job_id not like '%rep%'
group by job_id having sum(salary)>13000
order by sum(salary);
11、子查询
单行子查询
select last_name
from employees
where salary>(select salary from employees where last_name ='Abel');
select last_name ,job_id,salary
from employess
where job_id=(select job_id
from employees
where employee_id=141)
and salary>(select salary
from employees
where employee_id=143);
select last_name,job_id,salary
from employess
where salary= (select min(salary) from employees);
select department_id,min(salary)
from employees
group by department_id
having min(salary)>(select min(salary) from employees where department_id=50);
多行子查询
select employee_id,last_name,job_id,salary
from employees
where salary<any (select salary from employees where job_id ='IT_PROG')
and job_id<>'IT_PROG';
select employee_id,last_name,job_id,salary
from employees
where salary<all (select salary from employees where job_id ='IT_PROG')
and job_id <>'IT_PROG';
select emp.last_name
from employees emp
where emp.employee_id not in (select mgr.manager_id from employees mgr);
12、Top-N 查询
select rownum as rank,last_name,salary
from (select last_name,salary from employees order by salary desc)
where rownum<=3;
1、选择所有 select * from table;
2、选择部分列 select column1,column2 from table;
3、使用算数表达式 select salary+300 from emlpoyees;
4、使用 ()select 12*(salary+20) from emlpoyees;
5、使用列别名 select first_name Fname from employees;
6、使用字符串连接符 select first_name || last_name from employees;
7、过滤重复 select distinct department_id from employees;
8、where子句查询数据 select employee_id,last_name,job_id from employees where department_id=90;
9、order by 子句排序 select last_name from employees order by hire_date;
10、group 分组查询
select avg (salary),
max (salary),
min (salary),
sum (salary),
count (*),
count (commission_pct)
from employees where job_id like ‘%REP%’;
select department_id,
avg (salary)
from employees group by department_id;
select department_id,
max(salary)
from employees
group by department_id having max(salary) >10000;
select job_id ,
sum(salary) payroll
from employees
where job_id not like '%rep%'
group by job_id having sum(salary)>13000
order by sum(salary);
11、子查询
单行子查询
select last_name
from employees
where salary>(select salary from employees where last_name ='Abel');
select last_name ,job_id,salary
from employess
where job_id=(select job_id
from employees
where employee_id=141)
and salary>(select salary
from employees
where employee_id=143);
select last_name,job_id,salary
from employess
where salary= (select min(salary) from employees);
select department_id,min(salary)
from employees
group by department_id
having min(salary)>(select min(salary) from employees where department_id=50);
多行子查询
select employee_id,last_name,job_id,salary
from employees
where salary<any (select salary from employees where job_id ='IT_PROG')
and job_id<>'IT_PROG';
select employee_id,last_name,job_id,salary
from employees
where salary<all (select salary from employees where job_id ='IT_PROG')
and job_id <>'IT_PROG';
select emp.last_name
from employees emp
where emp.employee_id not in (select mgr.manager_id from employees mgr);
12、Top-N 查询
select rownum as rank,last_name,salary
from (select last_name,salary from employees order by salary desc)
where rownum<=3;
转载于:https://blog.51cto.com/ilexes/194471