SQL. Idalaraya isiro

Hello Habr!

Fun diẹ sii ju ọdun 3 Mo ti nkọ SQL ni awọn ile-iṣẹ ikẹkọ lọpọlọpọ, ati ọkan ninu awọn akiyesi mi ni pe awọn ọmọ ile-iwe ni oye ati oye SQL dara julọ ti wọn ba fun wọn ni iṣẹ-ṣiṣe kan, kii ṣe sọrọ nipa awọn iṣeeṣe ati awọn ipilẹ imọ-jinlẹ.

Ninu nkan yii, Emi yoo pin pẹlu rẹ atokọ awọn iṣẹ ṣiṣe ti Mo fun awọn ọmọ ile-iwe bi iṣẹ amurele ati lori eyiti a ṣe ọpọlọpọ iru awọn ọpọlọ ọpọlọ, eyiti o yori si oye ti o jinlẹ ati oye ti SQL.

SQL. Idalaraya isiro

SQL (ˈɛsˈkjuˈɛl; eng. Èdè ìbéèrè tí a ṣe ìkéde) jẹ́ èdè ìkéde ìkéde tí a lò láti ṣẹ̀dá, ṣàtúnṣe àti láti ṣàkóso dátà nínú ibùdó dátà ìbátan tí a ń ṣàkóso nípasẹ̀ ètò ìṣàkóso ibùdó dátà tó yẹ. Kọ ẹkọ diẹ sii

O le ka nipa SQL lati oriṣiriṣi awọn orisun.
Nkan yii kii ṣe ipinnu lati kọ ọ SQL lati ibere.

Nitorinaa jẹ ki a lọ.

A yoo lo awọn daradara-mọ Ilana HR ni Oracle pẹlu awọn tabili rẹ (Ka siwaju):

SQL. Idalaraya isiro
Mo ṣe akiyesi pe a yoo gbero awọn iṣẹ-ṣiṣe nikan lori Yan. Ko si awọn iṣẹ-ṣiṣe lori DML ati DDL.

Awọn iṣẹ-ṣiṣe

Idinamọ ati Titọ Data

Abáni tabili. Gba akojọ kan pẹlu alaye nipa gbogbo awọn oṣiṣẹ
Ipinnu

SELECT * FROM employees

Abáni tabili. Gba atokọ ti gbogbo awọn oṣiṣẹ ti a npè ni 'David'
Ipinnu

SELECT *
  FROM employees
 WHERE first_name = 'David';

Abáni tabili. Gba atokọ ti gbogbo awọn oṣiṣẹ pẹlu job_id dọgba si 'IT_PROG'
Ipinnu

SELECT *
  FROM employees
 WHERE job_id = 'IT_PROG'

Abáni tabili. Gba atokọ ti gbogbo awọn oṣiṣẹ lati ẹka 50th (department_id) pẹlu owo osu (oya) ti o tobi ju 4000
Ipinnu

SELECT *
  FROM employees
 WHERE department_id = 50 AND salary > 4000;

Abáni tabili. Gba atokọ ti gbogbo awọn oṣiṣẹ lati 20th ati lati ẹka 30th (department_id)
Ipinnu

SELECT *
  FROM employees
 WHERE department_id = 20 OR department_id = 30;

Abáni tabili. Gba atokọ ti gbogbo awọn oṣiṣẹ ti lẹta ikẹhin ni orukọ wọn jẹ 'a'
Ipinnu

SELECT *
  FROM employees
 WHERE first_name LIKE '%a';

Abáni tabili. Gba atokọ ti gbogbo awọn oṣiṣẹ lati 50th ati lati ẹka 80th (department_id) ti o ni ẹbun (iye ninu iwe Commission_pct ko ṣofo)
Ipinnu

SELECT *
  FROM employees
 WHERE     (department_id = 50 OR department_id = 80)
       AND commission_pct IS NOT NULL;

Abáni tabili. Gba atokọ ti gbogbo awọn oṣiṣẹ ti orukọ wọn ni o kere ju awọn lẹta 2 'n' ninu.
Ipinnu

SELECT *
  FROM employees
 WHERE first_name LIKE '%n%n%';

