рдПрд╕рдХреНрдпреВрдПрд▓ред рдордиреЛрд░рдВрдЬрдХ рдкрд╣реЗрд▓рд┐рдпрд╛рдБ

рд╣реЗрд▓реЛ рд╣рдмрд░!

3 рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╕реЗ рдореИрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗрдВрджреНрд░реЛрдВ рдореЗрдВ рдПрд╕рдХреНрдпреВрдПрд▓ рдкрдврд╝рд╛ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдореЗрд░реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЫрд╛рддреНрд░реЛрдВ рдХреЛ рдХреЛрдИ рдХрд╛рд░реНрдп рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╡реЗ рдПрд╕рдХреНрдпреВрдПрд▓ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдмреЗрд╣рддрд░ рд╕рдордЭрддреЗ рд╣реИрдВ, рди рдХрд┐ рдХреЗрд╡рд▓ рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдФрд░ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдиреАрдВрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕реВрдЪреА рд╕рд╛рдЭрд╛ рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдореИрдВ рдЫрд╛рддреНрд░реЛрдВ рдХреЛ рд╣реЛрдорд╡рд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрддрд╛ рд╣реВрдВ рдФрд░ рдЬрд┐рди рдкрд░ рд╣рдо рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд┐рдЪрд╛рд░-рдордВрдерди рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ SQL рдХреА рдЧрд╣рд░реА рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╕рдордЭ рдкреИрджрд╛ рд╣реЛрддреА рд╣реИред

рдПрд╕рдХреНрдпреВрдПрд▓ред рдордиреЛрд░рдВрдЬрдХ рдкрд╣реЗрд▓рд┐рдпрд╛рдБ

SQL (╦И╔Ыs╦Иkju╦И╔Ыl; рдЗрдВрдЬреА. рд╕рдВрд░рдЪрд┐рдд рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛) рдПрдХ рдШреЛрд╖рдгрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдмрдВрдзрд┐рдд рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдбреЗрдЯрд╛ рдмрдирд╛рдиреЗ, рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА

рдЖрдк SQL рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрд▓рдЧ рд╕реЗ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рд╕реВрддреНрд░реЛрдВ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ.
рдЗрд╕ рдЖрд▓реЗрдЦ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЖрдкрдХреЛ рдкреНрд░рд╛рд░рдВрдн рд╕реЗ SQL рд╕рд┐рдЦрд╛рдирд╛ рдирд╣реАрдВ рд╣реИред

рддреЛ, рдЪрд▓реЛ рдЪрд▓реЗрдВ

рд╣рдо рдкреНрд░рд╕рд┐рджреНрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдорд╛рдирд╡ рд╕рдВрд╕рд╛рдзрди рдпреЛрдЬрдирд╛ рдУрд░реЗрдХрд▓ рдореЗрдВ рдЕрдкрдиреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде (рдЕрдзрд┐рдХ):

рдПрд╕рдХреНрдпреВрдПрд▓ред рдордиреЛрд░рдВрдЬрдХ рдкрд╣реЗрд▓рд┐рдпрд╛рдБ
рдореИрдВ рдиреЛрдЯ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдо рдХреЗрд╡рд▓ SELECT рдкрд░ рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред рдбреАрдПрдордПрд▓ рдФрд░ рдбреАрдбреАрдПрд▓ рдкрд░ рдХреЛрдИ рдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИрдВред

рдХрд╛рд░реНрдп

рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рдФрд░ рдХреНрд░рдордмрджреНрдз рдХрд░рдирд╛

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╡рд╛рд▓реА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рд╕рдорд╛рдзрд╛рди

SELECT * FROM employees

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. 'рдбреЗрд╡рд┐рдб' рдирд╛рдо рдХреЗ рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рд╕рдорд╛рдзрд╛рди

SELECT *
  FROM employees
 WHERE first_name = 'David';

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. 'IT_PROG' рдХреЗ рдмрд░рд╛рдмрд░ рдЬреЙрдм_рдЖрдИрдбреА рд╡рд╛рд▓реЗ рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рд╕рдорд╛рдзрд╛рди

