ΠΠ°Π·ΠΎΠ²ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ SQL Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ°
ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅Π·ΠΈΡΡ
- SQL β ΡΠ·ΡΠΊ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΠΌΠΈ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ .
- Π‘ΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌΡ Π°Π½Π°Π»ΠΈΡΠΈΠΊΡ SQL Π½ΡΠΆΠ΅Π½ Π΄Π»Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ: Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π³ΠΈΠΏΠΎΡΠ΅Π·, ΡΡΠΎΡΠ½Π΅Π½ΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΈ ΠΏΡΠΈΡΠΌΠΊΠΈ.
- ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ²: ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ (DDL), ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΠΌΠΈ (DML), ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ.
- ΠΠ»Ρ Π²ΡΠ±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ
SELECT,JOINΠΈ ΠΏΠΎΠ΄Π·Π°ΠΏΡΠΎΡΡ. - Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ
JOINΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅ ΠΏΠΎΠ΄Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈΠ·-Π·Π° Π»ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΠ°ΡΠ΅ΠΌ SQL ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌΡ Π°Π½Π°Π»ΠΈΡΠΈΠΊΡ?
- Π‘Π°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Ρ Π΄Π°Π½Π½ΡΠΌΠΈ: ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π±Π΅Π· ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ.
- ΠΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π³ΠΈΠΏΠΎΡΠ΅Π·: ΠΏΡΡΠΌΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΈ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°Π½Π°Π»ΠΈΠ· ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎΡΡΠΈ ΡΠΊΠΈΠ΄ΠΊΠΈ Π΄Π»Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Ρ >10 Π·Π°ΠΊΠ°Π·ΠΎΠ²).
- Π£ΡΠΎΡΠ½Π΅Π½ΠΈΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ: ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΎΡΠ½ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ.
- Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΈΡΠΌΠΊΠ°: ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ Π·Π°ΠΏΠΈΡΠΈ Π½ΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ°ΡΡΡΡΠΎΠ² ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π»ΠΈΠ·Π°.
ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ SQL-Π·Π°ΠΏΡΠΎΡΠΎΠ²
- ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
(DDL):
CREATE,ALTER,DROP. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΠ (ΡΠ°Π±Π»ΠΈΡ, Π±Π°Π· Π΄Π°Π½Π½ΡΡ , ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΠΈ Ρ.Π΄.). - ΠΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΠΌΠΈ (DML):
INSERT,UPDATE,DELETE,SELECT. ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ Π²Π½ΡΡΡΠΈ ΡΠ°Π±Π»ΠΈΡ. - Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠΎΠΌ:
GRANT(Π²ΡΠ΄Π°ΡΡ ΠΏΡΠ°Π²Π°),REVOKE(Π·Π°Π±ΡΠ°ΡΡ ΠΏΡΠ°Π²Π°). - Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ:
COMMIT(Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ),ROLLBACK(ΠΎΡΠΊΠ°ΡΠΈΡΡ),SAVEPOINT(ΡΠΎΡΠΊΠ° ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ),SET TRANSACTION(ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ).
ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΠΌΠΈ (DDL & DML)
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ (DDL)
CREATE: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².CREATE TABLE applicants ( id INTEGER PRIMARY KEY AUTOINCREMENT, last_name TEXT, name TEXT );AUTOINCREMENTβ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π° 1 Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ Π·Π°ΠΏΠΈΡΠ΅ΠΉ.ALTER: ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΠ»Π±ΡΠ°).ALTER TABLE applicants RENAME COLUMN name TO first_name;DROP: Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (ΡΠ°Π±Π»ΠΈΡΡ, Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ Ρ.Π΄.).
Π Π°Π±ΠΎΡΠ° Ρ Π΄Π°Π½Π½ΡΠΌΠΈ (DML)
INSERT: ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ. ΠΠΎΡΡΠ΄ΠΎΠΊ ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΡΠ΄ΠΊΡ ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΠΏΠΎΠ»Π΅ΠΉ.INSERT INTO applicants (last_name, first_name) VALUES ('ΠΠ²Π°Π½ΠΎΠ²', 'ΠΠ²Π°Π½');UPDATE: ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΡΡΡΠΎΠΊΠ°Ρ ΠΏΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡ. ΠΠ΅Π· ΡΡΠ»ΠΎΠ²ΠΈΡWHEREΠΎΠ±Π½ΠΎΠ²ΠΈΡ Π²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ.UPDATE applicants SET last_name = 'ΠΠ΅ΡΡΠΎΠ²' WHERE first_name = 'ΠΠ²Π°Π½';DELETEvsTRUNCATE:DELETE: Π£Π΄Π°Π»ΡΠ΅Ρ ΡΡΡΠΎΠΊΠΈ ΠΏΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡ, ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°Ρ ΠΈΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π²Π΅Π·Π΄Π΅.TRUNCATE: Π£Π΄Π°Π»ΡΠ΅Ρ Π²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΡΠ°Π·Ρ (Π½Π΅ ΠΏΠΎΠΎΡΠ΅ΡΡΠ΄Π½ΠΎ). ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π½Π΅ Π²ΠΎ Π²ΡΠ΅Ρ Π‘Π£ΠΠ.
ΠΡΠ±ΠΎΡΠΊΠ° Π΄Π°Π½Π½ΡΡ
(SELECT)
Π‘ΡΡΡΠΊΡΡΡΠ° ΠΈ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ°
SELECT -- 5. Π§ΡΠΎ Π²ΡΠ±ΡΠ°ΡΡ (ΡΡΠΎΠ»Π±ΡΡ/Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ)?
FROM -- 1. ΠΡΠΊΡΠ΄Π° (ΡΠ°Π±Π»ΠΈΡΠ°)?
WHERE -- 2. Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΡΡΡΠΎΠΊ?
GROUP BY -- 3. ΠΠ°ΠΊ ΡΠ³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°ΡΡ?
HAVING -- 4. Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΠΏΠΎΡΠ»Π΅ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ?
ORDER BY -- 6. ΠΠ°ΠΊ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ?
ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ SELECT
- ΠΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ (
AS): ΠΠ»Ρ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠ»Π±ΡΠΎΠ², ΡΠ°Π±Π»ΠΈΡ ΠΈΠ»ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ Π² Π²ΡΠ²ΠΎΠ΄Π΅. ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎASΡΠ°ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΡΠΊΠ°ΡΡ. WHEREβ ΡΡΠ»ΠΎΠ²ΠΈΡ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ:INβ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠΏΠΈΡΠΊΠ°.BETWEEN ... AND ...β Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅.LIKEβ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΡΠ°Π±Π»ΠΎΠ½Ρ (%β Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²,_β ΠΎΠ΄ΠΈΠ½ ΡΠΈΠΌΠ²ΠΎΠ»).IS NULLβ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΏΡΡΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
GROUP BYΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ: ΠΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠ° ΡΡΡΠΎΠΊ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ.COUNT()β ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ.SUM()β ΡΡΠΌΠΌΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.AVG()β ΡΡΠ΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.MIN()/MAX()β ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅/ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
-- ΠΡΠΈΠΌΠ΅Ρ: Π‘ΡΠ°ΡΠΈΡΡΠΈΠΊΠ° ΠΏΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΡΠΌ SELECT position, COUNT(*) as applicant_count, AVG(experience) as avg_exp, MIN(salary_expectation) as min_salary, MAX(salary_expectation) as max_salary FROM applicants GROUP BY position;HAVING: Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΡΠ³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅GROUP BY). ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎWHERE, Π½ΠΎ Π΄Π»Ρ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ².ORDER BY: Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ².ASCβ ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ),DESCβ ΠΏΠΎ ΡΠ±ΡΠ²Π°Π½ΠΈΡ.
ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡ (JOIN)
JOIN ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π΄Π²ΡΡ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π±Π»ΠΈΡ ΠΏΠΎ ΠΎΠ±ΡΠ΅ΠΌΡ ΠΊΠ»ΡΡΡ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΈΠΏΡ JOIN
(INNER) JOIN: ΠΡΠ±ΠΈΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΈΠ· ΠΎΠ±Π΅ΠΈΡ ΡΠ°Π±Π»ΠΈΡ.LEFT (OUTER) JOIN: ΠΡΠ±ΠΈΡΠ°Π΅Ρ Π²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΈΠ· Π»Π΅Π²ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠΈΠ΅ ΠΈΠ· ΠΏΡΠ°Π²ΠΎΠΉ. ΠΠ΅ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΏΡΠ°Π²ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ Π±ΡΠ΄ΡΡNULL.-- ΠΠ°ΠΉΡΠΈ ΡΠΎΠΈΡΠΊΠ°ΡΠ΅Π»Π΅ΠΉ Π±Π΅Π· ΠΎΡΠΊΠ»ΠΈΠΊΠΎΠ² SELECT a.* FROM applicants a LEFT JOIN applications ap ON a.id = ap.applicant_id WHERE ap.applicant_id IS NULL;RIGHT JOIN: ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ΅Π½LEFT JOIN, Π½ΠΎ ΠΎΠΏΠΎΡΠ½ΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ°Π²Π°Ρ ΡΠ°Π±Π»ΠΈΡΠ°.FULL JOIN: ΠΡΠ±ΠΈΡΠ°Π΅Ρ Π²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ· ΠΎΠ±Π΅ΠΈΡ ΡΠ°Π±Π»ΠΈΡ, ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠΈΠ΅ ΠΈ Π½Π΅ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠΈΠ΅.USING: Π£ΠΏΡΠΎΡΡΠ½Π½Π°Ρ Π·Π°ΠΏΠΈΡΡONΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌΡΠ΅ ΡΡΠΎΠ»Π±ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΠΈΠΌΡ Π² ΠΎΠ±Π΅ΠΈΡ ΡΠ°Π±Π»ΠΈΡΠ°Ρ .
ΠΠΎΠ΄Π·Π°ΠΏΡΠΎΡΡ
ΠΠΎΠ΄Π·Π°ΠΏΡΠΎΡ β ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ SELECT, Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ Π² Π΄ΡΡΠ³ΠΎΠΉ Π·Π°ΠΏΡΠΎΡ.
ΠΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΏΠΎΠ΄Π·Π°ΠΏΡΠΎΡΠΎΠ²
- ΠΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
- Π‘ΠΊΠ°Π»ΡΡΠ½ΡΠΉ: ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ΄Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (ΠΎΠ΄Π½Π° ΡΡΡΠΎΠΊΠ°, ΠΎΠ΄ΠΈΠ½ ΡΡΠΎΠ»Π±Π΅Ρ).
-- Π‘ΠΎΠΈΡΠΊΠ°ΡΠ΅Π»ΠΈ Ρ Π·Π°ΡΠΏΠ»Π°ΡΠ½ΡΠΌΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡΠΌΠΈ Π²ΡΡΠ΅ ΡΡΠ΅Π΄Π½Π΅Π³ΠΎ SELECT * FROM applicants WHERE salary_expectation > (SELECT AVG(salary_expectation) FROM applicants);- Π’Π°Π±Π»ΠΈΡΠ½ΡΠΉ: ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ (ΡΠ°Π±Π»ΠΈΡΡ).
- ΠΠΎ ΡΠΏΠΎΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ:
- ΠΡΠΎΡΡΠΎΠΉ: ΠΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°.
- Π‘Π»ΠΎΠΆΠ½ΡΠΉ (ΠΊΠΎΡΡΠ΅Π»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ): Π‘ΡΡΠ»Π°Π΅ΡΡΡ Π½Π° ΡΡΠΎΠ»Π±ΡΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ. Π§Π°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ
EXISTS.
ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°Π±Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΏΠΎΠ΄Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ
IN: ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°.ANY/SOME: Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΈΡΡΠΈΠ½Π½ΠΎ, Π΅ΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Ρ ΠΎΡΡ Π±Ρ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΏΠΎΠ΄Π·Π°ΠΏΡΠΎΡΠ° (ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π² ΠΏΠΎΠ΄Π·Π°ΠΏΡΠΎΡΠ΅).ALL: Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΈΡΡΠΈΠ½Π½ΠΎ, Π΅ΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΠ· ΠΏΠΎΠ΄Π·Π°ΠΏΡΠΎΡΠ° (ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ).EXISTS: ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡTRUE, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ΄Π·Π°ΠΏΡΠΎΡ Π²Π΅ΡΠ½ΡΠ» Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ.
ΠΡΠ°Π²ΠΈΠ»Π° ΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΏΠΎ ΠΏΠΎΠ΄Π·Π°ΠΏΡΠΎΡΠ°ΠΌ
- ΠΠΎΠ΄Π·Π°ΠΏΡΠΎΡ Π²ΡΠ΅Π³Π΄Π° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΊΡΡΠ³Π»ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ.
- ΠΠΎΠ΄Π·Π°ΠΏΡΠΎΡ Π² ΡΡΠ»ΠΎΠ²ΠΈΠΈ
SELECTΠΎΠ±ΡΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΡΠΎΠ»Π±Π΅Ρ. - ΠΠΈΠ½ΡΡΡ: ΠΠΎΠ³ΡΡ Π½Π΅Π³Π°ΡΠΈΠ²Π½ΠΎ Π²Π»ΠΈΡΡΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΎΠ±ΡΡΠΌΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ .
- Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ: ΠΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π°ΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΠ΄Π·Π°ΠΏΡΠΎΡΡ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ
JOIN, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π΅Π΅.
ΠΡΠ²ΠΎΠ΄Ρ
- ΠΠ»Π°Π΄Π΅Π½ΠΈΠ΅ SQL ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΠΎ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ° Π΄Π»Ρ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ.
- ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΎΠΊΡΡ Π² ΡΠ°Π±ΠΎΡΠ΅ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ° β Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ
Π²ΡΠ±ΠΎΡΠΊΠΈ (
SELECT,JOIN) ΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΠΌΠΈ (DML). - ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ΄ΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ° (
FROM->WHERE->GROUP BY->HAVING->SELECT->ORDER BY) ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π² ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΡ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ². - ΠΠ»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
JOIN, Π° Π½Π΅ ΠΏΠΎΠ΄Π·Π°ΠΏΡΠΎΡΡ, ΠΈΠ·-Π·Π° ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ Π»ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.