Abáni tabili. Gba atokọ ti gbogbo awọn oṣiṣẹ ti orukọ wọn gun ju awọn lẹta mẹrin lọ
Ipinnu

SELECT *
  FROM employees
 WHERE first_name LIKE '%_____%';

Abáni tabili. Gba atokọ ti gbogbo awọn oṣiṣẹ ti owo-osu wọn wa laarin 8000 ati 9000 (pẹlu)
Ipinnu

SELECT *
  FROM employees
 WHERE salary BETWEEN 8000 AND 9000;

Abáni tabili. Gba atokọ ti gbogbo awọn oṣiṣẹ ti orukọ wọn ni aami ninu '%'
Ipinnu

SELECT *
  FROM employees
 WHERE first_name LIKE '%%%' ESCAPE '';

Abáni tabili. Gba atokọ ti gbogbo awọn ID oluṣakoso
Ipinnu

SELECT DISTINCT manager_id
  FROM employees
 WHERE manager_id IS NOT NULL;

Abáni tabili. Gba atokọ ti awọn oṣiṣẹ pẹlu awọn ipo wọn ni ọna kika: Donald (sh_clerk)
Ipinnu

SELECT first_name || '(' || LOWER (job_id) || ')' employee FROM employees;

Lilo Awọn iṣẹ Ọna Kan-kan lati Ṣe akanṣe Ijade

Abáni tabili. Gba atokọ ti gbogbo awọn oṣiṣẹ ti orukọ wọn gun ju awọn lẹta mẹrin lọ
Ipinnu

SELECT *
  FROM employees
 WHERE LENGTH (first_name) > 10;

Abáni tabili. Gba atokọ ti gbogbo awọn oṣiṣẹ ti o ni lẹta 'b' ni orukọ wọn (ọran aibikita)
Ipinnu

SELECT *
  FROM employees
 WHERE INSTR (LOWER (first_name), 'b') > 0;

Abáni tabili. Gba atokọ ti gbogbo awọn oṣiṣẹ ti orukọ wọn ni o kere ju awọn lẹta 2 'a'
Ipinnu

SELECT *
  FROM employees
 WHERE INSTR (LOWER (first_name),'a',1,2) > 0;

Abáni tabili. Gba atokọ ti gbogbo awọn oṣiṣẹ ti owo-osu wọn jẹ ọpọ ti 1000
Ipinnu

SELECT *
  FROM employees
 WHERE MOD (salary, 1000) = 0;

Abáni tabili. Gba nọmba oni-nọmba mẹta akọkọ ti nọmba foonu oṣiṣẹ ti nọmba rẹ ba wa ni ọna kika ХХХ.ХХХ.ХХХХ
Ipinnu

SELECT phone_number, SUBSTR (phone_number, 1, 3) new_phone_number
  FROM employees
 WHERE phone_number LIKE '___.___.____';

Eka tabili. Gba ọrọ akọkọ lati orukọ ẹka fun awọn ti o ni ọrọ ju ọkan lọ ni orukọ naa
Ipinnu

SELECT department_name,
       SUBSTR (department_name, 1, INSTR (department_name, ' ')-1)
           first_word
  FROM departments
 WHERE INSTR (department_name, ' ') > 0;

Abáni tabili. Gba awọn orukọ oṣiṣẹ laisi lẹta akọkọ ati ikẹhin ni orukọ
Ipinnu

SELECT first_name, SUBSTR (first_name, 2, LENGTH (first_name) - 2) new_name
  FROM employees;

Abáni tabili. Gba atokọ ti gbogbo awọn oṣiṣẹ ti lẹta ikẹhin ninu orukọ jẹ dọgba si 'm' ati ipari orukọ naa tobi ju 5 lọ.
Ipinnu

SELECT *
  FROM employees
 WHERE SUBSTR (first_name, -1) = 'm' AND LENGTH(first_name)>5;

Tabili meji. Gba ọjọ Jimọ ti nbọ
Ipinnu

SELECT NEXT_DAY (SYSDATE, 'FRIDAY') next_friday FROM DUAL;

Abáni tabili. Gba atokọ ti gbogbo awọn oṣiṣẹ ti o ti wa pẹlu ile-iṣẹ fun ọdun 17 ti o ju
Ipinnu