SELECT *
  FROM employees
 WHERE job_id = 'IT_PROG'

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. 50рд╡реЗрдВ рд╡рд┐рднрд╛рдЧ (рд╡рд┐рднрд╛рдЧ_рдЖрдИрдбреА) рд╕реЗ 4000 рд╕реЗ рдЕрдзрд┐рдХ рд╡реЗрддрди (рд╡реЗрддрди) рд╡рд╛рд▓реЗ рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. 20рд╡реЗрдВ рдФрд░ 30рд╡реЗрдВ рд╡рд┐рднрд╛рдЧ рд╕реЗ рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ (рд╡рд┐рднрд╛рдЧ_рдЖрдИрдбреА)
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдЙрди рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд┐рдирдХреЗ рдирд╛рдо рдХрд╛ рдЕрдВрддрд┐рдо рдЕрдХреНрд╖рд░ 'a' рд╣реИ
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. 50рд╡реЗрдВ рдФрд░ 80рд╡реЗрдВ рд╡рд┐рднрд╛рдЧ (рд╡рд┐рднрд╛рдЧ_рдЖрдИрдбреА) рд╕реЗ рдЙрди рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдмреЛрдирд╕ рд╣реИ (рдХрдореАрд╢рди_рдкреАрд╕реАрдЯреА рдХреЙрд▓рдо рдореЗрдВ рдорд╛рди рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реИ)
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдЙрди рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд┐рдирдХреЗ рдирд╛рдо рдореЗрдВ рдХрдо рд╕реЗ рдХрдо 2 рдЕрдХреНрд╖рд░ 'рдПрди' рд╣реИрдВ
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдЙрди рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд┐рдирдХрд╛ рдирд╛рдо 4 рдЕрдХреНрд╖рд░реЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рд▓рдВрдмрд╛ рд╣реИ
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдЙрди рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд┐рдирдХрд╛ рд╡реЗрддрди 8000 рдФрд░ 9000 рдХреЗ рдмреАрдЪ рд╣реИ (рд╕рдорд╛рд╡реЗрд╢реА)
рд╕рдорд╛рдзрд╛рди

SELECT *
  FROM employees
 WHERE salary BETWEEN 8000 AND 9000;

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдЙрди рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд┐рдирдХреЗ рдирд╛рдо рдореЗрдВ '%' рдЪрд┐рд╣реНрди рд╢рд╛рдорд┐рд▓ рд╣реИ
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рд╕рднреА рдкреНрд░рдмрдВрдзрдХ рдЖрдИрдбреА рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рд╕рдорд╛рдзрд╛рди

SELECT DISTINCT manager_id
  FROM employees
 WHERE manager_id IS NOT NULL;

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЙрдирдХреЗ рдкрджреЛрдВ рдХреЗ рд╕рд╛рде рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ: рдбреЛрдирд╛рд▓реНрдб(sh_clerk)
рд╕рдорд╛рдзрд╛рди

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

рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрд▓-рдкрдВрдХреНрддрд┐ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдЙрди рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд┐рдирдХрд╛ рдирд╛рдо 10 рдЕрдХреНрд╖рд░реЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рд▓рдВрдмрд╛ рд╣реИ
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдЙрди рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд┐рдирдХреЗ рдирд╛рдо рдореЗрдВ 'рдмреА' рдЕрдХреНрд╖рд░ рд╣реИ (рдХреЗрд╕ рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓)
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдЙрди рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд┐рдирдХреЗ рдирд╛рдо рдореЗрдВ рдХрдо рд╕реЗ рдХрдо 2 рдЕрдХреНрд╖рд░ 'рдП' рд╣реИрдВ
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдЙрди рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд┐рдирдХрд╛ рд╡реЗрддрди 1000 рдХреЗ рдЧреБрдгрдХ рдореЗрдВ рд╣реИ
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдХрд░реНрдордЪрд╛рд░реА рдХреЗ рдлрд╝реЛрди рдирдВрдмрд░ рдХрд╛ рдкрд╣рд▓рд╛ 3-рдЕрдВрдХреАрдп рдирдВрдмрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдпрджрд┐ рдЙрд╕рдХрд╛ рдирдВрдмрд░ ╨е╨е╨е.╨е╨е╨е.╨е╨е╨е╨е рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╣реИ
рд╕рдорд╛рдзрд╛рди

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

