SQL. ืคึฟืึทืจื•ื•ื™ื™ืœืขืจื™ืฉืข ืคึผืึทื–ืึทืœื–

ื”ืขืœื, ื”ืื‘ืจ!

ืคึฟืึทืจ ืžืขืจ ื•ื•ื™ 3 ื™ืึธืจ ืื™ืš ื”ืึธื‘ืŸ ื’ืขืœืขืจื ื˜ SQL ืื™ืŸ ืคืึทืจืฉื™ื“ืŸ ื˜ืจื™ื™ื ื™ื ื’ ืกืขื ื˜ืขืจืก, ืื•ืŸ ืื™ื™ื ืขืจ ืคื•ืŸ ืžื™ื™ืŸ ืึทื‘ื–ืขืจื•ื•ื™ื™ืฉืึทื ื– ืื™ื– ืึทื– ืกื˜ื•ื“ืขื ื˜ืŸ ื‘ืขืœ ืื•ืŸ ืคึฟืึทืจืฉื˜ื™ื™ืŸ SQL ื‘ืขืกืขืจ ืื•ื™ื‘ ื–ื™ื™ ื–ืขื ืขืŸ ื’ืขื’ืขื‘ืŸ ืึท ืึทืจื‘ืขื˜, ืื•ืŸ ื ื™ื˜ ื ืึธืจ ื“ืขืจืฆื™ื™ืœื˜ ื•ื•ืขื’ืŸ ื“ื™ ืคึผืึทืกืึทื‘ื™ืœืึทื˜ื™ื– ืื•ืŸ ื˜ืขืึธืจืขื˜ื™ืฉ ื™ืกื•ื“ื•ืช.

ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ, ืื™ืš ื•ื•ืขืœ ื˜ื™ื™ืœืŸ ืžื™ื˜ ืื™ืจ ืžื™ื™ืŸ ืจืฉื™ืžื” ืคื•ืŸ ืคืจืื‘ืœืขืžืขืŸ ื•ื•ืึธืก ืื™ืš ื’ืขื‘ืŸ ืฆื• ืกื˜ื•ื“ืขื ื˜ืŸ ื•ื•ื™ ืœืขืงืฆื™ืขืก ืื•ืŸ ืื•ื™ืฃ ื•ื•ืึธืก ืžื™ืจ ืคื™ืจืŸ ืคืึทืจืฉื™ื“ืŸ ื˜ื™ื™ืคึผืก ืคื•ืŸ ื‘ืจื™ื™ื ืกื˜ืึธืจืžื–, ื•ื•ืึธืก ืคื™ืจื˜ ืฆื• ืึท ื˜ื™ืฃ ืื•ืŸ ืงืœืึธืจ ืคืืจืฉื˜ืื ื“ ืคื•ืŸ SQL.

SQL. ืคึฟืึทืจื•ื•ื™ื™ืœืขืจื™ืฉืข ืคึผืึทื–ืึทืœื–

SQL (หˆษ›sหˆkjuหˆษ›l; ืขื ื’ืœื™ืฉ ืกื˜ืจืึทืงื˜ืฉืขืจื“ ืึธื ืคึฟืจืขื’ ืฉืคึผืจืึทืš) ืื™ื– ืึท ื“ืขืงืœืึทืจืึทื˜ื™ื•ื•ืข ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš ื’ืขื ื™ืฆื˜ ืฆื• ืฉืึทืคึฟืŸ, ืžืึธื“ื™ืคื™ืฆื™ืจืŸ ืื•ืŸ ืคื™ืจืŸ ื“ืึทื˜ืŸ ืื™ืŸ ืึท ืจื™ืœื™ื™ืฉืึทื ืึทืœ ื“ืึทื˜ืึทื‘ื™ื™ืก ื’ืขืจืื˜ืŸ ื“ื•ืจืš ืึท ืฆื•ื ืขืžืขืŸ ื“ืึทื˜ืึทื‘ื™ื™ืก ืคืึทืจื•ื•ืึทืœื˜ื•ื ื’ ืกื™ืกื˜ืขื. ืœืขืจื ืขืŸ ืžืขืจ