SELECT *
  FROM employees
 WHERE MONTHS_BETWEEN (SYSDATE, hire_date) / 12 > 17;

Abáni tabili. Gba atokọ ti gbogbo awọn oṣiṣẹ ti nọmba ikẹhin ti nọmba foonu jẹ aiṣedeede ati pe o ni awọn nọmba 3 ti o yapa nipasẹ aami kan.
Ipinnu

SELECT *
  FROM employees
 WHERE     MOD (SUBSTR (phone_number, -1), 2) != 0
       AND INSTR (phone_number,'.',1,3) = 0;

Abáni tabili. Gba atokọ ti gbogbo awọn oṣiṣẹ ti iye iṣẹ_id lẹhin ami '_' ni o kere ju awọn kikọ mẹta, ṣugbọn iye yii lẹhin '_' ko dọgba si 'CLERK'
Ipinnu

SELECT *
  FROM employees
 WHERE     LENGTH (SUBSTR (job_id, INSTR (job_id, '_') + 1)) > 3
       AND SUBSTR (job_id, INSTR (job_id, '_') + 1) != 'CLERK';

Abáni tabili. Gba atokọ ti gbogbo awọn oṣiṣẹ nipa rirọpo gbogbo '.' ni iye PHONE_NUMBER lori '-'
Ipinnu

SELECT phone_number, REPLACE (phone_number, '.', '-') new_phone_number
  FROM employees;

Lilo Awọn iṣẹ Iyipada ati Awọn ikosile Ni majemu

Abáni tabili. Gba atokọ ti gbogbo awọn oṣiṣẹ ti o wa lati ṣiṣẹ ni ọjọ akọkọ ti oṣu (eyikeyi)
Ipinnu

SELECT *
  FROM employees
 WHERE TO_CHAR (hire_date, 'DD') = '01';

Abáni tabili. Gba atokọ ti gbogbo awọn oṣiṣẹ ti o wa lati ṣiṣẹ ni ọdun 2008
Ipinnu

SELECT *
  FROM employees
 WHERE TO_CHAR (hire_date, 'YYYY') = '2008';

DUAL tabili. Ṣe afihan ọjọ ọla ni ọna kika: Ọla jẹ ọjọ keji ti Oṣu Kini
Ipinnu

SELECT TO_CHAR (SYSDATE, 'fm""Tomorrow is ""Ddspth ""day of"" Month')     info
  FROM DUAL;

Abáni tabili. Gba atokọ ti gbogbo awọn oṣiṣẹ ati ọjọ ibẹrẹ wọn ni ọna kika: 21st ti Oṣu kẹfa, ọdun 2007
Ipinnu

SELECT first_name, TO_CHAR (hire_date, 'fmddth ""of"" Month, YYYY') hire_date
  FROM employees;

Abáni tabili. Gba atokọ ti awọn oṣiṣẹ pẹlu awọn owo osu ti o pọ si nipasẹ 20%. Ṣe afihan owo osu pẹlu ami dola
Ipinnu

SELECT first_name, TO_CHAR (salary + salary * 0.20, 'fm$999,999.00') new_salary
  FROM employees;

Abáni tabili. Gba atokọ ti gbogbo awọn oṣiṣẹ ti o wa lati ṣiṣẹ ni Kínní 2007.
Ipinnu

SELECT *
  FROM employees
 WHERE hire_date BETWEEN TO_DATE ('01.02.2007', 'DD.MM.YYYY')
                     AND LAST_DAY (TO_DATE ('01.02.2007', 'DD.MM.YYYY'));

SELECT *
  FROM employees
 WHERE to_char(hire_date,'MM.YYYY') = '02.2007'; 

DUAL tabili. Ṣe okeere ọjọ lọwọlọwọ, + iṣẹju-aaya, + iṣẹju, + wakati, + ọjọ, + oṣu, + ọdun
Ipinnu

SELECT SYSDATE                          now,
       SYSDATE + 1 / (24 * 60 * 60)     plus_second,
       SYSDATE + 1 / (24 * 60)          plus_minute,
       SYSDATE + 1 / 24                 plus_hour,
       SYSDATE + 1                      plus_day,
       ADD_MONTHS (SYSDATE, 1)          plus_month,
       ADD_MONTHS (SYSDATE, 12)         plus_year
  FROM DUAL;