рд╡рд┐рднрд╛рдЧ рддрд╛рд▓рд┐рдХрд╛. рдЬрд┐рдирдХреЗ рдирд╛рдо рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╢рдмреНрдж рд╣реИрдВ рдЙрдирдХреЗ рд▓рд┐рдП рд╡рд┐рднрд╛рдЧ рдХреЗ рдирд╛рдо рд╕реЗ рдкрд╣рд▓рд╛ рд╢рдмреНрдж рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдирд╛рдо рдХреЗ рдкрд╣рд▓реЗ рдФрд░ рдЕрдВрддрд┐рдо рдЕрдХреНрд╖рд░ рдХреЗ рдмрд┐рдирд╛ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЗ рдирд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдЙрди рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд┐рдирдХреЗ рдирд╛рдо рдХрд╛ рдЕрдВрддрд┐рдо рдЕрдХреНрд╖рд░ 'm' рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рдФрд░ рдирд╛рдо рдХреА рд▓рдВрдмрд╛рдИ 5 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ
рд╕рдорд╛рдзрд╛рди

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

рджреЛрд╣рд░реА рдореЗрдЬ. рдЕрдЧрд▓реЗ рд╢реБрдХреНрд░рд╡рд╛рд░ рдХреА рддрд╛рд░реАрдЦ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдЙрди рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬреЛ 17 рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╕реЗ рдХрдВрдкрдиреА рдореЗрдВ рд╣реИрдВ
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдЙрди рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд┐рдирдХреЗ рдлрд╝реЛрди рдирдВрдмрд░ рдХрд╛ рдЕрдВрддрд┐рдо рдЕрдВрдХ рд╡рд┐рд╖рдо рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдПрдХ рдмрд┐рдВрджреБ рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдП рдЧрдП 3 рдирдВрдмрд░ рд╣реИрдВ
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдЙрди рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд┐рдирдХреЗ '_' рдЪрд┐рд╣реНрди рдХреЗ рдмрд╛рдж рдЬреЙрдм_рдЖрдИрдбреА рдорд╛рди рдореЗрдВ рдХрдо рд╕реЗ рдХрдо 3 рдЕрдХреНрд╖рд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди '_' рдХреЗ рдмрд╛рдж рдпрд╣ рдорд╛рди 'CLERK' рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИ
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. PHONE_NUMBER рдорд╛рди рдореЗрдВ рд╕рднреА '.' рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдкрд░ '-'
рд╕рдорд╛рдзрд╛рди

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

рд░реВрдкрд╛рдВрддрд░рдг рдлрд╝рдВрдХреНрд╢рдВрд╕ рдФрд░ рд╕рд╢рд░реНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдорд╣реАрдиреЗ рдХреЗ рдкрд╣рд▓реЗ рджрд┐рди (рдХреЛрдИ рднреА) рдХрд╛рдо рдкрд░ рдЖрдП рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. 2008 рдореЗрдВ рдХрд╛рдо рдкрд░ рдЖрдП рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рд╕рдорд╛рдзрд╛рди

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

рджреЛрд╣рд░реА рддрд╛рд▓рд┐рдХрд╛. рдХрд▓ рдХреА рддрд╛рд░реАрдЦ рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдПрдБ: рдХрд▓ рдЬрдирд╡рд░реА рдХрд╛ рджреВрд╕рд░рд╛ рджрд┐рди рд╣реИ
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдФрд░ рдЙрдирдХреА рдЖрд░рдВрдн рддрд┐рдерд┐ рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ: 21 рдЬреВрди, 2007
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. 20% рдмрдврд╝реЗ рд╣реБрдП рд╡реЗрддрди рд╡рд╛рд▓реЗ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдбреЙрд▓рд░ рдЪрд┐рд╣реНрди рдХреЗ рд╕рд╛рде рд╡реЗрддрди рджрд┐рдЦрд╛рдПрдВ
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдлрд░рд╡рд░реА 2007 рдореЗрдВ рдХрд╛рдо рдкрд░ рдЖрдП рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
рд╕рдорд╛рдзрд╛рди

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'; 

