SQL αŸ” αž›αŸ’αž”αŸ‚αž„αž•αŸ’αž‚αž»αŸ†αžšαžΌαž”αž€αž˜αŸ’αžŸαžΆαž“αŸ’αž

αžŸαž½αžŸαŸ’αžαžΈ αž αžΆαž”!

αž’αžŸαŸ‹αžšαž™αŸˆαž–αŸαž›αž‡αžΆαž„ 3 αž†αŸ’αž“αžΆαŸ†αž˜αž€αž αžΎαž™αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž”αž„αŸ’αžšαŸ€αž“ SQL αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αž‡αŸ’αžˆαž˜αžŽαŸ’αžŒαž›αž”αžŽαŸ’αžαž»αŸ‡αž”αžŽαŸ’αžαžΆαž›αž•αŸ’αžŸαŸαž„αŸ— αž αžΎαž™αž€αžΆαžšαžŸαž„αŸ’αž€αŸαžαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž‚αžΊαžαžΆαžŸαž·αžŸαŸ’αžŸαž–αžΌαž€αŸ‚ αž“αž·αž„αž™αž›αŸ‹ SQL αž€αžΆαž“αŸ‹αžαŸ‚αž”αŸ’αžšαžŸαžΎαžšαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž–αž½αž€αž‚αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž—αžΆαžšαž€αž·αž…αŸ’αž… αž αžΎαž™αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž”αŸ’αžšαžΆαž”αŸ‹αž’αŸ†αž–αžΈαž›αž‘αŸ’αž’αž—αžΆαž– αž“αž·αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‚αŸ’αžšαžΉαŸ‡αž‘αŸ’αžšαžΉαžŸαŸ’αžαžΈαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αž‘αŸαŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡ αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αž‡αžΆαž˜αž½αž™αž’αŸ’αž“αž€αž“αžΌαžœαž”αž‰αŸ’αž‡αžΈαž”αž‰αŸ’αž αžΆαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αžŸαž·αžŸαŸ’αžŸαž‡αžΆαž€αž·αž…αŸ’αž…αž€αžΆαžšαž•αŸ’αž‘αŸ‡ αž“αž·αž„αžŠαŸ‚αž›αž™αžΎαž„αž’αŸ’αžœαžΎαž›αŸ†αž αžΆαžαŸ‹αžαž½αžšαž€αŸ’αž”αžΆαž›αž”αŸ’αžšαž—αŸαž‘αž•αŸ’αžŸαŸαž„αŸ— αžŠαŸ‚αž›αž“αžΆαŸ†αž‘αŸ…αžŠαž›αŸ‹αž€αžΆαžšαž™αž›αŸ‹αžŠαžΉαž„αžŸαŸŠαžΈαž‡αž˜αŸ’αžšαŸ… αž“αž·αž„αž…αŸ’αž”αžΆαžŸαŸ‹αž›αžΆαžŸαŸ‹αž’αŸ†αž–αžΈ SQL αŸ”

SQL αŸ” αž›αŸ’αž”αŸ‚αž„αž•αŸ’αž‚αž»αŸ†αžšαžΌαž”αž€αž˜αŸ’αžŸαžΆαž“αŸ’αž

SQL (ΛˆΙ›sˈkjuΛˆΙ›l; English structured query language) αž‚αžΊαž‡αžΆαž—αžΆαžŸαžΆαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αŸ’αžšαž€αžΆαžŸαžŠαŸ‚αž›αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαž αž€αŸ‚αž”αŸ’αžšαŸ‚ αž“αž·αž„αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αžŠαŸ‚αž›αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŠαŸ„αž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŸαž˜αžŸαŸ’αžšαž”αŸ” αžŸαŸ’αžœαŸ‚αž„αž™αž›αŸ‹αž”αž“αŸ’αžαŸ‚αž˜αŸ”

