【Oracleエクササイズの共有1】

3492 ワード

HRユーザーログインのデフォルトパスワードはHRです.
 
--【1.給与が12000以上の従業員の名前と給与を照会する】
select first_name ||' '|| last_name as    ,salary  from employees where salary>12000 ;

--【2.従業員番号176の従業員の名前と部門番号の照会】
select first_name ||' '|| last_name as   ,d.department_id from employees 
join departments d on   employees.department_id = d.department_id and  employee_id=176;

--【3.給与が5000~12000以外の従業員の氏名と給与を選択】
select first_name ||''|| last_name as   ,salary  from employees where 
salary<5000 or salary>12000;
select first_name ||''|| last_name as   ,salary  from employees where salary 
not between  5000 and 12000;

--【4.1998-02-01から1998-05-01までの従業員の名前、job_id、および雇用時間を選択します】
select  first_name ||''|| last_name as   ,e.job_id,e.hire_date from employees e 
where e.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 as   ,e.department_id from  employees e 
where e.department_id=20 or e.department_id=50;

--【6.1994年に雇用された従業員の名前と雇用時間を選択】
select e.first_name,e.hire_date from employees e where e.hire_date 
between to_date('1994-01-01','yyyy-MM-dd') and to_date('1994-12-31','yyyy-MM-dd') ;

--【7.会社に管理者がいない社員の名前とjob_idを選ぶ】
select first_name ||''|| last_name as   ,job_id from employees e 
where e.manager_id is null  ;

--【8.会社にボーナスがある従業員の名前、給与、ボーナスレベルを選択する--検討する必要があります】
Select initcap(concat(last_name,first_name)) "  ",salary,commission_pct from employees where commission_pct is not null;

Select initcap(concat(last_name,first_name)) "  ",salary,commission_pct from employees where nvl2(commission_pct, commission_pct,0)>0;

select initcap(concat(last_name,first_name)) "  ", commission_pct from employees where nvl(commission_pct,0)<>0;

--【9.社員名の3文字目はaの社員名を選択】
select first_name ||''|| last_name as    from employees e 
where e.first_name like '__a%' and e.last_name like '__a%';

--【10.名前にアルファベットaとeが入っている従業員の名前を選択】
select first_name ||' '|| last_name as    from  employees e where e.first_name 
like '%a%' and e.first_name like '%e%' and e.last_name like'%a%' 
and e.last_name like'%e%';

--【11.システム時間表示】
select sysdate from dual;

--【12.従業員番号、氏名、賃金、および賃金が20%上昇した結果(new salary)】
select e.employee_id,first_name ||''|| last_name as   ,e.salary ,
e.salary*1.2  newSalary from  employees e;

--【13.従業員の名前を頭文字で並べ替え、名前の長さを書く】
select e.employee_id,first_name ||''|| last_name as   ,
length(e.last_name||e.first_name) from employees e order by e.first_name;

--【14.各従業員の氏名を照会し、各従業員が会社に勤務する月数を表示する】
select e.employee_id,first_name ||' '|| last_name as 
  ,round(months_between(sysdate,e.hire_date)) from  employees e;

--【15.従業員の名前と、会社で働いている月数(worked_month)を調べ、月数降順に並べます】
select e.employee_id,first_name ||' '|| last_name as 
  ,round(months_between(sysdate,e.hire_date)) as sda 
from  employees e order by sda desc;