рджреЛрд╣рд░реА рддрд╛рд▓рд┐рдХрд╛. рд╡рд░реНрддрдорд╛рди рджрд┐рдирд╛рдВрдХ, + рджреВрд╕рд░рд╛, + рдорд┐рдирдЯ, + рдШрдВрдЯрд╛, + рджрд┐рди, + рдорд╣реАрдирд╛, + рд╡рд░реНрд╖ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ
рд╕рдорд╛рдзрд╛рди

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;

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдкреВрд░реНрдг рд╡реЗрддрди (рд╡реЗрддрди + рдХрдореАрд╢рди_рдкреАрд╕реАрдЯреА (%)) рд╡рд╛рд▓реЗ рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ: $24,000.00
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдФрд░ рд╡реЗрддрди рдмреЛрдирд╕ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ (рд╣рд╛рдВ/рдирд╣реАрдВ)
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдкреНрд░рддреНрдпреЗрдХ рдХрд░реНрдордЪрд╛рд░реА рдХрд╛ рд╡реЗрддрди рд╕реНрддрд░ рдЬрд╛рдиреЗрдВ: 5000 рд╕реЗ рдХрдо рдХреЛ рдирд┐рдореНрди рд╕реНрддрд░ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, 5000 рд╕реЗ рдЕрдзрд┐рдХ рдпрд╛ рдЗрд╕рдХреЗ рдмрд░рд╛рдмрд░ рдФрд░ 10000 рд╕реЗ рдХрдо рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрддрд░ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, 10000 рд╕реЗ рдЕрдзрд┐рдХ рдФрд░ рдЗрд╕рдХреЗ рдмрд░рд╛рдмрд░ рдХреЛ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕рдорд╛рдзрд╛рди

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;

рджреЗрд╢ рддрд╛рд▓рд┐рдХрд╛. рдкреНрд░рддреНрдпреЗрдХ рджреЗрд╢ рдХреЗ рд▓рд┐рдП, рд╡рд╣ рдХреНрд╖реЗрддреНрд░ рджрд┐рдЦрд╛рдПрдБ рдЬрд┐рд╕рдореЗрдВ рд╡рд╣ рд╕реНрдерд┐рдд рд╣реИ: 1-рдпреВрд░реЛрдк, 2-рдЕрдореЗрд░рд┐рдХрд╛, 3-рдПрд╢рд┐рдпрд╛, 4-рдЕрдлреНрд░реАрдХрд╛ (рдмрд┐рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реБрдП)
рд╕рдорд╛рдзрд╛рди

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;

рд╕рдореВрд╣ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХрддреНрд░рд┐рдд рдбреЗрдЯрд╛ рдХреА рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХрд░рдирд╛

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдиреНрдпреВрдирддрдо рдФрд░ рдЕрдзрд┐рдХрддрдо рд╡реЗрддрди, рдЬрд▓реНрджреА рдФрд░ рджреЗрд░ рд╕реЗ рдЖрдЧрдорди рдХреА рддрд╛рд░реАрдЦреЛрдВ рдФрд░ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рд╡рд┐рднрд╛рдЧ_рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреНрд░рдордмрджреНрдз рдХрд░реЗрдВ (desc)
рд╕рдорд╛рдзрд╛рди

  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;

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдХрд┐рддрдиреЗ рдХрд░реНрдордЪрд╛рд░реА рд╣реИрдВ рдЬрд┐рдирдХреЗ рдирд╛рдо рдПрдХ рд╣реА рдЕрдХреНрд╖рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ? рдорд╛рддреНрд░рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреНрд░рдордмрджреНрдз рдХрд░реЗрдВ. рдХреЗрд╡рд▓ рд╡рд╣реА рджрд┐рдЦрд╛рдПрдБ рдЬрд╣рд╛рдБ рд╕рдВрдЦреНрдпрд╛ 1 рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ
рд╕рдорд╛рдзрд╛рди

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;

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдХрд┐рддрдиреЗ рдХрд░реНрдордЪрд╛рд░реА рдПрдХ рд╣реА рд╡рд┐рднрд╛рдЧ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рдорд╛рди рд╡реЗрддрди рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ?
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рд╕рдкреНрддрд╛рд╣ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рджрд┐рди рдХрд┐рддрдиреЗ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЛ рдХрд╛рдо рдкрд░ рд░рдЦрд╛ рдЧрдпрд╛, рдЗрд╕рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдорд╛рддреНрд░рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреНрд░рдордмрджреНрдз рдХрд░реЗрдВ
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рд╡рд░реНрд╖ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд┐рддрдиреЗ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЛ рдХрд╛рдо рдкрд░ рд░рдЦрд╛ рдЧрдпрд╛, рдЗрд╕рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдорд╛рддреНрд░рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреНрд░рдордмрджреНрдз рдХрд░реЗрдВ
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдЙрди рд╡рд┐рднрд╛рдЧреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд┐рдирдореЗрдВ рдХрд░реНрдордЪрд╛рд░реА рд╣реИрдВ
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. 30 рд╕реЗ рдЕрдзрд┐рдХ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рд╡рд╛рд▓реЗ рд╡рд┐рднрд╛рдЧ_рдЖрдИрдбреА рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рднрд╛рдЧ рдореЗрдВ рд╡рд┐рднрд╛рдЧ рдЖрдИрдбреА рдФрд░ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХрд╛ рдкреВрд░реНрдг рдФрд╕рдд рд╡реЗрддрди рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
рд╕рдорд╛рдзрд╛рди

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