αž’αŸ’αž“αž€αž’αžΆαž…αž’αžΆαž“αž’αŸ†αž–αžΈ SQL αž–αžΈαž•αŸ’αžŸαŸαž„αŸ— αž”αŸ’αžšαž—αž–.
αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αž˜αž·αž“αž˜αžΆαž“αž”αŸ†αžŽαž„αž”αž„αŸ’αžšαŸ€αž“αž’αŸ’αž“αž€αž–αžΈ SQL αž–αžΈαžŠαŸ†αž”αžΌαž„αž‘αžΎαž™αŸ”

αž’αž‰αŸ’αž…αžΉαž„αžαŸ„αŸ‡αž‘αŸ…αŸ”

αž™αžΎαž„αž“αžΉαž„αž”αŸ’αžšαžΎαž—αžΆαž–αž›αŸ’αž”αžΈαž›αŸ’αž”αžΆαž‰ αžŠαŸ’αž™αžΆαž€αŸ’αžšαžΆαž˜ HR αž“αŸ…αž€αŸ’αž“αž»αž„ Oracle αž‡αžΆαž˜αž½αž™αž“αžΉαž„αžαžΆαžšαžΆαž„αžšαž”αžŸαŸ‹αžœαžΆ (αž…αŸ’αžšαžΎαž“αž‘αŸ€αž):

SQL αŸ” αž›αŸ’αž”αŸ‚αž„αž•αŸ’αž‚αž»αŸ†αžšαžΌαž”αž€αž˜αŸ’αžŸαžΆαž“αŸ’αž
αžαŸ’αž‰αž»αŸ†αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžαžΆαž™αžΎαž„αž“αžΉαž„αž–αž·αž…αžΆαžšαžŽαžΆαžαŸ‚αž€αž·αž…αŸ’αž…αž€αžΆαžš SELECT αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αž˜αž·αž“αž˜αžΆαž“αž€αž·αž…αŸ’αž…αž€αžΆαžš DML ឬ DDL αž“αŸ…αž‘αžΈαž“αŸαŸ‡αž‘αŸαŸ”

αž—αžΆαžšαž€αž·αž…αŸ’αž…

αž€αžΆαžšαžŠαžΆαž€αŸ‹αž€αž˜αŸ’αžšαž·αž αž“αž·αž„αžαž˜αŸ’αžšαŸ€αž”αž‘αž·αž“αŸ’αž“αž“αŸαž™

αžαžΆαžšαžΆαž„αž”αž»αž‚αŸ’αž‚αž›αž·αž€αŸ” αž‘αž‘αž½αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΈαžŠαŸ‚αž›αž˜αžΆαž“αž–αŸαžαŸŒαž˜αžΆαž“αž’αŸ†αž–αžΈαž”αž»αž‚αŸ’αž‚αž›αž·αž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”
αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αž

SELECT * FROM employees

αžαžΆαžšαžΆαž„αž”αž»αž‚αŸ’αž‚αž›αž·αž€αŸ” αž‘αž‘αž½αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΈαž”αž»αž‚αŸ’αž‚αž›αž·αž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž˜αžΆαž“αžˆαŸ’αž˜αŸ„αŸ‡ 'David'
αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αž

SELECT *
  FROM employees
 WHERE first_name = 'David';

αžαžΆαžšαžΆαž„αž”αž»αž‚αŸ’αž‚αž›αž·αž€αŸ” αž‘αž‘αž½αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΈαž”αž»αž‚αŸ’αž‚αž›αž·αž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž˜αžΆαž“ job_id αžŸαŸ’αž˜αžΎαž“αžΉαž„ 'IT_PROG'
αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αž

SELECT *
  FROM employees
 WHERE job_id = 'IT_PROG'

