oracle基本查询练习
select * from regions;
select * from countries;
select * from locations;
select * from departments;
select * from jobs;
select * from employees;
select * from job_history;
1. 查询工资大于12000的员工姓名和工资
select '姓名:' || first_name || last_name || ',工资:' || salary
from employees
where salary > 12000;
2. 查询员工号为176的员工的姓名和部门号
select first_name, department_id from employees where employee_id = 176;
3. 选择工资不在5000到12000的员工的姓名和工资
select first_name, salary from employees where salary not between 5000 and 12000;
4. 选择雇用时间在1998-02-01到1998-05-01之间的员工姓名,job_id和雇用时间
select first_name, job_id, hire_date
from employees
where hire_date between to_date('1998-02-01', 'yyyy-mm-dd') and
to_date('1998-05-01', 'yyyy-mm-dd');
5. 选择在20或50号部门工作的员工姓名和部门号
select first_name, last_name, department_id
from employees
where department_id in (20, 50);
6. 选择在1994年雇用的员工的姓名和雇用时间
select first_name, last_name, hire_date
from employees
where to_char(hire_date, 'yyyy') = 1994;
7. 选择公司中没有管理者的员工姓名及job_id
select first_name, last_name, job_id
from employees
where manager_id is null;
8. 选择公司中有奖金的员工姓名,工资和奖金级别
Select last_name||' '||first_name,salary,commission_pct from employees where commission_pct is not null;
9. 选择员工姓名的第三个字母是a的员工姓名
select first_name, last_name from employees where first_name like '__a%';
10. 选择姓名中有字母a和e的员工姓名
select first_name || ' ' || last_name
from employees
where first_name || last_name like '%a%e'
or last_name || first_name like '%e%a';--为什么firts_name和last_name要倒置写一次??
11. 显示系统时间
select sysdate from dual;
12. 查询员工号,姓名,工资,以及工资提高百分之20%后的结果(new salary)
select * from employees;
select employee_id, first_name||' '||last_name, salary, salary * 1.2 as "new salary" from employees;
13. 将员工的姓名按首字母排序,并写出姓名的长度(length)
select initcap(concat(first_name,last_name)) "name",
length(concat(first_name, last_name)) "length"
from employees
order by substr(concat(first_name, last_name), 1, 1);
14. 查询各员工的姓名,并显示出各员工在公司工作的月份数
select initcap(concat(first_name, last_name)) "name",
round(months_between(sysdate, hire_date)) "month"
from employees
order by substr(concat(first_name, last_name), 1, 1);
15. 查询员工的姓名,以及在公司工作的月份数(worked_month),并按月份数降序排列
select initcap(concat(first_name, last_name)) "name",
round(months_between(sysdate, hire_date)) "worked_month"
from employees
order by "worked_month";