рджреЗрд╢ рддрд╛рд▓рд┐рдХрд╛. рдЙрди рд╕рднреА рджреЗрд╢реЛрдВ рдХреЗ рдирд╛рдореЛрдВ рдХреЗ рд╕рднреА рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рдпреЛрдЧ рдХреНрд╖реЗрддреНрд░_рдЖрдИрдбреА рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд┐рдирдореЗрдВ 60 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИрдВ
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рд╡рд┐рднрд╛рдЧ_рдЖрдИрдбреА рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рдХрдИ (>1) рдЬреЙрдм_рдЖрдИрдбреА рдХреЗ рдХрд░реНрдордЪрд╛рд░реА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдРрд╕реЗ рдкреНрд░рдмрдВрдзрдХ_рдЖрдИрдбреА рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд┐рдирдХреЗ рдЕрдзреАрдирд╕реНрдереЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 5 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ рдФрд░ рдЙрдирдХреЗ рдЕрдзреАрдирд╕реНрдереЛрдВ рдХреЗ рд╕рднреА рд╡реЗрддрдиреЛрдВ рдХрд╛ рдпреЛрдЧ 50000 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдРрд╕реЗ рдкреНрд░рдмрдВрдзрдХ_рдЖрдИрдбреА рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд┐рдирдХреЗ рд╕рднреА рдЕрдзреАрдирд╕реНрдереЛрдВ рдХрд╛ рдФрд╕рдд рд╡реЗрддрди 6000 рдФрд░ 9000 рдХреЗ рдмреАрдЪ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдмреЛрдирд╕ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ (рдХрдореАрд╢рди_рдкреАрд╕реАрдЯреА рдЦрд╛рд▓реА рд╣реИ)
рд╕рдорд╛рдзрд╛рди

  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;

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рд╕реЗ рдЕрдзрд┐рдХрддрдо рд╡реЗрддрди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬреЙрдм_рдЖрдИрдбреА рдЬреЛ 'рдХреНрд▓рд░реНрдХ' рд╢рдмреНрдж рд╕реЗ рд╕рдорд╛рдкреНрдд рд╣реЛрддреА рд╣реИ
рд╕рдорд╛рдзрд╛рди

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';

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рд╡рд┐рднрд╛рдЧ рдХреЗ рд╕рднреА рдФрд╕рдд рд╡реЗрддрдиреЛрдВ рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрддрдо рд╡реЗрддрди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдЙрдирдХреЗ рдирд╛рдо рдореЗрдВ рд╕рдорд╛рди рдЕрдХреНрд╖рд░реЛрдВ рд╡рд╛рд▓реЗ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рд╡рд╣реАрдВ, рдХреЗрд╡рд▓ рдЙрдиреНрд╣реАрдВ рдХреЛ рджрд┐рдЦрд╛рдПрдВ рдЬрд┐рдирдХреЗ рдирд╛рдо 5 рд╕реЗ рдЕрдзрд┐рдХ рд▓рдВрдмреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд╣реА рдирд╛рдо рд╡рд╛рд▓реЗ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 20 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рдирд╛рдо рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреНрд░рдордмрджреНрдз рдХрд░реЗрдВ
рд╕рдорд╛рдзрд╛рди

  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);

рдЬреЙрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХрд╛рдзрд┐рдХ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛

рдЯреЗрдмрд▓ рдХрд░реНрдордЪрд╛рд░реА, рд╡рд┐рднрд╛рдЧ, рд╕реНрдерд╛рди, рджреЗрд╢, рдХреНрд╖реЗрддреНрд░ред рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рд╕реВрдЪреА рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рд╕рдорд╛рдзрд╛рди

  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;

рдЯреЗрдмрд▓ рдХрд░реНрдордЪрд╛рд░реА, рд╡рд┐рднрд╛рдЧ, рд╕реНрдерд╛рди, рджреЗрд╢, рдХреНрд╖реЗрддреНрд░ред рдкреНрд░рддреНрдпреЗрдХ рдХрд░реНрдордЪрд╛рд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:
рдкреНрд░рдердо_рдирд╛рдо, рдЕрдВрддрд┐рдо_рдирд╛рдо, рд╡рд┐рднрд╛рдЧ, рдиреМрдХрд░реА, рд╕рдбрд╝рдХ, рджреЗрд╢, рдХреНрд╖реЗрддреНрд░
рд╕рдорд╛рдзрд╛рди

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);

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдЙрди рд╕рднреА рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдПрдВ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ 6 рд╕реЗ рдЕрдзрд┐рдХ рдХрд░реНрдордЪрд╛рд░реА рд╣реИрдВ
рд╕рдорд╛рдзрд╛рди

  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;

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдЙрди рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдПрдБ рдЬреЛ рдХрд┐рд╕реА рдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ
рд╕рдорд╛рдзрд╛рди

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;

рдХрд░реНрдордЪрд╛рд░реА рддрд╛рд▓рд┐рдХрд╛, рдиреМрдХрд░реА_рдЗрддрд┐рд╣рд╛рд╕ред рдХрд░реНрдордЪрд╛рд░реА рддрд╛рд▓рд┐рдХрд╛ рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИред рдЬреЙрдм_рдЗрддрд┐рд╣рд╛рд╕ рддрд╛рд▓рд┐рдХрд╛ рдХрдВрдкрдиреА рдЫреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реЗ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИред рдХрдВрдкрдиреА рдореЗрдВ рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдФрд░ рдЙрдирдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ (рдкреНрд░рд╕реНрдерд╛рди рдХреА рддрд╛рд░реАрдЦ рдХреЗ рд╕рд╛рде рдХрдВрдкрдиреА рдореЗрдВ рдХрд╛рд░реНрдпрд░рдд рдпрд╛ рдЫреЛрдбрд╝реЗ рдЧрдП)
рдЙрджрд╛рд╣рд░рдг:
рдкреНрд░рдердо_рдирд╛рдо | рджрд░реНрдЬрд╛
рдЬреЗрдирд┐рдлрд░ | 31 рджрд┐рд╕рдВрдмрд░, 2006 рдХреЛ рдХрдВрдкрдиреА рдЫреЛрдбрд╝ рджреА
рдХреНрд▓рд╛рд░рд╛ | рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд╛рдо рдХрд░
рд╕рдорд╛рдзрд╛рди

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);

рдЯреЗрдмрд▓ рдХрд░реНрдордЪрд╛рд░реА, рд╡рд┐рднрд╛рдЧ, рд╕реНрдерд╛рди, рджреЗрд╢, рдХреНрд╖реЗрддреНрд░ред рдпреВрд░реЛрдк рдореЗрдВ рд░рд╣рдиреЗ рд╡рд╛рд▓реЗ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ (рдХреНрд╖реЗрддреНрд░_рдирд╛рдо)
рд╕рдорд╛рдзрд╛рди

 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';

рдЯреЗрдмрд▓ рдХрд░реНрдордЪрд╛рд░реА, рд╡рд┐рднрд╛рдЧред 30 рд╕реЗ рдЕрдзрд┐рдХ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рд╡рд╛рд▓реЗ рд╕рднреА рд╡рд┐рднрд╛рдЧ рджрд┐рдЦрд╛рдПрдБ
рд╕рдорд╛рдзрд╛рди

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