Abáni tabili. Gba atokọ ti gbogbo awọn oṣiṣẹ pẹlu owo osu ni kikun (ekunwo + commission_pct(%)) ni ọna kika: $24,000.00
Ipinnu

SELECT first_name, salary, TO_CHAR (salary + salary * NVL (commission_pct, 0), 'fm$99,999.00') full_salary
  FROM employees;

Abáni tabili. Gba atokọ ti gbogbo awọn oṣiṣẹ ati alaye nipa wiwa awọn ẹbun owo-oṣu (Bẹẹni / Bẹẹkọ)
Ipinnu

SELECT first_name, commission_pct, NVL2 (commission_pct, 'Yes', 'No') has_bonus
  FROM employees;

Abáni tabili. Gba ipele oya ti oṣiṣẹ kọọkan: Kere ju 5000 ni a gba pe ipele kekere, Ti o tobi ju tabi dogba si 5000 ati pe o kere ju 10000 ni a gba ni ipele deede, Ti o tobi ju tabi dogba si 10000 ni a gba ni ipele giga
Ipinnu

SELECT first_name,
       salary,
       CASE
           WHEN salary < 5000 THEN 'Low'
           WHEN salary >= 5000 AND salary < 10000 THEN 'Normal'
           ELSE 'High'
       END salary_level
  FROM employees;

tabili awọn orilẹ-ede. Fun orilẹ-ede kọọkan, ṣafihan agbegbe ti o wa: 1-Europe, 2-America, 3-Asia, 4-Africa (laisi Darapọ mọ)
Ipinnu

SELECT country_name country,
       DECODE (region_id,
               1, 'Europe',
               2, 'America',
               3, 'Asia',
               4, 'Africa',
               'Unknown')
           region
  FROM countries;

SELECT country_name
           country,
       CASE region_id
           WHEN 1 THEN 'Europe'
           WHEN 2 THEN 'America'
           WHEN 3 THEN 'Asia'
           WHEN 4 THEN 'Africa'
           ELSE 'Unknown'
       END
           region
  FROM countries;

Ijabọ Data Akopọ Lilo Awọn iṣẹ Ẹgbẹ

Abáni tabili. Gba ijabọ nipasẹ ẹka_id pẹlu owo osu ti o kere julọ ati ti o pọju, tete ati awọn ọjọ dide ti pẹ ati nọmba awọn oṣiṣẹ. Too nipasẹ nọmba awọn oṣiṣẹ (desc)
Ipinnu

  SELECT department_id,
         MIN (salary) min_salary,
         MAX (salary) max_salary,
         MIN (hire_date) min_hire_date,
         MAX (hire_date) max_hire_Date,
         COUNT (*) count
    FROM employees
GROUP BY department_id
order by count(*) desc;

Abáni tabili. Awọn oṣiṣẹ melo ni orukọ wọn bẹrẹ pẹlu lẹta kanna? Too nipa opoiye. Ṣe afihan awọn nikan nibiti nọmba naa ti tobi ju 1 lọ
Ipinnu

SELECT SUBSTR (first_name, 1, 1) first_char, COUNT (*)
    FROM employees
GROUP BY SUBSTR (first_name, 1, 1)
  HAVING COUNT (*) > 1
ORDER BY 2 DESC;

Abáni tabili. Awọn oṣiṣẹ melo ni o ṣiṣẹ ni ẹka kanna ati gba owo osu kanna?
Ipinnu

SELECT department_id, salary, COUNT (*)
    FROM employees
GROUP BY department_id, salary
  HAVING COUNT (*) > 1;

Abáni tabili. Gba ijabọ ti iye awọn oṣiṣẹ ti a gba ni ọjọ kọọkan ti ọsẹ. Too nipa opoiye
Ipinnu

SELECT TO_CHAR (hire_Date, 'Day') day, COUNT (*)
    FROM employees
GROUP BY TO_CHAR (hire_Date, 'Day')
ORDER BY 2 DESC;