αžαžΆαžšαžΆαž„αž”αž»αž‚αŸ’αž‚αž›αž·αž€αŸ” αž‘αž‘αž½αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΈαž”αž»αž‚αŸ’αž‚αž›αž·αž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž–αžΈαž“αžΆαž™αž€αžŠαŸ’αž‹αžΆαž“αž‘αžΈ 50 (department_id) αžŠαŸ‚αž›αž˜αžΆαž“αž”αŸ’αžšαžΆαž€αŸ‹αžαŸ‚ (αž”αŸ’αžšαžΆαž€αŸ‹αžαŸ‚) αž›αžΎαžŸαž–αžΈ 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;

αžαžΆαžšαžΆαž„αž”αž»αž‚αŸ’αž‚αž›αž·αž€αŸ” αž‘αž‘αž½αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΈαž”αž»αž‚αŸ’αž‚αž›αž·αž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž˜αžΆαž“αž’αž€αŸ’αžŸαžšαž…αž»αž„αž€αŸ’αžšαŸ„αž™αž“αŸ…αž€αŸ’αž“αž»αž„αžˆαŸ’αž˜αŸ„αŸ‡αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž‚αžΊ 'a'
αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αž

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

αžαžΆαžšαžΆαž„αž”αž»αž‚αŸ’αž‚αž›αž·αž€αŸ” αž‘αž‘αž½αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΈαž”αž»αž‚αŸ’αž‚αž›αž·αž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž–αžΈαž“αžΆαž™αž€αžŠαŸ’αž‹αžΆαž“αž‘αžΈ 50 αž“αž·αž„αž‘αžΈ 80 (department_id) αžŠαŸ‚αž›αž˜αžΆαž“αž”αŸ’αžšαžΆαž€αŸ‹αžšαž„αŸ’αžœαžΆαž“αŸ‹ (αžαž˜αŸ’αž›αŸƒαž“αŸ…αž€αŸ’αž“αž»αž„αž‡αž½αžšαžˆαžš commission_pct αž˜αž·αž“αž‘αž‘αŸαž‘αŸ)
αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αž

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;

αžαžΆαžšαžΆαž„αž”αž»αž‚αŸ’αž‚αž›αž·αž€αŸ” αž‘αž‘αž½αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΈαž”αž»αž‚αŸ’αž‚αž›αž·αž€αžŠαŸ‚αž›αž˜αžΆαž“αž˜αž»αžαžαŸ†αžŽαŸ‚αž„αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αŸ– Donald(sh_clerk)
αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αž

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

αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž˜αž»αžαž„αžΆαžšαž‡αž½αžšαžαŸ‚αž˜αž½αž™αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ’αžŠαžΌαžšαž›αž‘αŸ’αž’αž•αž›αžαžΆαž˜αž”αŸ†αžŽαž„

αžαžΆαžšαžΆαž„αž”αž»αž‚αŸ’αž‚αž›αž·αž€αŸ” αž‘αž‘αž½αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΈαž”αž»αž‚αŸ’αž‚αž›αž·αž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž˜αžΆαž“αžˆαŸ’αž˜αŸ„αŸ‡αžœαŸ‚αž„αž‡αžΆαž„ 10 αž’αž€αŸ’αžŸαžš
αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αž

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

αžαžΆαžšαžΆαž„αž”αž»αž‚αŸ’αž‚αž›αž·αž€αŸ” αž‘αž‘αž½αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΈαž”αž»αž‚αŸ’αž‚αž›αž·αž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž˜αžΆαž“αž’αž€αŸ’αžŸαžš 'b' αž“αŸ…αž€αŸ’αž“αž»αž„αžˆαŸ’αž˜αŸ„αŸ‡αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸ (αž˜αž·αž“αž”αŸ’αžšαž€αžΆαž“αŸ‹αž’αž€αŸ’αžŸαžšαžαžΌαž…αž’αŸ†)
αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αž

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

