Rozwiazania do zadań
Instrukcja SELECT
Zadanie 1.1
select employee_id, job_id, department_id
from job_history;
Rezultat:
| EMPLOYEE_ID | JOB_ID | DEPARTMENT_ID |
|---|---|---|
| 102 | IT_PROG | 60 |
| 101 | AC_ACCOUNT | 110 |
| 101 | AC_MGR | 110 |
| 201 | MK_REP | 20 |
| 114 | ST_CLERK | 50 |
| 122 | ST_CLERK | 50 |
| 200 | AD_ASST | 90 |
| 176 | SA_REP | 80 |
| 176 | SA_MAN | 80 |
| 200 | AC_ACCOUNT | 90 |
Zadanie 1.2:
select *
from jobs;
Alternatywne rozwiązanie polega na podanie wszystkich kolumn na liście select.
select job_id, job_title, min_salary, max_salary
from jobs;
| JOB_ID | JOB_TITLE | MIN_SALARY | MAX_SALARY |
|---|---|---|---|
| AD_PRES | President | 20080 | 40000 |
| AD_VP | Administration Vice President | 15000 | 30000 |
| AD_ASST | Administration Assistant | 3000 | 6000 |
| FI_MGR | Finance Manager | 8200 | 16000 |
| FI_ACCOUNT | Accountant | 4200 | 9000 |
| AC_MGR | Accounting Manager | 8200 | 16000 |
| AC_ACCOUNT | Public Accountant | 4200 | 9000 |
| SA_MAN | Sales Manager | 10000 | 20080 |
| SA_REP | Sales Representative | 6000 | 12008 |
| PU_MAN | Purchasing Manager | 8000 | 15000 |
| PU_CLERK | Purchasing Clerk | 2500 | 5500 |
| ST_MAN | Stock Manager | 5500 | 8500 |
| ST_CLERK | Stock Clerk | 2008 | 5000 |
| SH_CLERK | Shipping Clerk | 2500 | 5500 |
| IT_PROG | Programmer | 4000 | 10000 |
| MK_MAN | Marketing Manager | 9000 | 15000 |
| MK_REP | Marketing Representative | 4000 | 9000 |
| HR_REP | Human Resources Representative | 4000 | 9000 |
| PR_REP | Public Relations Representative | 4500 | 10500 |
Zadanie 1.3
select distinct department_id
from departments;
Rezultat:
| DEPARTMENT_ID |
|---|
| 10 |
| 20 |
| 30 |
| 40 |
| 50 |
| 60 |
| 70 |
| 80 |
| 90 |
| 100 |
| 110 |
| 120 |
| 130 |
| 140 |
| 150 |
| 160 |
| 170 |
| 180 |
| 190 |
| 200 |
| 210 |
| 220 |
| 230 |
| 240 |
| 250 |
| 260 |
| 270 |
Zadanie 1.4
select distinct job_id, salary
from employees;
Rezultat:
| JOB_ID | SALARY |
|---|---|
| FI_ACCOUNT | 6900 |
| PU_CLERK | 3100 |
| PU_CLERK | 2600 |
| ST_MAN | 5800 |
| ST_CLERK | 2100 |
| ST_CLERK | 3600 |
| ST_CLERK | 3100 |
| SA_MAN | 13500 |
| SA_REP | 7400 |
| SA_REP | 8600 |
| SH_CLERK | 3100 |
| HR_REP | 6500 |
| AD_VP | 17000 |
| FI_MGR | 12008 |
| SA_REP | 9000 |
| SH_CLERK | 2500 |
| SH_CLERK | 3000 |
| SH_CLERK | 3600 |
| MK_REP | 6000 |
| AC_MGR | 12008 |
| IT_PROG | 4800 |
| FI_ACCOUNT | 8200 |
| PU_MAN | 11000 |
| PU_CLERK | 2500 |
| ST_CLERK | 3300 |
| SA_MAN | 12000 |
| SA_MAN | 10500 |
| SA_REP | 7200 |
| SH_CLERK | 4200 |
| SH_CLERK | 4100 |
| SH_CLERK | 2900 |
| AD_ASST | 4400 |
| IT_PROG | 6000 |
| PU_CLERK | 2900 |
| ST_MAN | 8200 |
| ST_CLERK | 3200 |
| ST_CLERK | 2800 |
| ST_CLERK | 3500 |
| ST_CLERK | 2600 |
| SA_REP | 9500 |
| SA_REP | 10500 |
| SA_REP | 6400 |
| SA_REP | 11500 |
| SA_REP | 6100 |
| SH_CLERK | 2800 |
| SH_CLERK | 3400 |
| SH_CLERK | 2600 |
| MK_MAN | 13000 |
| FI_ACCOUNT | 7800 |
| ST_CLERK | 2700 |
| ST_CLERK | 2400 |
| SA_MAN | 14000 |
| SA_MAN | 11000 |
| SA_REP | 8000 |
| SA_REP | 9600 |
| SH_CLERK | 4000 |
| IT_PROG | 9000 |
| IT_PROG | 4200 |
| ST_MAN | 6500 |
| ST_CLERK | 2900 |
| SA_REP | 7000 |
| SA_REP | 6800 |
| SA_REP | 6200 |
| SA_REP | 11000 |
| SA_REP | 8400 |
| SH_CLERK | 3900 |
| AD_PRES | 24000 |
| ST_MAN | 8000 |
| SA_REP | 10000 |
| SA_REP | 7500 |
| SA_REP | 7300 |
| SA_REP | 8800 |
| SH_CLERK | 3200 |
| SH_CLERK | 3800 |
| PR_REP | 10000 |
| FI_ACCOUNT | 9000 |
| FI_ACCOUNT | 7700 |
| PU_CLERK | 2800 |
| ST_MAN | 7900 |
| ST_CLERK | 2200 |
| ST_CLERK | 2500 |
| AC_ACCOUNT | 8300 |
Zadanie 1.5
select street_address as "Ulica", postal_code as "Kod Pocztowy",
city as "Miasto", country_id as "Panstwo"
from locations;
Rezultat:
| Ulica | Kod Pocztowy | Miasto | Panstwo |
|---|---|---|---|
| 1297 Via Cola di Rie | 00989 | Roma | IT |
| 93091 Calle della Testa | 10934 | Venice | IT |
| 2017 Shinjuku-ku | 1689 | Tokyo | JP |
| 9450 Kamiya-cho | 6823 | Hiroshima | JP |
| 2014 Jabberwocky Rd | 26192 | Southlake | US |
| 2011 Interiors Blvd | 99236 | South San Francisco | US |
| 2007 Zagora St | 50090 | South Brunswick | US |
| 2004 Charade Rd | 98199 | Seattle | US |
| 147 Spadina Ave | M5V 2L7 | Toronto | CA |
| 6092 Boxwood St | YSW 9T2 | Whitehorse | CA |
| 40-5-12 Laogianggen | 190518 | Beijing | CN |
| 1298 Vileparle (E) | 490231 | Bombay | IN |
| 12-98 Victoria Street | 2901 | Sydney | AU |
| 198 Clementi North | 540198 | Singapore | SG |
| 8204 Arthur St | London | UK | |
| Magdalen Centre, The Oxford Science Park | OX9 9ZB | Oxford | UK |
| 9702 Chester Road | 09629850293 | Stretford | UK |
| Schwanthalerstr. 7031 | 80925 | Munich | DE |
| Rua Frei Caneca 1360 | 01307-002 | Sao Paulo | BR |
| 20 Rue des Corps-Saints | 1730 | Geneva | CH |
| Murtenstrasse 921 | 3095 | Bern | CH |
| Pieter Breughelstraat 837 | 3029SK | Utrecht | NL |
| Mariano Escobedo 9991 | 11932 | Mexico City | MX |
Zadanie 1.6
select region_name nazwa
from regions;
Rezultat:
| NAZWA |
|---|
| Europe |
| Americas |
| Asia |
| Middle East and Africa |
Zadanie 1.7
select (4/2) * (4/2) * 3.14
from dual;
Rezultat:
| (4/2)(4/2)3.14 |
|---|
| 12.56 |
Zadanie 1.8
select 2 * 8 - 4 as "wynik"
from dual;
Rezultat:
| wynik |
|---|
| 12 |
Zadanie 1.9
select (3 * 3 + 5 * 5 * 5) / 2 as "wynik"
from dual;
Rezultat:
| wynik |
|---|
| 67 |
Zadanie 1.10
select first_name, last_name, hire_date,
(40 * 365) + hire_date "Data Zakonczenia"
from employees;
Rezultat:
| FIRST_NAME | LAST_NAME | HIRE_DATE | Data Zakonczenia |
|---|---|---|---|
| Steven | King | 17-JUN-03 | 07-JUN-43 |
| Neena | Kochhar | 21-SEP-05 | 11-SEP-45 |
| Lex | De Haan | 13-JAN-01 | 03-JAN-41 |
| Alexander | Hunold | 03-JAN-06 | 24-DEC-45 |
| Bruce | Ernst | 21-MAY-07 | 11-MAY-47 |
| David | Austin | 25-JUN-05 | 15-JUN-45 |
| ... | ... | ... | ... |
Zadanie 1.11
select 'Krystian' || ' ' || 'Zieja' as "Nazwa"
from dual;
Rezultat:
| Nazwa |
|---|
| Krystian Zieja |
Zadanie 1.12
select first_name || ' ' || last_name "Pracownik", salary "Pensja"
from employees;
Rezultat:
| Pracownik | Pensja |
|---|---|
| Steven King | 24000 |
| Neena Kochhar | 17000 |
| Lex De Haan | 17000 |
| Alexander Hunold | 9000 |
| Bruce Ernst | 6000 |
| David Austin | 4800 |
Zadanie 1.13
select q'#Szanowny Pan'Pani #' || first_name || ' ' || last_name as "Naglowek"
from employees;
Rezultat:
| Naglowek |
|---|
| Szanowny Pan'Pani Ellen Abel |
| Szanowny Pan'Pani Sundar Ande |
| Szanowny Pan'Pani Mozhe Atkinson |
| Szanowny Pan'Pani David Austin |
| Szanowny Pan'Pani Hermann Baer |
| Szanowny Pan'Pani Shelli Baida |
| Szanowny Pan'Pani Amit Banda |
| ... |
Klauzula WHERE
Zadanie 2.1
select last_name, first_name, salary
from employees
where salary = 10000;
Rezultat:
| LAST_NAME | FIRST_NAME | SALARY |
|---|---|---|
| Tucker | Peter | 10000 |
| King | Janette | 10000 |
| Bloom | Harrison | 10000 |
| Baer | Hermann | 10000 |
Zadanie 2.2
select last_name, job_id
from employees
where job_id = 'Sa_Rep';
Rezultat:
no rows selected
Zadanie 2.3
select last_name, job_id
from employees
where job_id = 'SA_REP';
Rezultat:
| LAST_NAME | JOB_ID |
|---|---|
| Abel | SA_REP |
| Ande | SA_REP |
| Banda | SA_REP |
| Bates | SA_REP |
| Bernstein | SA_REP |
| Bloom | SA_REP |
| Cambrault | SA_REP |
| Doran | SA_REP |
| Fox | SA_REP |
| Grant | SA_REP |
| Greene | SA_REP |
| Hall | SA_REP |
| Hutton | SA_REP |
| Johnson | SA_REP |
| King | SA_REP |
| Kumar | SA_REP |
| ... | ... |
Zadanie 2.4
select first_name, last_name, salary
from employees
where first_name || ' ' || last_name = 'Steven King';
Rezultat:
| FIRST_NAME | LAST_NAME | SALARY |
|---|---|---|
| Steven | King | 24000 |
Zadanie 2.5
alter session set nls_date_format = 'DD-MON-RR';
Rezultat:
session SET altered.
Zadanie 2.6
select employee_id "numer pracownika"
from job_history
where start_date = '13-JAN-2001';
Zadanie 2.7
select employee_id
from job_history
where start_date = end_date;
Rezultat:
No rows returned.
Zadanie 2.8
select employee_id, start_date+30
from job_history
where start_date + 30 = '12-FEB-01';
Rezultat:
| EMPLOYEE_ID | START_DATE+30 |
|---|---|
| 102 | 12-FEB-01 |
Zadanie 2.9
select last_name, salary
from employees
where salary > 5000;
Rezultat:
| LAST_NAME | SALARY |
|---|---|
| King | 24000 |
| Kochhar | 17000 |
| De Haan | 17000 |
| Hunold | 9000 |
Zadanie 2.10
select last_name, salary
from employees
where salary < 4000;
| LAST_NAME | SALARY |
|---|---|
| Khoo | 3100 |
| Baida | 2900 |
| Tobias | 2800 |
| Himuro | 2600 |
| Colmenares | 2500 |
Zadanie 2.11
select last_name, commission_pct
from employees
where commission_pct >= 0.3
Rezultat:
| LAST_NAME | COMMISSION_PCT |
|---|---|
| Russell | 0.4 |
| Partners | 0.3 |
| Errazuriz | 0.3 |
| Cambrault | 0.3 |
| Tucker | 0.3 |
| King | 0.35 |
| Sully | 0.35 |
| McEwen | 0.35 |
| Smith | 0.3 |
| Doran | 0.3 |
| Abel | 0.3 |
Zadanie 2.12
select last_name, commission_pct
from employees
where commission_pct <= 0.1;
Rezultat:
| LAST_NAME | COMMISSION_PCT |
|---|---|
| Marvins | 0.1 |
| Lee | 0.1 |
| Ande | 0.1 |
| Banda | 0.1 |
| Kumar | 0.1 |
| Johnson | 0.1 |
Zadanie 2.13
select first_name, last_name
from employees
where salary != department_id * 100;
Zadanie 2.14
select employee_id, start_date
from job_history
where start_date > '01-FEB-2002';
Rezultat:
| EMPLOYEE_ID | START_DATE |
|---|---|
| 201 | 17-FEB-04 |
| 114 | 24-MAR-06 |
| 122 | 01-JAN-07 |
| 176 | 24-MAR-06 |
| 176 | 01-JAN-07 |
| 200 | 01-JUL-02 |
Zadanie 2.15
select department_name
from departments
where department_name != 'IT';
Rezultat:
| DEPARTMENT_NAME |
|---|
| Administration |
| Marketing |
| Purchasing |
| ... |
Zadanie 2.16
select department_id, department_name
from departments
where department_id between 30 and 50;
Rezultat:
| DEPARTMENT_ID | DEPARTMENT_NAME |
|---|---|
| 30 | Purchasing |
| 40 | Human Resources |
| 50 | Shipping |
Zadanie 2.17
select department_id, department_name
from departments
where department_id in (10,20,30);
Rezultat:
| DEPARTMENT_ID | DEPARTMENT_NAME |
|---|---|
| 10 | Administration |
| 20 | Marketing |
| 30 | Purchasing |
Zadanie 2.18
select street_address, postal_code, city
from locations
where country_id in ('US','UK');
Rezultat:
| STREET_ADDRESS | POSTAL_CODE | CITY |
|---|---|---|
| 8204 Arthur St | London | |
| Magdalen Centre, The Oxford Science Park | OX9 9ZB | Oxford |
| 9702 Chester Road | 09629850293 | Stretford |
| 2014 Jabberwocky Rd | 26192 | Southlake |
| 2011 Interiors Blvd | 99236 | South San Francisco |
| 2007 Zagora St | 50090 | South Brunswick |
| 2004 Charade Rd | 98199 | Seattle |
Zadanie 2.19
select country_name
from countries
where country_name like 'I%a%';
Rezultat:
| COUNTRY_NAME |
|---|
| Israel |
| India |
| Italy |
Zadanie 2.20
select country_name
from countries
where country_name like '_n%s%';
Rezultat:
| COUNTRY_NAME |
|---|
| United States of America |
Zadanie 5.1
select min(commission_pct), max(commission_pct)
from employees;
Zdanie 5.2
select count(*)
from employees
where department_id = 80;
Zadanie 5.3
select count(distinct department_id)
from employees;
Zadanie 5.4
select department_id, avg(salary)
from employees
group by department_id
order by department_id;
Zadanie 5.5
select job_id, sum(salary)
from employees
group by job_id;
Zadanie 5.6
select country_id, city, count(*)
from locations
group by country_id, city;
Zadanie 5.7
select department_id, max(salary)
from employees
group by department_id
having max(salary) > 10000;
Zadanie 5.8
select job_id, min(salary), max(salary), avg(salary)
from employees
group by job_id;
Zadanie 6.1
select employee_id, job_id, department_id
from employees
intersect
select employee_id, job_id, department_id
from job_history;