Abáni tabili. Gba ijabọ lori iye awọn oṣiṣẹ ti a gba nipasẹ ọdun. Too nipa opoiye
Ipinnu

SELECT TO_CHAR (hire_date, 'YYYY') year, COUNT (*)
    FROM employees
GROUP BY TO_CHAR (hire_date, 'YYYY');

Abáni tabili. Gba nọmba awọn ẹka ti o ni awọn oṣiṣẹ
Ipinnu

SELECT COUNT (COUNT (*))     department_count
    FROM employees
   WHERE department_id IS NOT NULL
GROUP BY department_id;

Abáni tabili. Gba atokọ ti ẹka_id pẹlu diẹ sii ju awọn oṣiṣẹ 30 lọ
Ipinnu

  SELECT department_id
    FROM employees
GROUP BY department_id
  HAVING COUNT (*) > 30;

Abáni tabili. Gba atokọ ti awọn ẹka_ids ati apapọ owo-oṣu apapọ ti awọn oṣiṣẹ ni ẹka kọọkan.
Ipinnu

  SELECT department_id, ROUND (AVG (salary)) avg_salary
    FROM employees
GROUP BY department_id;

tabili awọn orilẹ-ede. Gba atokọ ti agbegbe_id apao ti gbogbo awọn lẹta ti gbogbo awọn orukọ orilẹ-ede ninu eyiti o ju 60 lọ
Ipinnu

  SELECT region_id
    FROM countries
GROUP BY region_id
  HAVING SUM (LENGTH (country_name)) > 60;

Abáni tabili. Gba atokọ ti ẹka_id ninu eyiti awọn oṣiṣẹ ti ọpọlọpọ (> 1) job_id ṣiṣẹ
Ipinnu

  SELECT department_id
    FROM employees
GROUP BY department_id
  HAVING COUNT (DISTINCT job_id) > 1;

Abáni tabili. Gba atokọ ti manager_id ti nọmba awọn alabojuto rẹ tobi ju 5 ati apapọ gbogbo awọn owo osu ti awọn ọmọ abẹ rẹ tobi ju 50000 lọ
Ipinnu

  SELECT manager_id
    FROM employees
GROUP BY manager_id
  HAVING COUNT (*) > 5 AND SUM (salary) > 50000;

Abáni tabili. Gba atokọ ti manager_id ti apapọ owo-osu ti gbogbo awọn ti o wa labẹ rẹ wa laarin 6000 ati 9000 ti ko gba awọn ẹbun (commission_pct jẹ ofo)
Ipinnu

  SELECT manager_id, AVG (salary) avg_salary
    FROM employees
   WHERE commission_pct IS NULL
GROUP BY manager_id
  HAVING AVG (salary) BETWEEN 6000 AND 9000;

Abáni tabili. Gba owo osu ti o pọju lati ọdọ gbogbo awọn oṣiṣẹ job_id ti o pari pẹlu ọrọ 'CLERK'
Ipinnu

SELECT MAX (salary) max_salary
  FROM employees
 WHERE job_id LIKE '%CLERK';

SELECT MAX (salary) max_salary
  FROM employees
 WHERE SUBSTR (job_id, -5) = 'CLERK';

Abáni tabili. Gba owo osu ti o pọju laarin gbogbo awọn owo osu apapọ fun ẹka naa
Ipinnu

  SELECT MAX (AVG (salary))
    FROM employees
GROUP BY department_id;

Abáni tabili. Gba nọmba awọn oṣiṣẹ pẹlu nọmba kanna ti awọn lẹta ni orukọ wọn. Ni akoko kanna, fihan nikan awọn ti orukọ wọn gun ju 5 lọ ati pe nọmba awọn oṣiṣẹ pẹlu orukọ kanna jẹ diẹ sii ju 20. Too nipasẹ ipari orukọ
Ipinnu

  SELECT LENGTH (first_name), COUNT (*)
    FROM employees
GROUP BY LENGTH (first_name)
  HAVING LENGTH (first_name) > 5 AND COUNT (*) > 20
ORDER BY LENGTH (first_name);

  SELECT LENGTH (first_name), COUNT (*)
    FROM employees
   WHERE LENGTH (first_name) > 5