рдЯреЗрдмрд▓ рдХрд░реНрдордЪрд╛рд░реА, рд╡рд┐рднрд╛рдЧред рдЙрди рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдПрдБ рдЬреЛ рдХрд┐рд╕реА рднреА рд╡рд┐рднрд╛рдЧ рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВ
рд╕рдорд╛рдзрд╛рди

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;

рдЯреЗрдмрд▓ рдХрд░реНрдордЪрд╛рд░реА, рд╡рд┐рднрд╛рдЧред рдмрд┐рдирд╛ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рд╡рд╛рд▓реЗ рд╕рднреА рд╡рд┐рднрд╛рдЧ рджрд┐рдЦрд╛рдПрдБ
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдЙрди рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдПрдБ рдЬрд┐рдирдХрд╛ рдХреЛрдИ рдЕрдзреАрдирд╕реНрде рдирд╣реАрдВ рд╣реИ
рд╕рдорд╛рдзрд╛рди

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

рдЯреЗрдмрд▓ рдХрд░реНрдордЪрд╛рд░реА, рдиреМрдХрд░рд┐рдпрд╛рдБ, рд╡рд┐рднрд╛рдЧред рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЛ рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдПрдВ: рдкреНрд░рдердо_рдирд╛рдо, рдХрд╛рд░реНрдп_рд╢реАрд░реНрд╖рдХ, рд╡рд┐рднрд╛рдЧ_рдирд╛рдоред
рдЙрджрд╛рд╣рд░рдг:
рдкреНрд░рдердо_рдирд╛рдо | рдиреМрдХрд░реА рдХрд╛ рд╢реАрд░реНрд╖рдХ | рд╡рд┐рднрд╛рдЧ рдХрд╛ рдирд╛рдо
рдбреЛрдирд╛рд▓реНрдб | рд╢рд┐рдкрд┐рдВрдЧ | рдХреНрд▓рд░реНрдХ рд╢рд┐рдкрд┐рдВрдЧ
рд╕рдорд╛рдзрд╛рди

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);

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдЙрди рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд┐рдирдХреЗ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЛ 2005 рдореЗрдВ рдиреМрдХрд░реА рдорд┐рд▓реА, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА, рдЗрди рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЛ рд╕реНрд╡рдпрдВ 2005 рд╕реЗ рдкрд╣рд▓реЗ рдиреМрдХрд░реА рдорд┐рд▓реА
рд╕рдорд╛рдзрд╛рди

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');

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдЙрди рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд┐рдирдХреЗ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЛ рдХрд┐рд╕реА рднреА рд╡рд░реНрд╖ рдХреЗ рдЬрдирд╡рд░реА рдорд╣реАрдиреЗ рдореЗрдВ рдиреМрдХрд░реА рдорд┐рд▓реА рдФрд░ рдЗрди рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдиреМрдХрд░реА_рд╢реАрд░реНрд╖рдХ рдХреА рд▓рдВрдмрд╛рдИ 15 рдЕрдХреНрд╖рд░реЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ
рд╕рдорд╛рдзрд╛рди

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;

рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрдХреНрд╡реЗрд░реАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рд╕рдмрд╕реЗ рд▓рдВрдмреЗ рдирд╛рдо рд╡рд╛рд▓реЗ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЗ рдФрд╕рдд рд╡реЗрддрди рд╕реЗ рдЕрдзрд┐рдХ рд╡реЗрддрди рд╡рд╛рд▓реЗ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
рд╕рдорд╛рдзрд╛рди

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

рдЯреЗрдмрд▓ рдХрд░реНрдордЪрд╛рд░реА, рд╡рд┐рднрд╛рдЧ, рд╕реНрдерд╛рдиред рд╡рд╣ рд╢рд╣рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рдХрд░реНрдордЪрд╛рд░реА рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ рд╕рдмрд╕реЗ рдХрдо рдХрдорд╛рддреЗ рд╣реИрдВред
рд╕рдорд╛рдзрд╛рди

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);

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдЙрди рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд┐рдирдХреЗ рдкреНрд░рдмрдВрдзрдХ рдХреЛ 15000 рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛ рд╡реЗрддрди рдорд┐рд▓рддрд╛ рд╣реИред
рд╕рдорд╛рдзрд╛рди

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