αžαžΆαžšαžΆαž„αž”αž»αž‚αŸ’αž‚αž›αž·αž€αŸ” αž‘αž‘αž½αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΈαž”αž»αž‚αŸ’αž‚αž›αž·αž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž˜αžΆαž“αžˆαŸ’αž˜αŸ„αŸ‡αž™αŸ‰αžΆαž„αž αŸ„αž…αžŽαžΆαžŸαŸ‹ 2 αž’αž€αŸ’αžŸαžš 'a'
αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αž

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;

αžαžΆαžšαžΆαž„αž”αž»αž‚αŸ’αž‚αž›αž·αž€αŸ” αž‘αž‘αž½αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΈαž”αž»αž‚αŸ’αž‚αž›αž·αž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αžαž˜αŸ’αž›αŸƒ job_id αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαžŸαž‰αŸ’αž‰αžΆ '_' αž˜αžΆαž“αž™αŸ‰αžΆαž„αž αŸ„αž…αžŽαžΆαžŸαŸ‹ 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';

αžαžΆαžšαžΆαž„ DUAL αŸ” αž”αž„αŸ’αž αžΆαž‰αž€αžΆαž›αž”αžšαž·αž…αŸ’αž†αŸαž‘αž“αŸ…αžαŸ’αž„αŸƒαžŸαŸ’αž’αŸ‚αž€αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αŸ– αžαŸ’αž„αŸƒαžŸαŸ’αž’αŸ‚αž€αž‡αžΆαžαŸ’αž„αŸƒαž‘αžΈαž–αžΈαžšαž“αŸƒαžαŸ‚αž˜αž€αžšαžΆ
αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αž

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

αžαžΆαžšαžΆαž„αž”αž»αž‚αŸ’αž‚αž›αž·αž€αŸ” αž‘αž‘αž½αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡αž”αž»αž‚αŸ’αž‚αž›αž·αž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž“αž·αž„αž€αžΆαž›αž”αžšαž·αž…αŸ’αž†αŸαž‘αžŠαŸ‚αž›αž“αž·αž™αŸ„αž‡αž·αžαž˜αŸ’αž“αžΆαž€αŸ‹αŸ—αž”αžΆαž“αž˜αž€αžŠαž›αŸ‹αž€αž“αŸ’αž›αŸ‚αž„αž’αŸ’αžœαžΎαž€αžΆαžšαžαžΆαž˜αž‘αž˜αŸ’αžšαž„αŸ‹αŸ– αžαŸ’αž„αŸƒαž‘αžΈ ្៑ αžαŸ‚αž˜αž·αžαž»αž“αžΆ αž†αŸ’αž“αžΆαŸ† ្០០៧
αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αž

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

αžαžΆαžšαžΆαž„ DUAL αŸ” αž”αž„αŸ’αž αžΆαž‰αž€αžΆαž›αž”αžšαž·αž…αŸ’αž†αŸαž‘αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“ + αžœαž·αž“αžΆαž‘αžΈ + αž“αžΆαž‘αžΈ + αž˜αŸ‰αŸ„αž„ + αžαŸ’αž„αŸƒ + αžαŸ‚ + αž†αŸ’αž“αžΆαŸ†
αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αž

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;

αžαžΆαžšαžΆαž„αž”αž»αž‚αŸ’αž‚αž›αž·αž€αŸ” αž‘αž‘αž½αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΈαž”αž»αž‚αŸ’αž‚αž›αž·αž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž˜αžΆαž“αž”αŸ’αžšαžΆαž€αŸ‹αžαŸ‚αž–αŸαž‰ (αž”αŸ’αžšαžΆαž€αŸ‹αžαŸ‚ + commission_pct(%)) αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αŸ– $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;

αžαžΆαžšαžΆαž„αž”αž»αž‚αŸ’αž‚αž›αž·αž€αŸ” αž‘αž‘αž½αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡ department_ids αžŠαŸ‚αž›αž˜αžΆαž“αž”αž»αž‚αŸ’αž‚αž›αž·αž€αž…αŸ’αžšαžΎαž“αž‡αžΆαž„ 30 αž“αžΆαž€αŸ‹αŸ”
αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αž

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