ืื™ืจ ืงืขื ืขืŸ ืœื™ื™ืขื ืขืŸ ื•ื•ืขื’ืŸ SQL ืคึฟื•ืŸ ืคืึทืจืฉื™ื“ืŸ ืงื•ื•ืขืœืขืจ.
ื“ืขืจ ืึทืจื˜ื™ืงืœ ืื™ื– ื ื™ืฉื˜ ื‘ื“ืขื” ืฆื• ืœืขืจื ืขืŸ ืื™ืจ SQL ืคึฟื•ืŸ ืงืจืึทืฆืŸ.

ืึทื–ื•ื™ ืœืึธื–ืŸ ืก ื’ื™ื™ืŸ.

ืžื™ืจ ื•ื•ืขืœืŸ ื ื•ืฆืŸ ื“ื™ ื‘ืืงืื ื˜ HR ื“ื™ืึทื’ืจืึทืžืข ืื™ืŸ ืึธืจืึทืงืœืข ืžื™ื˜ ืื™ืจืข ื˜ื™ืฉืŸ (ืžืขืจ):

SQL. ืคึฟืึทืจื•ื•ื™ื™ืœืขืจื™ืฉืข ืคึผืึทื–ืึทืœื–
ืื™ืš ื˜ืึธืŸ ืึทื– ืžื™ืจ ื•ื•ืขืœืŸ ื‘ืœื•ื™ื– ื‘ืึทื˜ืจืึทื›ื˜ืŸ ืกืขืœืขืงื˜ ื˜ืึทืกืงืก. ืขืก ื–ืขื ืขืŸ ืงื™ื™ืŸ DML ืึธื“ืขืจ DDL ื˜ืึทืกืงืก ื“ืึธ.

ื˜ืึทืกืงืก

ืจื™ืกื˜ืจื™ืงื˜ื™ื ื’ ืื•ืŸ ืกืึธืจื˜ื™ื ื’ ื“ืึทื˜ืŸ

ืขืžืคึผืœื•ื™ื™ื– ื˜ื™ืฉ. ื‘ืึทืงื•ืžืขืŸ ืึท ืจืฉื™ืžื” ืžื™ื˜ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ืึทืœืข ืขืžืคึผืœื•ื™ื™ื–
ื‘ืึทืฉื™ื™ื“

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 ืึธืคึผื˜ื™ื™ืœื•ื ื’ (department_id)
ื‘ืึทืฉื™ื™ื“

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

ืขืžืคึผืœื•ื™ื™ื– ื˜ื™ืฉ. ื‘ืึทืงื•ืžืขืŸ ืึท ืจืฉื™ืžื” ืคื•ืŸ ืึทืœืข ืขืžืคึผืœื•ื™ื™ื– ื•ื•ืขืžืขื ืก ืœืขืฆื˜ืข ื‘ืจื™ื•ื• ืื™ืŸ ื–ื™ื™ืขืจ ื ืึธืžืขืŸ ืื™ื– 'ืึท'
ื‘ืึทืฉื™ื™ื“

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 ืื•ืชื™ื•ืช 'n'
ื‘ืึทืฉื™ื™ื“

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;