GROUP BY LENGTH (first_name)
  HAVING COUNT (*) > 20
ORDER BY LENGTH (first_name);

Ifihan Data lati Awọn tabili pupọ Lilo Awọn Isopọpọ

Awọn oṣiṣẹ tabili, Awọn ẹka, Awọn agbegbe, Awọn orilẹ-ede, Awọn agbegbe. Gba atokọ ti awọn agbegbe ati nọmba awọn oṣiṣẹ ni agbegbe kọọkan
Ipinnu

  SELECT region_name, COUNT (*)
    FROM employees e
         JOIN departments d ON (e.department_id = d.department_id)
         JOIN locations l ON (d.location_id = l.location_id)
         JOIN countries c ON (l.country_id = c.country_id)
         JOIN regions r ON (c.region_id = r.region_id)
GROUP BY region_name;

Awọn oṣiṣẹ tabili, Awọn ẹka, Awọn agbegbe, Awọn orilẹ-ede, Awọn agbegbe. Gba alaye alaye nipa oṣiṣẹ kọọkan:
Orukọ_akọkọ, Oruko idile, Ẹka, Iṣẹ, opopona, Orilẹ-ede, Ẹkun
Ipinnu

SELECT First_name,
       Last_name,
       Department_name,
       Job_id,
       street_address,
       Country_name,
       Region_name
  FROM employees  e
       JOIN departments d ON (e.department_id = d.department_id)
       JOIN locations l ON (d.location_id = l.location_id)
       JOIN countries c ON (l.country_id = c.country_id)
       JOIN regions r ON (c.region_id = r.region_id);

Abáni tabili. Ṣe afihan gbogbo awọn alakoso ti o ni diẹ sii ju awọn oṣiṣẹ 6 lọ
Ipinnu

  SELECT man.first_name, COUNT (*)
    FROM employees emp JOIN employees man ON (emp.manager_id = man.employee_id)
GROUP BY man.first_name
  HAVING COUNT (*) > 6;

Abáni tabili. Ṣe afihan gbogbo awọn oṣiṣẹ ti ko ṣe ijabọ si ẹnikẹni
Ipinnu

SELECT emp.first_name
  FROM employees  emp
       LEFT JOIN employees man ON (emp.manager_id = man.employee_id)
 WHERE man.FIRST_NAME IS NULL;

SELECT first_name
  FROM employees
 WHERE manager_id IS NULL;

Tabili abáni, Job_history. Tabili Oṣiṣẹ tọju gbogbo awọn oṣiṣẹ. Tabili Job_history tọju awọn oṣiṣẹ ti o lọ kuro ni ile-iṣẹ naa. Gba ijabọ kan lori gbogbo awọn oṣiṣẹ ati ipo wọn ni ile-iṣẹ naa (Ṣiṣe tabi fi ile-iṣẹ silẹ pẹlu ọjọ ti ilọkuro)
Apeere:
oruko_akọkọ | ipo
jennifer | Fi ile-iṣẹ silẹ ni 31 Oṣu kejila, ọdun 2006
Clara | Lọwọlọwọ Ṣiṣẹ
Ipinnu

SELECT first_name,
       NVL2 (
           end_date,
           TO_CHAR (end_date, 'fm""Left the company at"" DD ""of"" Month, YYYY'),
           'Currently Working')
           status
  FROM employees e LEFT JOIN job_history j ON (e.employee_id = j.employee_id);

Awọn oṣiṣẹ tabili, Awọn ẹka, Awọn agbegbe, Awọn orilẹ-ede, Awọn agbegbe. Gba atokọ ti awọn oṣiṣẹ ti o ngbe ni Yuroopu (orukọ agbegbe)
Ipinnu

 SELECT first_name
  FROM employees
       JOIN departments USING (department_id)
       JOIN locations USING (location_id)
       JOIN countries USING (country_id)
       JOIN regions USING (region_id)
 WHERE region_name = 'Europe';
 
 SELECT first_name
  FROM employees  e
       JOIN departments d ON (e.department_id = d.department_id)
       JOIN locations l ON (d.location_id = l.location_id)
       JOIN countries c ON (l.country_id = c.country_id)
       JOIN regions r ON (c.region_id = r.region_id)
 WHERE region_name = 'Europe';