αžαžΆαžšαžΆαž„αž”αž»αž‚αŸ’αž‚αž›αž·αž€αŸ” αž‘αž‘αž½αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΈαž“αŸƒ department_ids αž“αž·αž„αž”αŸ’αžšαžΆαž€αŸ‹αž”αŸ€αžœαžαŸ’αžŸαžšαŸαž˜αž’αŸ’αž™αž˜αž‡αž»αŸ†αž“αŸƒαž”αž»αž‚αŸ’αž‚αž›αž·αž€αž“αŸ…αž€αŸ’αž“αž»αž„αž“αžΆαž™αž€αžŠαŸ’αž‹αžΆαž“αž“αžΈαž˜αž½αž™αŸ—αŸ”
αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αž

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

αž”αŸ’αžšαž‘αŸαžŸαžαžΆαžšαžΆαž„αŸ” αž‘αž‘αž½αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΈ region_id αž•αž›αž”αžΌαž€αž“αŸƒαž’αž€αŸ’αžŸαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸƒ country_names αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž˜αžΆαž“αž…αŸ’αžšαžΎαž“αž‡αžΆαž„ 60
αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αž

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

αžαžΆαžšαžΆαž„αž”αž»αž‚αŸ’αž‚αž›αž·αž€αŸ” αž‘αž‘αž½αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΈαž“αŸƒ department_ids αžŠαŸ‚αž›αž”αž»αž‚αŸ’αž‚αž›αž·αž€αž“αŸƒ job_ids αž‡αžΆαž…αŸ’αžšαžΎαž“ (>1) αž’αŸ’αžœαžΎαž€αžΆαžš
αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αž

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

αžαžΆαžšαžΆαž„αž”αž»αž‚αŸ’αž‚αž›αž·αž€αŸ” αž‘αž‘αž½αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡ manager_ids αžŠαŸ‚αž›αž…αŸ†αž“αž½αž“αž’αŸ’αž“αž€αž€αŸ’αžšαŸ„αž˜αž”αž„αŸ’αž‚αžΆαž”αŸ‹αž’αŸ†αž‡αžΆαž„ 5 αž αžΎαž™αž•αž›αž”αžΌαž€αž“αŸƒαž”αŸ’αžšαžΆαž€αŸ‹αžαŸ‚αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž€αŸ’αžšαŸ„αž˜αž”αž„αŸ’αž‚αžΆαž”αŸ‹αžšαž”αžŸαŸ‹αž‚αžΆαžαŸ‹αž‚αžΊαž’αŸ†αž‡αžΆαž„ 50000
αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αž

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

αžαžΆαžšαžΆαž„αž”αž»αž‚αŸ’αž‚αž›αž·αž€αŸ” αž‘αž‘αž½αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡ manager_ids αžŠαŸ‚αž›αž”αŸ’αžšαžΆαž€αŸ‹αžαŸ‚αž‡αžΆαž˜αž’αŸ’αž™αž˜αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž€αŸ’αžšαŸ„αž˜αž”αž„αŸ’αž‚αžΆαž”αŸ‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžšαž”αžŸαŸ‹αž‚αžΆαžαŸ‹αžŸαŸ’αžαž·αžαž€αŸ’αž“αž»αž„αž…αž“αŸ’αž›αŸ„αŸ‡αž–αžΈ 6000 αžŠαž›αŸ‹ 9000 αž αžΎαž™αž’αŸ’αž“αž€αžŠαŸ‚αž›αž˜αž·αž“αž‘αž‘αž½αž›αž”αžΆαž“αž”αŸ’αžšαžΆαž€αŸ‹αžšαž„αŸ’αžœαžΆαž“αŸ‹ (commission_pct αž‚αžΊαž‘αž‘αŸ)
αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αž

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