ืขืžืคึผืœื•ื™ื™ื– ื˜ื™ืฉ. ื‘ืึทืงื•ืžืขืŸ ืึท ืจืฉื™ืžื” ืคื•ืŸ ืขืžืคึผืœื•ื™ื™ื– ืžื™ื˜ ื–ื™ื™ืขืจ ืฉื˜ืขืœืขืก ืื™ืŸ ื“ืขื ืคึฟืึธืจืžืึทื˜: ื“ืึธื ืึทืœื“ (ืฉ_ืงืœืขืจืง)
ื‘ืึทืฉื™ื™ื“

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-ืฆื™ืคึฟืขืจ ื ื•ืžืขืจ ืคื•ืŸ ืึทืŸ ืึธื ื’ืขืฉื˜ืขืœื˜ืขืจ ืก ื˜ืขืœืขืคืึธืŸ ื ื•ืžืขืจ ืื•ื™ื‘ ื–ื™ื™ืŸ ื ื•ืžืขืจ ืื™ื– ืื™ืŸ ื“ื™ ืคึฟืึธืจืžืึทื˜ XXX.XXX.XXXX
ื‘ืึทืฉื™ื™ื“

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;

ืจืขืคึผืึธืจื˜ื™ื ื’ ืึทื’ื’ืจืขื’ืึทื˜ืขื“ ื“ืึทื˜ืŸ ื ื™ืฆืŸ ื“ื™ ื’ืจื•ืคืข ืคืึทื ื’ืงืฉืึทื ื–

ืขืžืคึผืœื•ื™ื™ื– ื˜ื™ืฉ. ื‘ืึทืงื•ืžืขืŸ ืึท ื‘ืึทืจื™ื›ื˜ ื“ื•ืจืš department_id ืžื™ื˜ ื“ื™ ืžื™ื ื™ืžื•ื ืื•ืŸ ืžืึทืงืกื™ืžื•ื ื’ืขืฆืึธืœื˜, ืคืจื™ ืื•ืŸ ืฉืคึผืขื˜ ื“ืึทื˜ืขืก ืคื•ืŸ ืึธื ืงื•ืžืขืŸ ืื™ืŸ ืึทืจื‘ืขื˜ ืื•ืŸ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืขืžืคึผืœื•ื™ื™ื–. ืกืึธืจื˜ื™ืจืŸ ืœื•ื™ื˜ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืขืžืคึผืœื•ื™ื™ื– (ืึทืจื™ื™ื ื’ื™ื™ืŸ)
ื‘ืึทืฉื™ื™ื“

  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;

ื˜ื™ืฉ ืœืขื ื“ืขืจ. ื‘ืึทืงื•ืžืขืŸ ื“ื™ ืจืฉื™ืžื” region_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;

ืขืžืคึผืœื•ื™ื™ื– ื˜ื™ืฉ. ื‘ืึทืงื•ืžืขืŸ ื“ื™ ืžืึทืงืกื™ืžื•ื ื’ืขืฆืึธืœื˜ ืคื•ืŸ ืึทืœืข ืขืžืคึผืœื•ื™ื™ื– job_id ื•ื•ืึธืก ืขื ื“ืก ืžื™ื˜ ื“ื™ ื•ื•ืึธืจื˜ 'CLERK'
ื‘ืึทืฉื™ื™ื“

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;

ื˜ื™ืฉ ืขืžืคึผืœื•ื™ื™ื–, ื“ื™ืคึผืึทืจื˜ืžืึทื ืฅ, ืœืึธื•ืงื™ื™ืฉืึทื ื–, ืœืขื ื“ืขืจ, ืจืขื’ื™ืึธื ืก. ื‘ืึทืงื•ืžืขืŸ ื“ื™ื˜ื™ื™ืœื“ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื™ืขื“ืขืจ ืึธื ื’ืขืฉื˜ืขืœื˜ืขืจ:
First_name, Last_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;

ื˜ื™ืฉ ืขืžืคึผืœื•ื™ื™ื–, ื“ื–ืฉืึธื‘ืก, ื“ื™ืคึผืึทืจื˜ืžืึทื ืฅ. ื•ื•ื™ื™ึทื–ืŸ ืขืžืคึผืœื•ื™ื™ื– ืื™ืŸ ื“ืขื ืคึฟืึธืจืžืึทื˜: First_name, Job_title, Department_name.
ื‘ื™ื™ึทืฉืคึผื™ืœ:
First_name | ื“ื–ืฉืึธื‘_ื˜ื™ื˜ืœ | ื“ืขืคึผืึทืจื˜ืžืขื ื˜_ื ืึทืžืข
ื“ืึธื ืึทืœื“ | ืฉื™ืคึผื™ื ื’ | ื‘ืึทืึทืžื˜ืขืจ ืฉื™ืคึผื™ื ื’
ื‘ืึทืฉื™ื™ื“

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;