Table Employees, Eka. Ṣe afihan gbogbo awọn ẹka pẹlu diẹ sii ju awọn oṣiṣẹ 30 lọ
Ipinnu

SELECT department_name, COUNT (*)
    FROM employees e JOIN departments d ON (e.department_id = d.department_id)
GROUP BY department_name
  HAVING COUNT (*) > 30;

Table Employees, Eka. Ṣe afihan gbogbo awọn oṣiṣẹ ti ko si ni ẹka eyikeyi
Ipinnu

SELECT first_name
  FROM employees  e
       LEFT JOIN departments d ON (e.department_id = d.department_id)
 WHERE d.department_name IS NULL;

SELECT first_name
  FROM employees
 WHERE department_id IS NULL;

Table Employees, Eka. Ṣe afihan gbogbo awọn ẹka laisi oṣiṣẹ
Ipinnu

SELECT department_name
  FROM employees  e
       RIGHT JOIN departments d ON (e.department_id = d.department_id)
 WHERE first_name IS NULL;

Abáni tabili. Ṣe afihan gbogbo awọn oṣiṣẹ ti ko ni awọn abẹlẹ
Ipinnu

SELECT man.first_name
  FROM employees  emp
       RIGHT JOIN employees man ON (emp.manager_id = man.employee_id)
 WHERE emp.FIRST_NAME IS NULL;

Table Employees, Jobs, Eka. Fi awọn oṣiṣẹ han ni ọna kika: First_name, Job_title, Department_name.
Apeere:
oruko_akọkọ | akọle iṣẹ | Orukọ_Ẹka
Donald | sowo | Sowo Akọwe
Ipinnu

SELECT first_name, job_title, department_name
  FROM employees  e
       JOIN jobs j ON (e.job_id = j.job_id)
       JOIN departments d ON (d.department_id = e.department_id);

Abáni tabili. Gba atokọ ti awọn oṣiṣẹ ti awọn alakoso gba iṣẹ ni ọdun 2005, ṣugbọn ni akoko kanna, awọn oṣiṣẹ wọnyi funrararẹ gba iṣẹ ṣaaju ọdun 2005.
Ipinnu

SELECT emp.*
  FROM employees emp JOIN employees man ON (emp.manager_id = man.employee_id)
 WHERE     TO_CHAR (man.hire_date, 'YYYY') = '2005'
       AND emp.hire_date < TO_DATE ('01012005', 'DDMMYYYY');

Abáni tabili. Gba atokọ ti awọn oṣiṣẹ ti awọn alakoso gba iṣẹ ni oṣu Oṣu Kini ti ọdun eyikeyi ati ipari ti akọle iṣẹ ti awọn oṣiṣẹ wọnyi jẹ diẹ sii ju awọn kikọ 15 lọ.
Ipinnu

SELECT emp.*
  FROM employees  emp
       JOIN employees man ON (emp.manager_id = man.employee_id)
       JOIN jobs j ON (emp.job_id = j.job_id)
 WHERE TO_CHAR (man.hire_date, 'MM') = '01' AND LENGTH (j.job_title) > 15;

Lilo Awọn ibeere lati yanju awọn ibeere

Abáni tabili. Gba atokọ ti awọn oṣiṣẹ pẹlu orukọ to gunjulo.
Ipinnu

SELECT *
  FROM employees
 WHERE LENGTH (first_name) =
       (SELECT MAX (LENGTH (first_name)) FROM employees);

Abáni tabili. Gba atokọ ti awọn oṣiṣẹ pẹlu owo-oṣu ti o tobi ju owo-oṣu apapọ ti gbogbo awọn oṣiṣẹ lọ.
Ipinnu

SELECT *
  FROM employees
 WHERE salary > (SELECT AVG (salary) FROM employees);

Awọn oṣiṣẹ tabili, Awọn ẹka, Awọn ipo. Gba ilu ti awọn oṣiṣẹ gba o kere ju lapapọ.
Ipinnu

SELECT city
    FROM employees e
         JOIN departments d ON (e.department_id = d.department_id)
         JOIN locations l ON (d.location_id = l.location_id)