αž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αž‘αž·αž“αŸ’αž“αž“αŸαž™αž–αžΈαžαžΆαžšαžΆαž„αž…αŸ’αžšαžΎαž“αžŠαŸ„αž™αž”αŸ’αžšαžΎ Joins

តុ αž”αž»αž‚αŸ’αž‚αž›αž·αž€ αž“αžΆαž™αž€αžŠαŸ’αž‹αžΆαž“ αž‘αžΈαžαžΆαŸ†αž„ αž”αŸ’αžšαž‘αŸαžŸ αžαŸ†αž”αž“αŸ‹αŸ” αž‘αž‘αž½αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΈαžαŸ†αž”αž“αŸ‹ αž“αž·αž„αž…αŸ†αž“αž½αž“αž”αž»αž‚αŸ’αž‚αž›αž·αž€αž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹αž“αžΈαž˜αž½αž™αŸ—
αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αž

  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;

αž”αž»αž‚αŸ’αž‚αž›αž·αž€αžαžΆαžšαžΆαž„, Job_history. αžαž»αž”αž»αž‚αŸ’αž‚αž›αž·αž€αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž”αž»αž‚αŸ’αž‚αž›αž·αž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ” αžαžΆαžšαžΆαž„ Job_history αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž”αž»αž‚αŸ’αž‚αž›αž·αž€αžŠαŸ‚αž›αž”αžΆαž“αž…αžΆαž€αž…αŸαž‰αž–αžΈαž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αŸ” αž‘αž‘αž½αž›αž”αžΆαž“αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαž’αŸ†αž–αžΈαž”αž»αž‚αŸ’αž‚αž›αž·αž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž“αž·αž„αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“ (αž’αŸ’αžœαžΎαž€αžΆαžš αž¬αž…αžΆαž€αž…αŸαž‰αž–αžΈαž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαž›αž”αžšαž·αž…αŸ’αž†αŸαž‘αž“αŸƒαž€αžΆαžšαž…αžΆαž€αž…αŸαž‰)
αž§αž‘αžΆαž αžšαžŽαŸ:
αžˆαŸ’αž˜αŸ„αŸ‡αžŠαŸ†αž”αžΌαž„ | αžŸαŸ’αžαžΆαž“αž—αžΆαž–
αž‡αŸαž“αž“αžΈαž αŸ’αžœαžΊαžš | αž”αžΆαž“αž…αžΆαž€αž…αŸαž‰αž–αžΈαž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αž“αŸ…αžαŸ’αž„αŸƒαž‘αžΈ ៣៑ αžαŸ‚αž’αŸ’αž“αžΌ αž†αŸ’αž“αžΆαŸ† ្០០៦
αž€αŸ’αž›αžΆαžšαŸ‰αžΆ | αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž€αŸ†αž–αž»αž„αž’αŸ’αžœαžΎαž€αžΆαžš
αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αž

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αŸ”
αž§αž‘αžΆαž αžšαžŽαŸ:
αžˆαŸ’αž˜αŸ„αŸ‡αžŠαŸ†αž”αžΌαž„ | Job_title | αžˆαŸ’αž˜αŸ„αŸ‡αž“αžΆαž™αž€αžŠαŸ’αž‹αžΆαž“
αžŠαžΌαžŽαžΆαž›αŸ‹ | αž€αžΆαžšαžŠαžΉαž€αž‡αž‰αŸ’αž‡αžΌαž“ | αžŸαŸ’αž˜αŸ€αž“αžŠαžΉαž€αž‡αž‰αŸ’αž‡αžΌαž“
αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αž

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