ื˜ื™ืฉ ืขืžืคึผืœื•ื™ื™ื–, ื“ื™ืคึผืึทืจื˜ืžืึทื ืฅ. ื•ื•ื™ื™ึทื–ืŸ ืขืžืคึผืœื•ื™ื™ื– ื•ื•ืึธืก ืึทืจื‘ืขื˜ ืื™ืŸ ื“ื™ IT ืึธืคึผื˜ื™ื™ืœื•ื ื’
ื‘ืึทืฉื™ื™ื“

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

ื˜ื™ืฉ ืขืžืคึผืœื•ื™ื™ื–, ื“ื–ืฉืึธื‘ืก, ื“ื™ืคึผืึทืจื˜ืžืึทื ืฅ. ื•ื•ื™ื™ึทื–ืŸ ืขืžืคึผืœื•ื™ื™ื– ืื™ืŸ ื“ืขื ืคึฟืึธืจืžืึทื˜: First_name, Job_title, Department_name.
ื‘ื™ื™ึทืฉืคึผื™ืœ:
First_name | ื“ื–ืฉืึธื‘_ื˜ื™ื˜ืœ | ื“ืขืคึผืึทืจื˜ืžืขื ื˜_ื ืึทืžืข
ื“ืึธื ืึทืœื“ | ืฉื™ืคึผื™ื ื’ | ื‘ืึทืึทืžื˜ืขืจ ืฉื™ืคึผื™ื ื’
ื‘ืึทืฉื™ื™ื“

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;

ืึทื– ืก ืึทืœืข ืคึฟืึทืจ ืื™ืฆื˜.

ืื™ืš ื”ืึธืคึฟืŸ ื“ื™ ื˜ืึทืกืงืก ื–ืขื ืขืŸ ื˜ืฉื™ืงืึทื•ื•ืข ืื•ืŸ ื™ืงืกื™ื™ื˜ื™ื ื’.
ืื™ืš ื•ื•ืขืœ ืœื™ื™ื’ืŸ ืฆื• ื“ืขื ืจืฉื™ืžื” ืคื•ืŸ ื˜ืึทืกืงืก ื•ื•ื™ ืคื™ืœ ื•ื•ื™ ืžืขื’ืœืขืš.
ืื™ืš ื•ื•ืขื˜ ืื•ื™ืš ื–ื™ื™ืŸ ืฆื•ืคืจื™ื“ืŸ ืฆื• ื‘ืึทืงื•ืžืขืŸ ืงื™ื™ืŸ ื‘ืึทืžืขืจืงื•ื ื’ืขืŸ ืื•ืŸ ืคึฟื™ืจืœื™ื™ื’ืŸ.

ืคึผืก: ืื•ื™ื‘ ืขืžืขืฆืขืจ ืงื•ืžื˜ ืžื™ื˜ ืึท ื˜ืฉื™ืงืึทื•ื•ืข ืื•ื™ืกืงืœื™ื™ึทื‘ืŸ ืึทืจื‘ืขื˜, ืฉืจื™ื™ึทื‘ืŸ ืื™ืŸ ื“ื™ ื‘ืึทืžืขืจืงื•ื ื’ืขืŸ ืื•ืŸ ืื™ืš ื•ื•ืขื˜ ืœื™ื™ื’ืŸ ืขืก ืฆื• ื“ืขืจ ืจืฉื™ืžื”.

ื“ืื ืง ืื™ืจ.

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’