GROUP BY city
  HAVING SUM (salary) =
         (  SELECT MIN (SUM (salary))
              FROM employees e
                   JOIN departments d ON (e.department_id = d.department_id)
                   JOIN locations l ON (d.location_id = l.location_id)
          GROUP BY city);

Abáni tabili. Gba atokọ ti awọn oṣiṣẹ ti oluṣakoso rẹ gba owo-oṣu ti o ju 15000 lọ.
Ipinnu

SELECT *
  FROM employees
 WHERE manager_id IN (SELECT employee_id
                        FROM employees
                       WHERE salary > 15000)

Table Employees, Eka. Ṣe afihan gbogbo awọn ẹka laisi oṣiṣẹ
Ipinnu

SELECT *
  FROM departments
 WHERE department_id NOT IN (SELECT department_id
                               FROM employees
                              WHERE department_id IS NOT NULL);

Abáni tabili. Ṣe afihan gbogbo awọn oṣiṣẹ ti kii ṣe alakoso
Ipinnu

SELECT *
  FROM employees
 WHERE employee_id NOT IN (SELECT manager_id
                             FROM employees
                            WHERE manager_id IS NOT NULL)

Abáni tabili. Ṣe afihan gbogbo awọn alakoso ti o ni diẹ sii ju awọn oṣiṣẹ 6 lọ
Ipinnu

SELECT *
  FROM employees e
 WHERE (SELECT COUNT (*)
          FROM employees
         WHERE manager_id = e.employee_id) > 6;

Table Employees, Eka. Ṣe afihan awọn oṣiṣẹ ti o ṣiṣẹ ni ẹka IT
Ipinnu

SELECT *
  FROM employees
 WHERE department_id = (SELECT department_id
                          FROM departments
                         WHERE department_name = 'IT');

Table Employees, Jobs, Eka. Fi awọn oṣiṣẹ han ni ọna kika: First_name, Job_title, Department_name.
Apeere:
oruko_akọkọ | akọle iṣẹ | Orukọ_Ẹka
Donald | sowo | Sowo Akọwe
Ipinnu

SELECT first_name,
       (SELECT job_title
          FROM jobs
         WHERE job_id = e.job_id)
           job_title,
       (SELECT department_name
          FROM departments
         WHERE department_id = e.department_id)
           department_name
  FROM employees e;

Abáni tabili. Gba atokọ ti awọn oṣiṣẹ ti awọn alakoso gba iṣẹ ni ọdun 2005, ṣugbọn ni akoko kanna, awọn oṣiṣẹ wọnyi funrararẹ gba iṣẹ ṣaaju ọdun 2005.
Ipinnu

SELECT *
  FROM employees
 WHERE     manager_id IN (SELECT employee_id
                            FROM employees
                           WHERE TO_CHAR (hire_date, 'YYYY') = '2005')
       AND hire_date < TO_DATE ('01012005', 'DDMMYYYY');

Abáni tabili. Gba atokọ ti awọn oṣiṣẹ ti awọn alakoso gba iṣẹ ni oṣu Oṣu Kini ti ọdun eyikeyi ati ipari ti akọle iṣẹ ti awọn oṣiṣẹ wọnyi jẹ diẹ sii ju awọn kikọ 15 lọ.
Ipinnu

SELECT *
  FROM employees e
 WHERE     manager_id IN (SELECT employee_id
                            FROM employees
                           WHERE TO_CHAR (hire_date, 'MM') = '01')
       AND (SELECT LENGTH (job_title)
              FROM jobs
             WHERE job_id = e.job_id) > 15;

Iyẹn ni gbogbo fun bayi.

Mo lero awọn iṣẹ-ṣiṣe wà awon ati ki o moriwu.
Emi yoo ṣafikun si atokọ yii bi o ti ṣee ṣe.
Emi yoo tun jẹ dun si eyikeyi comments ati awọn didaba.

PS: Ti ẹnikan ba wa pẹlu iṣẹ ti o nifẹ lori Yan, kọ sinu awọn asọye, Emi yoo ṣafikun si atokọ naa.

O ṣeun.

orisun: www.habr.com

Fi ọrọìwòye kun