αžαžΆαžšαžΆαž„αž”αž»αž‚αŸ’αž‚αž›αž·αž€αŸ” αž‘αž‘αž½αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΈαž”αž»αž‚αŸ’αž‚αž›αž·αž€αžŠαŸ‚αž›αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž‘αž‘αž½αž›αž”αžΆαž“αž€αžΆαžšαž„αžΆαžšαž“αŸ…αžαŸ‚αž˜αž€αžšαžΆαž“αŸƒαž†αŸ’αž“αžΆαŸ†αžŽαžΆαž˜αž½αž™ αž αžΎαž™αžšαž™αŸˆαž–αŸαž›αž“αŸƒ job_title αžšαž”αžŸαŸ‹αž”αž»αž‚αŸ’αž‚αž›αž·αž€αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‚αžΊαž…αŸ’αžšαžΎαž“αž‡αžΆαž„ 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αŸ”
αž§αž‘αžΆαž αžšαžŽαŸ:
αžˆαŸ’αž˜αŸ„αŸ‡αžŠαŸ†αž”αžΌαž„ | Job_title | αžˆαŸ’αž˜αŸ„αŸ‡αž“αžΆαž™αž€αžŠαŸ’αž‹αžΆαž“
αžŠαžΌαžŽαžΆαž›αŸ‹ | αž€αžΆαžšαžŠαžΉαž€αž‡αž‰αŸ’αž‡αžΌαž“ | αžŸαŸ’αž˜αŸ€αž“αžŠαžΉαž€αž‡αž‰αŸ’αž‡αžΌαž“
αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αž

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

αžαžΆαžšαžΆαž„αž”αž»αž‚αŸ’αž‚αž›αž·αž€αŸ” αž‘αž‘αž½αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΈαž”αž»αž‚αŸ’αž‚αž›αž·αž€αžŠαŸ‚αž›αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž‘αž‘αž½αž›αž”αžΆαž“αž€αžΆαžšαž„αžΆαžšαž“αŸ…αžαŸ‚αž˜αž€αžšαžΆαž“αŸƒαž†αŸ’αž“αžΆαŸ†αžŽαžΆαž˜αž½αž™ αž αžΎαž™αžšαž™αŸˆαž–αŸαž›αž“αŸƒ job_title αžšαž”αžŸαŸ‹αž”αž»αž‚αŸ’αž‚αž›αž·αž€αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‚αžΊαž…αŸ’αžšαžΎαž“αž‡αžΆαž„ 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;

αž“αŸ„αŸ‡αž αžΎαž™αž‡αžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž–αŸαž›αž“αŸαŸ‡αŸ”

αžαŸ’αž‰αž»αŸ†αžŸαž„αŸ’αžƒαžΉαž˜αžαžΆαž€αž·αž…αŸ’αž…αž€αžΆαžšαž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸ αž“αž·αž„αž‚αž½αžšαž±αŸ’αž™αžšαŸ†αž—αžΎαž”αŸ”
αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ…αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαž€αž·αž…αŸ’αž…αž€αžΆαžšαž“αŸαŸ‡αž±αŸ’αž™αž”αžΆαž“αž…αŸ’αžšαžΎαž“αžαžΆαž˜αžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αŸ”
αžαŸ’αž‰αž»αŸ†β€‹αž€αŸβ€‹αž“αžΉαž„β€‹αžšαžΈαž€αžšαžΆαž™β€‹αž€αŸ’αž“αž»αž„β€‹αž€αžΆαžšβ€‹αž‘αž‘αž½αž›β€‹αž”αžΆαž“β€‹αž˜αžαž·β€‹αž™αŸ„αž”αž›αŸ‹β€‹αž“αž·αž„β€‹αž™αŸ„αž”αž›αŸ‹β€‹αžŽαžΆβ€‹αž˜αž½αž™β€‹αŸ”

PS: αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αž·αž…αŸ’αž…αž€αžΆαžš SELECT αž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸ αžŸαžΌαž˜αžŸαžšαžŸαŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž˜αžαž·αž™αŸ„αž”αž›αŸ‹ αž αžΎαž™αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž”αž“αŸ’αžαŸ‚αž˜αžœαžΆαž‘αŸ…αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαŸ”

αžŸαŸ’αž‘αŸ’αžšαžΈαž˜αŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