1. 程式人生 > >數據庫常用sql

數據庫常用sql

統計 mail 批量 location for hint ase from insert語句

查詢完整的語法:
SELECT [ALL|DISTINCT] TOP n[PERCENT] WITH TIES select_list
[INTO[new table name]]
[FROM{table_name|view_name}[(optimizer_hints)]]
[WHERE clause]
[GROUP BY clause]
[HAVING clause]
[ORDER BY clause]
[COMPUTE clause]
[FOR BROWSE]

1、查找多表指定列的數據
select pay_job_level,budget_year
from mbs_base_pay,mbs_budget

2、DISTINCT關鍵字,指定字段唯一
select DISTINCT pay_job_level
from mbs_base_pay

3.WHERE子句
select pay_job_level
from mbs_base_pay
where pay_post_type=‘策劃類‘

select pay_job_level
from mbs_base_pay
where pay_post_type like ‘策劃%‘

4.ORDER BY子句 升序 DESC 降序
select column_list
from table_name
order by [(order_by_expression[ASC|DESC])]
select last_name,job_id,salary
from employees
where salary>2000
order by job_id,salary desc;

5.GROUP BY 子句 分組查詢
select job_id,salary
from employees
order by job_id;

6.統計函數
select job_id,avg(salary),sum(salary),count(job_id)
from employees
group by job_id;

7.HAVING 子句 和GROUP BU子句一起使用
select job_id,avg(salary),sum(salary),max(salary),count(*)
from employees
group by job_id
having avg(salary)>10000;

8.多表鏈接查詢
1)簡單查詢
select employees_id,last_name,department_name
from employees,department
where employees.department_id=departments.department_id
and departments.department_name=‘Shipping‘;

2)表別名
select em.employees_id,em.last_name,dep.department_name
from employees em,department dep
where em.department_id=dep.department_id
and dep.department_name=‘Shipping‘;

9.集合操作
1)UNION 合集
select employee_id,last_name
from employees
where last_name like ‘C%‘ or last_name like ‘S%‘
union
select employee_id,last_name
from employees
where last_name like ‘S%‘ or last_name like ‘T%‘;

2)INTERSECT 交集
select employee_id,last_name
from employees
where last_name like ‘C%‘ or last_name like ‘S%‘
intersect
select employee_id,last_name
from employees
where last_name like ‘S%‘ or last_name like ‘T%‘;

3)MINUS 差集
select employee_id,last_name
from employees
where last_name like ‘C%‘ or last_name like ‘S%‘
minus
select employee_id,last_name
from employees
where last_name like ‘S%‘ or last_name like ‘T%‘;

10.子查詢
1)IN 關鍵字
select employee_id,last_name,department_id
from employees
where department_id in(
select department_id
from departments
where location_id=1700);

2)比較運算符
select employee_id,last_name,job_id,salary
from employees
where job_id=‘PU_MAN‘ and
salary>=(sekect avg(salary) from employees
where job_id=‘PU_MAN‘);

11.INSERT 語句
1)一般INSERT語句
insert into jobs(job_id,job_title,min_salary,max_salary)
values(‘IT_TEST‘,‘測試員‘,3000,8000);

2)批量INSERT語句
insert into IT_EMPLOYEES(
employee_id,first_name,last_name,email,phone_number,job_salary,manager_id)
select em.employee_id,em.first_name,em.last_name,em.email,em.phone_name,em.job_id,em.salary,em.manager_id
from employees em,department dep
where em.department_id=dep.department_id
and dep.department_name=‘IT‘;

12.UPDATE語句
update employees
set salary = salary * 1.15
where job_id=‘IT_PROG‘;

update employees
set salary=
(select avg(salary)
from employees
where job_id=‘IT_PROG‘)
where employee_id=104;

13.DELETE語句 刪除後可恢復
delete from it_employees
where employee_id=107;

14.TRUNCATE語句 刪除後不能恢復,但表結構保留
truncate table it_employees;

數據庫常用sql