рдЯреЗрдмрд▓ рдХрд░реНрдордЪрд╛рд░реА, рд╡рд┐рднрд╛рдЧред рдмрд┐рдирд╛ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рд╡рд╛рд▓реЗ рд╕рднреА рд╡рд┐рднрд╛рдЧ рджрд┐рдЦрд╛рдПрдБ
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдЙрди рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдПрдБ рдЬреЛ рдкреНрд░рдмрдВрдзрдХ рдирд╣реАрдВ рд╣реИрдВ
рд╕рдорд╛рдзрд╛рди

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

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдЙрди рд╕рднреА рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдПрдВ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ 6 рд╕реЗ рдЕрдзрд┐рдХ рдХрд░реНрдордЪрд╛рд░реА рд╣реИрдВ
рд╕рдорд╛рдзрд╛рди

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

рдЯреЗрдмрд▓ рдХрд░реНрдордЪрд╛рд░реА, рд╡рд┐рднрд╛рдЧред рдЙрди рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдПрдБ рдЬреЛ рдЖрдИрдЯреА рд╡рд┐рднрд╛рдЧ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ
рд╕рдорд╛рдзрд╛рди

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

рдЯреЗрдмрд▓ рдХрд░реНрдордЪрд╛рд░реА, рдиреМрдХрд░рд┐рдпрд╛рдБ, рд╡рд┐рднрд╛рдЧред рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЛ рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдПрдВ: рдкреНрд░рдердо_рдирд╛рдо, рдХрд╛рд░реНрдп_рд╢реАрд░реНрд╖рдХ, рд╡рд┐рднрд╛рдЧ_рдирд╛рдоред
рдЙрджрд╛рд╣рд░рдг:
рдкреНрд░рдердо_рдирд╛рдо | рдиреМрдХрд░реА рдХрд╛ рд╢реАрд░реНрд╖рдХ | рд╡рд┐рднрд╛рдЧ рдХрд╛ рдирд╛рдо
рдбреЛрдирд╛рд▓реНрдб | рд╢рд┐рдкрд┐рдВрдЧ | рдХреНрд▓рд░реНрдХ рд╢рд┐рдкрд┐рдВрдЧ
рд╕рдорд╛рдзрд╛рди

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;

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдЙрди рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд┐рдирдХреЗ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЛ 2005 рдореЗрдВ рдиреМрдХрд░реА рдорд┐рд▓реА, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА, рдЗрди рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЛ рд╕реНрд╡рдпрдВ 2005 рд╕реЗ рдкрд╣рд▓реЗ рдиреМрдХрд░реА рдорд┐рд▓реА
рд╕рдорд╛рдзрд╛рди

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');

рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдореЗрдЬ. рдЙрди рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд┐рдирдХреЗ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЛ рдХрд┐рд╕реА рднреА рд╡рд░реНрд╖ рдХреЗ рдЬрдирд╡рд░реА рдорд╣реАрдиреЗ рдореЗрдВ рдиреМрдХрд░реА рдорд┐рд▓реА рдФрд░ рдЗрди рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдиреМрдХрд░реА_рд╢реАрд░реНрд╖рдХ рдХреА рд▓рдВрдмрд╛рдИ 15 рдЕрдХреНрд╖рд░реЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ
рд╕рдорд╛рдзрд╛рди

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;

рдЕрднреА рдХреЗ рд▓рд┐рдП рдмрд╕ рдЗрддрдирд╛ рд╣реАред

рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдп рд░реЛрдЪрдХ рдФрд░ рд░реЛрдорд╛рдВрдЪрдХ рдереЗред
рдореИрдВ рдпрдерд╛рд╕рдВрднрд╡ рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝ рджреВрдБрдЧрд╛ред
рдореБрдЭреЗ рдХрд┐рд╕реА рднреА рдЯрд┐рдкреНрдкрдгреА рдФрд░ рд╕реБрдЭрд╛рд╡ рдкрд░ рднреА рдЦреБрд╢реА рд╣реЛрдЧреАред

рдкреБрдирд╢реНрдЪ: рдпрджрд┐ рдХреЛрдИ SELECT рдкрд░ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдк рдХрд╛рд░реНрдп рд▓реЗрдХрд░ рдЖрддрд╛ рд╣реИ, рддреЛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВ, рдореИрдВ рдЗрд╕реЗ рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝ рджреВрдВрдЧрд╛ред

рдзрдиреНрдпрд╡рд╛рдж.

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