ΠΠΎ ΠΏΡΠ΅ΡΡ
ΠΎΠ΄Π½ΠΈΠΎΡ
ΠΠΎ ΠΎΠ²Π°Π° ΡΡΠ°ΡΠΈΡΠ°, ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ°ΠΌ ΠΊΠ°ΠΊΠΎ ΠΎΠ²ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π±ΡΠ·ΠΎ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ½ΠΎ Π΄Π° Π³ΠΈ Π±Π°Π»Π°Π½ΡΠΈΡΠ°ΡΠ΅ ΠΏΠΈΡΡΠ²Π°ΡΠ°ΡΠ° ΠΈ ΡΠΈΡΠ°ΡΠ°ΡΠ° Π²ΠΎ Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π±Π΅Π· Π½ΠΈΠΊΠ°ΠΊΠ²Π° ΠΏΡΠΎΠΌΠ΅Π½Π° Π²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π°ΡΠ° Π»ΠΎΠ³ΠΈΠΊΠ°. Π‘Π»ΠΈΡΠ½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΡΠ΅ ΠΎΠ±ΠΈΠ΄Π΅ Π΄Π° ΡΠ΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ° Π²ΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ΅ΡΡΠΈΡΠ°Π»Π½ΠΈ DBMS (ΠΎΡΠΎΠ±Π΅Π½ΠΎ Oracle ΠΈ Microsoft SQL Server). ΠΠ° ΠΊΡΠ°ΡΠΎΡ ΠΎΠ΄ ΡΡΠ°ΡΠΈΡΠ°ΡΠ° ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ°ΠΌ Π΄Π΅ΠΊΠ° ΠΎΠ½Π° ΡΡΠΎ ΡΠΈΠ΅ Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ°, Π±Π»Π°Π³ΠΎ ΠΊΠ°ΠΆΠ°Π½ΠΎ, Π½Π΅ ΡΡΠΏΠ΅Π° ΠΌΠ½ΠΎΠ³Ρ Π΄ΠΎΠ±ΡΠΎ.
ΠΠΏΠΈΡ
ΠΠ°ΠΊΠΎ ΠΈ Π΄ΠΎΡΠ΅Π³Π°, Π·Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅ ΡΠ΅ Π³ΠΎ Π·Π°ΠΏΠΎΡΠ½Π°ΠΌ ΠΎΠΏΠΈΡΠΎΡ ΡΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΈ. ΠΠ° ΡΠ΅ΡΠ΅ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΡΡΠ΅Π±Π° Π΄Π° ΡΠΏΡΠΎΠ²Π΅Π΄Π΅ΠΌΠ΅ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΊΠΎΡΠ° ΡΠ΅ Π²ΡΠ°ΡΠΈ ΡΠΏΠΈΡΠΎΠΊ Π½Π° ΠΎΠ΄Π΄Π΅Π»Π΅Π½ΠΈΡΠ° ΡΠΎ Π±ΡΠΎΡΠΎΡ Π½Π° Π²ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ Π²ΠΎ Π½ΠΈΠ² ΠΈ Π½ΠΈΠ²Π½Π°ΡΠ° Π²ΠΊΡΠΏΠ½Π° ΠΏΠ»Π°ΡΠ°.
ΠΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½Π° Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ, ΡΠΎΠ° Π±ΠΈ ΠΈΠ·Π³Π»Π΅Π΄Π°Π»ΠΎ Π²Π°ΠΊΠ°:
CLASS Department βΠΡΠ΄Π΅Π»β;
name βΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅β = DATA STRING[100] (Department);
CLASS Employee βΠ‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊβ;
department βΠΡΠ΄Π΅Π»β = DATA Department (Employee);
salary βΠΠ°ΡΠΏΠ»Π°ΡΠ°β = DATA NUMERIC[10,2] (Employee);
countEmployees βΠΠΎΠ»-Π²ΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ²β (Department d) =
GROUP SUM 1 IF department(Employee e) = d;
salarySum βΠ‘ΡΠΌΠΌΠ°ΡΠ½Π°Ρ Π·Π°ΡΠΏΠ»Π°ΡΠ°β (Department d) =
GROUP SUM salary(Employee e) IF department(e) = d;
SELECT name(Department d), countEmployees(d), salarySum(d);
ΠΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎΡΡΠ° Π½Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΎΠ²Π° Π±Π°ΡΠ°ΡΠ΅ Π²ΠΎ ΠΊΠΎΡΠ° Π±ΠΈΠ»ΠΎ DBMS ΡΠ΅ Π±ΠΈΠ΄Π΅ Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Π° Π½Π° Π (Π±ΡΠΎΡ Π½Π° Π²ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ)Π±ΠΈΠ΄Π΅ΡΡΠΈ ΠΎΠ²Π°Π° ΠΏΡΠ΅ΡΠΌΠ΅ΡΠΊΠ° Π±Π°ΡΠ° ΡΠΊΠ΅Π½ΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ΅Π»Π°ΡΠ° ΡΠ°Π±Π΅Π»Π° Π½Π° Π²ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ ΠΈ ΠΏΠΎΡΠΎΠ° Π½ΠΈΠ²Π½ΠΎ Π³ΡΡΠΏΠΈΡΠ°ΡΠ΅ ΠΏΠΎ ΠΎΠ΄Π΄Π΅Π». ΠΠ΅ ΠΈΠΌΠ° ΠΈ ΠΌΠ°Π» Π΄ΠΎΠ΄Π°ΡΠΎΠΊ (Π²Π΅ΡΡΠ²Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³Ρ ΠΏΠΎΠ²Π΅ΡΠ΅ Π²ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ ΠΎΡΠΊΠΎΠ»ΠΊΡ ΠΎΠ΄Π΄Π΅Π»Π΅Π½ΠΈΡΠ°) Π²ΠΎ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡ ΠΎΠ΄ ΠΈΠ·Π±ΡΠ°Π½ΠΈΠΎΡ ΠΏΠ»Π°Π½ O (Π΄Π½Π΅Π²Π½ΠΈΠΊ Π½Π° Π±ΡΠΎΡΠΎΡ Π½Π° Π²ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ) ΠΈΠ»ΠΈ O (Π±ΡΠΎΡ Π½Π° ΠΎΠ΄Π΄Π΅Π»Π΅Π½ΠΈΡΠ°) Π·Π° Π³ΡΡΠΏΠΈΡΠ°ΡΠ΅ ΠΈ ΡΠ».
ΠΠ°ΡΠ½ΠΎ Π΅ Π΄Π΅ΠΊΠ° ΡΡΠΎΡΠΎΡΠΈΡΠ΅ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ DBMS, Π½ΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΎΡΡΠ° Π½Π΅ΠΌΠ° Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π½Π° ΠΊΠΎΡ Π±ΠΈΠ»ΠΎ Π½Π°ΡΠΈΠ½.
ΠΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π°ΡΠ° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°, ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΈΠΎΡ DBMS ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° Π΅Π΄Π½ΠΎ ΠΏΠΎΠ΄ΠΏΡΠ°ΡΠ°ΡΠ΅ ΠΊΠΎΠ΅ ΡΠ΅ Π³ΠΈ ΠΏΡΠ΅ΡΠΌΠ΅ΡΠ° ΠΏΠΎΡΡΠ΅Π±Π½ΠΈΡΠ΅ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ Π·Π° ΠΎΠ΄Π΄Π΅Π»ΠΎΡ, Π° ΠΏΠΎΡΠΎΠ° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ JOIN ΡΠΎ ΡΠ°Π±Π΅Π»Π°ΡΠ° Π½Π° ΠΎΠ΄Π΄Π΅Π»ΠΎΡ Π·Π° Π΄Π° Π³ΠΎ Π΄ΠΎΠ±ΠΈΠ΅ ΠΈΠΌΠ΅ΡΠΎ. ΠΠ΅ΡΡΡΠΎΠ°, Π·Π° ΡΠ΅ΠΊΠΎΡΠ° ΡΡΠ½ΠΊΡΠΈΡΠ°, ΠΏΡΠΈ Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠ°ΡΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΈ ΠΏΠΎΡΠ΅Π±Π΅Π½ ΠΠΠ’ΠΠ ΠΠΠΠΠΠΠΠ ΠΠ ΠΌΠ°ΡΠΊΠ΅Ρ. Π‘ΠΈΡΡΠ΅ΠΌΠΎΡ Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΈ ΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄Π΅ ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΎ ΠΏΠΎΠ»Π΅ Π·Π° ΡΠ΅ΠΊΠΎΡΠ° ΡΠ°ΠΊΠ²Π° ΡΡΠ½ΠΊΡΠΈΡΠ°. ΠΡΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π° Π½Π° Π²ΡΠ΅Π΄Π½ΠΎΡΡΠ° Π½Π° ΡΡΠ½ΠΊΡΠΈΡΠ°ΡΠ°, Π²ΡΠ΅Π΄Π½ΠΎΡΡΠ° Π½Π° ΠΏΠΎΠ»Π΅ΡΠΎ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ ΠΈΡΡΠ°ΡΠ° ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΡΠ°. ΠΡΠΈ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ ΠΎΠ²Π°Π° ΡΡΠ½ΠΊΡΠΈΡΠ°, ΡΠ΅ ΡΠ΅ ΠΏΡΠΈΡΡΠ°ΠΏΠΈ Π΄ΠΎ ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΎ ΠΏΡΠ΅ΡΠΌΠ΅ΡΠ°Π½ΠΎΡΠΎ ΠΏΠΎΠ»Π΅.
ΠΡΠΎΠ±Π΅Π½ΠΎ, Π°ΠΊΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ MATERIALIZED Π·Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π±ΡΠΎΠΈΠΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ ΠΈ ΠΏΠ»Π°ΡΠ° ΠΠ±ΠΈΡ, ΠΏΠΎΡΠΎΠ° Π²ΠΎ ΡΠ°Π±Π΅Π»Π°ΡΠ° ΡΠΎ ΡΠΏΠΈΡΠΎΠΊΠΎΡ ΠΎΠ΄Π΄Π΅Π»Π΅Π½ΠΈΡΠ° ΡΠ΅ ΡΠ΅ Π΄ΠΎΠ΄Π°Π΄Π°Ρ Π΄Π²Π΅ ΠΏΠΎΠ»ΠΈΡΠ° Π²ΠΎ ΠΊΠΎΠΈ ΡΠ΅ ΡΠ΅ Π·Π°ΡΡΠ²Π° Π±ΡΠΎΡΠΎΡ Π½Π° Π²ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ ΠΈ Π½ΠΈΠ²Π½Π°ΡΠ° Π²ΠΊΡΠΏΠ½Π° ΠΏΠ»Π°ΡΠ°. Π‘Π΅ΠΊΠΎΠ³Π°Ρ ΠΊΠΎΠ³Π° ΡΠ΅ Π΄ΠΎΡΠ΄Π΅ Π΄ΠΎ ΠΏΡΠΎΠΌΠ΅Π½Π° Π½Π° Π²ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈΡΠ΅, Π½ΠΈΠ²Π½ΠΈΡΠ΅ ΠΏΠ»Π°ΡΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΈΠΏΠ°Π΄Π½ΠΎΡΡΠΈ Π½Π° ΠΎΠ΄Π΄Π΅Π»ΠΎΡ, ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΈ ΡΠ΅ Π³ΠΈ ΠΌΠ΅Π½ΡΠ²Π° Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΎΠ²ΠΈΠ΅ ΠΏΠΎΠ»ΠΈΡΠ°. ΠΠΎΡΠ΅Π½Π°Π²Π΅Π΄Π΅Π½ΠΎΡΠΎ Π±Π°ΡΠ°ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΡΠ΅ ΠΏΡΠΈΡΡΠ°ΠΏΠΈ Π΄ΠΎ ΠΎΠ²ΠΈΠ΅ ΠΏΠΎΠ»ΠΈΡΠ° ΠΈ ΡΠ΅ ΡΠ΅ ΠΈΠ·Π²ΡΡΠΈ Π²ΠΎ O (Π±ΡΠΎΡ Π½Π° ΠΎΠ΄Π΄Π΅Π»Π΅Π½ΠΈΡΠ°).
ΠΠΎΠΈ ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ°ΡΠ°? Π‘Π°ΠΌΠΎ Π΅Π΄Π½Π° ΡΠ°Π±ΠΎΡΠ°: ΡΠ°ΠΊΠ²Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡΠ° ΠΌΠΎΡΠ° Π΄Π° ΠΈΠΌΠ° ΠΊΠΎΠ½Π΅ΡΠ΅Π½ Π±ΡΠΎΡ Π½Π° Π²Π»Π΅Π·Π½ΠΈ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ Π·Π° ΠΊΠΎΠΈ Π΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π° Π½Π΅ΡΠ·ΠΈΠ½Π°ΡΠ° Π²ΡΠ΅Π΄Π½ΠΎΡΡ. ΠΠΎ ΡΠΏΡΠΎΡΠΈΠ²Π½ΠΎ, ΡΠ΅ Π±ΠΈΠ΄Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄ΠΈ ΡΠ°Π±Π΅Π»Π° ΡΡΠΎ Π³ΠΈ ΡΠΊΠ»Π°Π΄ΠΈΡΠ° ΡΠΈΡΠ΅ Π½Π΅ΡΠ·ΠΈΠ½ΠΈ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ, Π±ΠΈΠ΄Π΅ΡΡΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΡΠ°Π±Π΅Π»Π° ΡΠΎ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ΅Π½ Π±ΡΠΎΡ ΡΠ΅Π΄ΠΎΠ²ΠΈ.
ΠΡΠΈΠΌΠ΅Ρ:
employeesCount βΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² Ρ Π·Π°ΡΠΏΠ»Π°ΡΠΎΠΉ > Nβ (Department d, NUMERIC[10,2] N) =
GROUP SUM salary(Employee e) IF department(e) = d AND salary(e) > N;
ΠΠ²Π°Π° ΡΡΠ½ΠΊΡΠΈΡΠ° Π΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π° Π·Π° Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ΅Π½ Π±ΡΠΎΡ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ ΠΎΠ΄ N (Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΠΊΠΎΡΠ° Π½Π΅Π³Π°ΡΠΈΠ²Π½Π° Π²ΡΠ΅Π΄Π½ΠΎΡΡ Π΅ ΠΏΠΎΠ³ΠΎΠ΄Π½Π°). ΠΠ°ΡΠΎΠ°, Π½Π° Π½Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ°Π²ΠΈΡΠ΅ ΠΠΠ’ΠΠ ΠΠΠΠΠΠΠΠ ΠΠΠ. ΠΠ½Π°ΡΠΈ, ΠΎΠ²Π° Π΅ Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ΅, Π° Π½Π΅ ΡΠ΅Ρ Π½ΠΈΡΠΊΠΎ (ΠΎΠ΄Π½ΠΎΡΠ½ΠΎ, Π½Π΅ Π·Π°ΡΠΎΠ° ΡΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Π²ΠΌΠ΅ Π΄Π° Π³ΠΎ ΡΠΏΡΠΎΠ²Π΅Π΄Π΅ΠΌΠ΅). ΠΠΎ ΡΠΏΡΠΎΡΠΈΠ²Π½ΠΎ, Π½Π΅ΠΌΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ°. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ Π³ΡΡΠΏΠΈΡΠ°ΡΠ°, ΡΠΎΡΡΠΈΡΠ°ΡΠ΅, Π ΠΈ ΠΠΠ, ΠΠΠΠΠΠΠ, ΡΠ΅ΠΊΡΡΠ·ΠΈΡΠ° ΠΈΡΠ½.
ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ 2.2 ΠΎΠ΄ ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½Π°ΡΠ° ΡΡΠ°ΡΠΈΡΠ°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ°Π²ΠΈΡΠ΅ ΠΠΠ’ΠΠ ΠΠΠΠΠΠΠΠ ΠΠΠ Π½Π° Π΄Π²Π΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
bought 'ΠΡΠΏΠΈΠ»' (Customer c, Product p, INTEGER y) =
GROUP SUM sum(Detail d) IF
customer(order(d)) = c AND
product(d) = p AND
extractYear(date(order(d))) = y MATERIALIZED;
rating 'Π Π΅ΠΉΡΠΈΠ½Π³' (Customer c, Product p, INTEGER y) =
PARTITION SUM 1 ORDER DESC bought(c, p, y), p BY c, y MATERIALIZED;
SELECT contactName(Customer c), name(Product p) WHERE rating(c, p, 1997) < 3;
Π‘Π°ΠΌΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄Π΅ Π΅Π΄Π½Π° ΡΠ°Π±Π΅Π»Π° ΡΠΎ ΠΊΠΎΠΏΡΠΈΡΠ° Π·Π° ΡΠΈΠΏ ΠΠ»ΠΈΠ΅Π½Ρ, ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ ΠΈ Π¦ΠΠ ΠΠ ΠΠ, ΡΠ΅ Π΄ΠΎΠ΄Π°Π΄Π΅ Π΄Π²Π΅ ΠΏΠΎΠ»ΠΈΡΠ° Π½Π° Π½Π΅Π³ΠΎ ΠΈ ΡΠ΅ Π³ΠΈ Π°ΠΆΡΡΠΈΡΠ° Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΏΠΎΠ»ΠΈΡΠ°ΡΠ° Π²ΠΎ Π½ΠΈΠ² ΡΠΎ ΠΊΠ°ΠΊΠ²ΠΈ Π±ΠΈΠ»ΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ. ΠΠΎΠ³Π° ΡΠ΅ ΡΠ΅ Π½Π°ΠΏΡΠ°Π²Π°Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΏΠΎΠ²ΠΈΡΠΈ Π΄ΠΎ ΠΎΠ²ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΈΠ΅ Π½Π΅ΠΌΠ° Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΡΠΌΠ΅ΡΡΠ²Π°Π°Ρ, ΡΡΠΊΡ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈΡΠ΅ ΡΠ΅ ΡΠ΅ ΡΠΈΡΠ°Π°Ρ ΠΎΠ΄ ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΈΡΠ΅ ΠΏΠΎΠ»ΠΈΡΠ°.
ΠΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π³ΠΎ ΠΎΠ²ΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·Π°ΠΌ, ΠΌΠΎΠΆΠ΅ΡΠ΅, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π° ΡΠ΅ ΠΎΡΠ»ΠΎΠ±ΠΎΠ΄ΠΈΡΠ΅ ΠΎΠ΄ ΡΠ΅ΠΊΡΡΠ·ΠΈΠΈ (CTE) Π²ΠΎ Π±Π°ΡΠ°ΡΠ°ΡΠ°. ΠΠΎΡΠ΅Π±Π½ΠΎ, ΡΠ°Π·Π³Π»Π΅Π΄Π°ΡΡΠ΅ Π³ΠΈ Π³ΡΡΠΏΠΈΡΠ΅ ΠΊΠΎΠΈ ΡΠΎΡΠΌΠΈΡΠ°Π°Ρ Π΄ΡΠ²ΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π³ΠΎ ΠΎΠ΄Π½ΠΎΡΠΎΡ Π΄Π΅ΡΠ΅/ΡΠΎΠ΄ΠΈΡΠ΅Π» (ΡΠ΅ΠΊΠΎΡΠ° Π³ΡΡΠΏΠ° ΠΈΠΌΠ° Π²ΡΡΠΊΠ° Π΄ΠΎ ΡΠ²ΠΎΡΠΎΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»):
parent = DATA Group (Group);
ΠΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½Π° Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ, Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° ΡΠ΅ΠΊΡΡΠ·ΠΈΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°Π²Π΅Π΄Π΅ Π½Π° ΡΠ»Π΅Π΄Π½ΠΈΠΎΠ² Π½Π°ΡΠΈΠ½:
level (Group child, Group parent) = RECURSION 1l IF child IS Group AND parent == child
STEP 2l IF parent == parent($parent);
isParent (Group child, Group parent) = TRUE IF level(child, parent) MATERIALIZED;
ΠΠΈΠ΄Π΅ΡΡΠΈ Π·Π° ΡΡΠ½ΠΊΡΠΈΡΠ°ΡΠ° Π΅ Π ΠΎΠ΄ΠΈΡΠ΅Π» ΡΠ΅ ΠΎΠ·Π½Π°ΡΡΠ²Π° ΠΠΠ’ΠΠ ΠΠΠΠΠΠΠΠ ΠΠΠ, ΠΏΠΎΡΠΎΠ° Π·Π° Π½Π΅Π° ΡΠ΅ ΡΠ΅ ΠΊΡΠ΅ΠΈΡΠ° ΡΠ°Π±Π΅Π»Π° ΡΠΎ Π΄Π²Π° ΠΊΠ»ΡΡΠ° (Π³ΡΡΠΏΠΈ) Π²ΠΎ ΠΊΠΎΡΠ° ΠΏΠΎΠ»Π΅ΡΠΎ Π΅ Π ΠΎΠ΄ΠΈΡΠ΅Π» ΡΠ΅ Π±ΠΈΠ΄Π΅ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΌΠΎ Π°ΠΊΠΎ ΠΏΡΠ²ΠΈΠΎΡ ΠΊΠ»ΡΡ Π΅ Π΄Π΅ΡΠ΅ Π½Π° Π²ΡΠΎΡΠΈΠΎΡ. ΠΡΠΎΡΠΎΡ Π½Π° Π·Π°ΠΏΠΈΡΠΈ Π²ΠΎ ΠΎΠ²Π°Π° ΡΠ°Π±Π΅Π»Π° ΡΠ΅ Π±ΠΈΠ΄Π΅ Π΅Π΄Π½Π°ΠΊΠΎΠ² Π½Π° Π±ΡΠΎΡΠΎΡ Π½Π° Π³ΡΡΠΏΠΈ ΠΏΠΎΠΌΠ½ΠΎΠΆΠ΅Π½ ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΠ½Π°ΡΠ° Π΄Π»Π°Π±ΠΎΡΠΈΠ½Π° Π½Π° Π΄ΡΠ²ΠΎΡΠΎ. ΠΠΊΠΎ Π²ΠΈ ΡΡΠ΅Π±Π°, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π° Π³ΠΎ Π±ΡΠΎΠΈΡΠ΅ Π±ΡΠΎΡΠΎΡ Π½Π° ΠΏΠΎΡΠΎΠΌΡΠΈ Π½Π° ΠΎΠ΄ΡΠ΅Π΄Π΅Π½Π° Π³ΡΡΠΏΠ°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ ΠΎΠ²Π°Π° ΡΡΠ½ΠΊΡΠΈΡΠ°:
childrenCount (Group g) = GROUP SUM 1 IF isParent(Group child, g);
ΠΠ΅ΠΌΠ° Π΄Π° ΠΈΠΌΠ° CTE Π²ΠΎ Π±Π°ΡΠ°ΡΠ΅ΡΠΎ SQL. ΠΠ°ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ° ΡΠ΅ ΠΈΠΌΠ° Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½Π° GROUP BY.
ΠΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π³ΠΎ ΠΎΠ²ΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·Π°ΠΌ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅ΡΠ½ΠΎ Π΄Π° ΡΠ° Π΄Π΅Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π΄ΠΎΠΊΠΎΠ»ΠΊΡ Π΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ:
CLASS Order 'ΠΠ°ΠΊΠ°Π·';
date 'ΠΠ°ΡΠ°' = DATA DATE (Order);
CLASS OrderDetail 'Π‘ΡΡΠΎΠΊΠ° Π·Π°ΠΊΠ°Π·Π°';
order 'ΠΠ°ΠΊΠ°Π·' = DATA Order (OrderDetail);
date 'ΠΠ°ΡΠ°' (OrderDetail d) = date(order(d)) MATERIALIZED INDEXED;
ΠΠΎΠ³Π° ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π°ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡΠ° Π΄Π°ΡΡΠΌ Π·Π° ΡΠ΅Π΄ΠΎΡ Π·Π° Π½Π°ΡΠ°ΡΠΊΠΈ, ΠΏΠΎΠ»Π΅ΡΠΎ Π·Π° ΠΊΠΎΠ΅ ΠΈΠΌΠ° ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠ΅ ΡΠ΅ ΡΠΈΡΠ° ΠΎΠ΄ ΡΠ°Π±Π΅Π»Π°ΡΠ° ΡΠΎ Π»ΠΈΠ½ΠΈΠΈ Π·Π° Π½Π°ΡΠ°ΡΠΊΠΈ. ΠΠΎΠ³Π° ΡΠ΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π΄Π°ΡΡΠΌΠΎΡ Π½Π° Π½Π°ΡΠ°ΡΠΊΠ°ΡΠ°, ΡΠ°ΠΌΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΡΠ΅ Π³ΠΎ ΠΏΡΠ΅ΡΠΌΠ΅ΡΠ° Π΄Π΅Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈΠΎΡ Π΄Π°ΡΡΠΌ Π²ΠΎ Π»ΠΈΠ½ΠΈΡΠ°ΡΠ°.
ΠΡΠ΅Π΄Π½ΠΎΡΡΠΈ
ΠΠ° ΡΡΠΎ ΡΠ»ΡΠΆΠΈ ΡΠ΅Π»ΠΈΠΎΡ ΠΎΠ²ΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·Π°ΠΌ? ΠΠΎ ΠΊΠ»Π°ΡΠΈΡΠ½ΠΈΡΠ΅ DBMS, Π±Π΅Π· ΠΏΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΠ΅ ΠΏΡΠ°ΡΠ°ΡΠ°, ΡΠ°Π·Π²ΠΈΠ²Π°ΡΠΎΡ ΠΈΠ»ΠΈ DBA ΠΌΠΎΠΆΠ΅ ΡΠ°ΠΌΠΎ Π΄Π° ΠΌΠ΅Π½ΡΠ²Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈ, Π΄Π° ΠΎΠ΄ΡΠ΅Π΄ΡΠ²Π° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° ΠΈ Π΄Π° ΠΌΡ ΠΊΠ°ΠΆΠ΅ Π½Π° ΠΏΠ»Π°Π½Π΅ΡΠΎΡ Π·Π° ΠΏΡΠ°ΡΠ°ΡΠ° ΠΊΠ°ΠΊΠΎ Π΄Π° Π³ΠΈ ΠΈΠ·Π²ΡΡΠΈ (Π° HINTs ΡΠ΅ Π΄ΠΎΡΡΠ°ΠΏΠ½ΠΈ ΡΠ°ΠΌΠΎ Π²ΠΎ ΠΊΠΎΠΌΠ΅ΡΡΠΈΡΠ°Π»Π½ΠΈΡΠ΅ DBMS). ΠΠΎΠ»ΠΊΡ ΠΈ Π΄Π° ΡΠ΅ ΡΡΡΠ΄Π°Ρ, Π½Π΅ΠΌΠ° Π΄Π° ΠΌΠΎΠΆΠ°Ρ Π΄Π° Π³ΠΎ Π·Π°Π²ΡΡΠ°Ρ ΠΏΡΠ²ΠΎΡΠΎ Π±Π°ΡΠ°ΡΠ΅ Π²ΠΎ Π½Π°ΠΏΠΈΡΠΎΡ Π²ΠΎ O (Π±ΡΠΎΡ Π½Π° ΠΎΠ΄Π΄Π΅Π»Π΅Π½ΠΈΡΠ°) Π±Π΅Π· ΠΏΡΠΎΠΌΠ΅Π½Π° Π½Π° ΠΏΡΠ°ΡΠ°ΡΠ° ΠΈΠ»ΠΈ Π΄ΠΎΠ΄Π°Π²Π°ΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΡΠ²Π°ΡΠΈ. ΠΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π°ΡΠ° ΡΠ΅ΠΌΠ°, Π²ΠΎ ΡΠ°Π·Π°ΡΠ° Π½Π° ΡΠ°Π·Π²ΠΎΡ Π½Π΅ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ°Π·ΠΌΠΈΡΠ»ΡΠ²Π°ΡΠ΅ Π·Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΈ ΠΊΠΎΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠΈΠΈ Π΄Π° Π³ΠΈ ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅. Π‘Π΅ΡΠΎ ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π»Π΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΡΠΌΠ΅Π½ΠΈ Π²ΠΎ Π»Π΅Ρ, Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ°.
ΠΠΎ ΠΏΡΠ°ΠΊΡΠ° ΡΠΎΠ° ΠΈΠ·Π³Π»Π΅Π΄Π° Π²Π°ΠΊΠ°. ΠΠ΅ΠΊΠΎΠΈ Π»ΡΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°Π°Ρ Π»ΠΎΠ³ΠΈΠΊΠ° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π·Π°ΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° Π·Π°Π΄Π°ΡΠ°ΡΠ° ΡΡΠΎ ΡΠ° ΠΈΠΌΠ°Π°Ρ. Π’ΠΈΠ΅ Π½Π΅ Π³ΠΈ ΡΠ°Π·Π±ΠΈΡΠ°Π°Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ ΠΈ Π½ΠΈΠ²Π½Π°ΡΠ° ΡΠ»ΠΎΠΆΠ΅Π½ΠΎΡΡ, ΠΏΠ»Π°Π½ΠΎΠ²ΠΈΡΠ΅ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅, Π²ΠΈΠ΄ΠΎΠ²ΠΈΡΠ΅ ΡΠΏΠΎΡΡΠ²Π°ΡΠ° ΠΈΠ»ΠΈ ΠΊΠΎΡΠ° Π±ΠΈΠ»ΠΎ Π΄ΡΡΠ³Π° ΡΠ΅Ρ Π½ΠΈΡΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΠ²ΠΈΠ΅ Π»ΡΡΠ΅ ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π΄Π΅Π»ΠΎΠ²Π½ΠΈ Π°Π½Π°Π»ΠΈΡΠΈΡΠ°ΡΠΈ ΠΎΡΠΊΠΎΠ»ΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈ. ΠΠΎΡΠΎΠ°, ΡΠ΅ΡΠΎ ΠΎΠ²Π° ΠΎΠ΄ΠΈ Π²ΠΎ ΡΠ΅ΡΡΠΈΡΠ°ΡΠ΅ ΠΈΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ°. ΠΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΅Π²ΠΈΠ΄Π΅Π½ΡΠΈΡΠ°ΡΠ΅ Π½Π° Π΄ΠΎΠ»Π³ΠΎΡΡΠ°ΡΠ½ΠΈ ΠΏΡΠ°ΡΠ°ΡΠ°. ΠΠΎΠ³Π° ΡΠ΅ ΡΠ΅ ΠΎΡΠΊΡΠΈΠ΅ Π΄ΠΎΠ»Π³ΠΎ Π±Π°ΡΠ°ΡΠ΅, ΡΠΎΠ³Π°Ρ Π΄ΡΡΠ³ΠΈ Π»ΡΡΠ΅ (ΠΏΠΎΡΠ΅Ρ Π½ΠΈΡΠΊΠΈ - Π²ΠΎ ΡΡΡΡΠΈΠ½Π° DBA) ΠΎΠ΄Π»ΡΡΡΠ²Π°Π°Ρ Π΄Π° ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ°Ρ ΠΠΠ’ΠΠ ΠΠΠΠΠΠΠΠ ΠΠΠ Π½Π° Π½Π΅ΠΊΠΎΡΠ° ΡΡΠ΅Π΄Π½Π° ΡΡΠ½ΠΊΡΠΈΡΠ°. ΠΠ²Π° ΠΌΠ°Π»ΠΊΡ Π³ΠΎ ΡΡΠΏΠΎΡΡΠ²Π° ΡΠ½ΠΈΠΌΠ°ΡΠ΅ΡΠΎ (Π±ΠΈΠ΄Π΅ΡΡΠΈ Π±Π°ΡΠ° Π°ΠΆΡΡΠΈΡΠ°ΡΠ΅ Π½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ»Π΅ Π²ΠΎ ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΡΠ°ΡΠ°). Π‘Π΅ΠΏΠ°ΠΊ, Π½Π΅ ΡΠ°ΠΌΠΎ ΠΎΠ²Π° Π±Π°ΡΠ°ΡΠ΅ Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π·Π°Π±ΡΠ·Π°Π½ΠΎ, ΡΡΠΊΡ ΠΈ ΡΠΈΡΠ΅ Π΄ΡΡΠ³ΠΈ ΡΡΠΎ ΡΠ° ΠΊΠΎΡΠΈΡΡΠ°Ρ ΠΎΠ²Π°Π° ΡΡΠ½ΠΊΡΠΈΡΠ°. ΠΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅, ΠΎΠ΄Π»ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ ΠΊΠΎΡΠ° ΡΡΠ½ΠΊΡΠΈΡΠ° Π΄Π° ΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ° Π΅ ΡΠ΅Π»Π°ΡΠΈΠ²Π½ΠΎ Π»Π΅ΡΠ½ΠΎ. ΠΠ²Π° Π³Π»Π°Π²Π½ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ: Π±ΡΠΎΡΠΎΡ Π½Π° ΠΌΠΎΠΆΠ½ΠΈ Π²Π»Π΅Π·Π½ΠΈ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ (ΠΎΠ²Π° Π΅ ΠΊΠΎΠ»ΠΊΡ Π·Π°ΠΏΠΈΡΠΈ ΡΠ΅ ΠΈΠΌΠ° Π²ΠΎ ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½Π°ΡΠ° ΡΠ°Π±Π΅Π»Π°) ΠΈ ΠΊΠΎΠ»ΠΊΡ ΡΠ΅ΡΡΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π²ΠΎ Π΄ΡΡΠ³ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠ½Π°Π»ΠΎΠ·ΠΈ
Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ΅ΡΡΠΈΡΠ°Π»Π½ΠΈ DBMS ΠΈΠΌΠ°Π°Ρ ΡΠ»ΠΈΡΠ½ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ: ΠΠΠ’ΠΠ ΠΠΠΠΠΠΠΠ ΠΠ ΠΠΠΠΠΠ ΡΠΎ ΠΠ ΠΠ ΠΠ‘ΠΠΠΠ£ΠΠΠΠ (Oracle) ΠΈ ΠΠΠΠΠΠ‘ΠΠ ΠΠ ΠΠΠΠΠΠ (Microsoft SQL Server). ΠΠΎ PostgreSQL, MATERIALIZED VIEW Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π°ΠΆΡΡΠΈΡΠ° Π²ΠΎ ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΡΠ°, ΡΡΠΊΡ ΡΠ°ΠΌΠΎ Π½Π° Π±Π°ΡΠ°ΡΠ΅ (ΠΏΠ° Π΄ΡΡΠΈ ΠΈ ΡΠΎ ΠΌΠ½ΠΎΠ³Ρ ΡΡΡΠΎΠ³ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ°), ΠΏΠ° Π·Π°ΡΠΎΠ° Π½Π΅ Π³ΠΎ ΡΠ°Π·Π³Π»Π΅Π΄ΡΠ²Π°ΠΌΠ΅. ΠΠΎ, ΡΠΈΠ΅ ΠΈΠΌΠ°Π°Ρ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΊΠΎΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°Π°Ρ Π½ΠΈΠ²Π½Π°ΡΠ° ΡΠΏΠΎΡΡΠ΅Π±Π°.
ΠΡΠ²ΠΎ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΠ° ΡΠ°ΠΌΠΎ Π°ΠΊΠΎ Π²Π΅ΡΠ΅ ΡΡΠ΅ ΡΠΎΠ·Π΄Π°Π»Π΅ ΡΠ΅Π΄ΠΎΠ²Π΅Π½ VIEW. ΠΠΎ ΡΠΏΡΠΎΡΠΈΠ²Π½ΠΎ, ΡΠ΅ ΠΌΠΎΡΠ° Π΄Π° Π³ΠΈ ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΠΈΡΠ΅ ΠΏΡΠ΅ΠΎΡΡΠ°Π½Π°ΡΠΈΡΠ΅ Π±Π°ΡΠ°ΡΠ° Π·Π° ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ Π½ΠΎΠ²ΠΎΡΠΎΠ·Π΄Π°Π΄Π΅Π½ΠΈΠΎΡ ΠΏΡΠΈΠΊΠ°Π· Π·Π° Π΄Π° ΡΠ° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ ΠΎΠ²Π°Π° ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΠ°. ΠΠ»ΠΈ ΠΎΡΡΠ°Π²Π΅ΡΠ΅ ΡΓ¨ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅, Π½ΠΎ ΡΠΎΠ° ΡΠ΅ Π±ΠΈΠ΄Π΅ Π±Π°ΡΠ΅ΠΌ Π½Π΅Π΅ΡΠΈΠΊΠ°ΡΠ½ΠΎ Π°ΠΊΠΎ ΠΈΠΌΠ° ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΈ Π²Π΅ΡΠ΅ ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΎ ΠΏΡΠ΅ΡΠΌΠ΅ΡΠ°Π½ΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ, Π½ΠΎ ΠΌΠ½ΠΎΠ³Ρ ΠΏΡΠ°ΡΠ°ΡΠ° Π½Π΅ ΡΠ΅ΠΊΠΎΠ³Π°Ρ Π³ΠΈ ΠΊΠΎΡΠΈΡΡΠ°Ρ, ΡΡΠΊΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π³ΠΈ ΠΏΡΠ΅ΡΠΌΠ΅ΡΡΠ²Π°Π°Ρ.
ΠΡΠΎΡΠΎ, ΡΠΈΠ΅ ΠΈΠΌΠ°Π°Ρ ΠΎΠ³ΡΠΎΠΌΠ΅Π½ Π±ΡΠΎΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ°:
Oracle
5.3.8.4 ΠΠΏΡΡΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ° Π·Π° Π±ΡΠ·ΠΎ ΠΎΡΠ²Π΅ΠΆΡΠ²Π°ΡΠ΅
ΠΠ΅ΡΠΈΠ½ΠΈΡΠΈΠ²Π½ΠΎΡΠΎ Π±Π°ΡΠ°ΡΠ΅ Π½Π° ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈΠΎΡ ΠΏΠΎΠ³Π»Π΅Π΄ Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ Π½Π° ΡΠ»Π΅Π΄Π½ΠΈΠΎΠ² Π½Π°ΡΠΈΠ½:
- ΠΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈΠΎΡ ΠΏΡΠΈΠΊΠ°Π· Π½Π΅ ΡΠΌΠ΅Π΅ Π΄Π° ΡΠΎΠ΄ΡΠΆΠΈ ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΈ Π·Π° ΠΈΠ·ΡΠ°Π·ΠΈ ΡΡΠΎ Π½Π΅ ΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΡΠ²Π°Π°Ρ ΠΊΠ°ΠΊΠΎ
SYSDATE
ROWNUM
.- ΠΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈΠΎΡ ΠΏΠΎΠ³Π»Π΅Π΄ Π½Π΅ ΡΠΌΠ΅Π΅ Π΄Π° ΡΠΎΠ΄ΡΠΆΠΈ ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΈ Π·Π°
RAW
orLONG
RAW
ΡΠΈΠΏΠΎΠ²ΠΈ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ.- ΠΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠΎΠ΄ΡΠΆΠΈ Π°
SELECT
Π»ΠΈΡΡΠ° ΠΏΠΎΠ΄ΠΏΡΠ°ΡΠ°ΡΠ΅.- ΠΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠΎΠ΄ΡΠΆΠΈ Π°Π½Π°Π»ΠΈΡΠΈΡΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ (Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ,
RANK
) Π²ΠΎSELECT
ΠΊΠ»Π°ΡΠ·ΡΠ»Π°.- ΠΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠΏΠ°ΡΡΠ²Π° Π½Π° ΡΠ°Π±Π΅Π»Π° Π½Π° ΠΊΠΎΡΠ°
XMLIndex
ΡΠ΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ° ΠΈΠ½Π΄Π΅ΠΊΡ.- ΠΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠΎΠ΄ΡΠΆΠΈ Π°
MODEL
ΠΊΠ»Π°ΡΠ·ΡΠ»Π°.- ΠΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠΎΠ΄ΡΠΆΠΈ Π°
HAVING
ΠΊΠ»Π°ΡΠ·ΡΠ»Π° ΡΠΎ ΠΏΠΎΠ΄ΠΏΡΠ°ΡΠ°ΡΠ΅.- ΠΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠΎΠ΄ΡΠΆΠΈ Π²Π³Π½Π΅Π·Π΄Π΅Π½ΠΈ ΠΏΡΠ°ΡΠ°ΡΠ° ΡΡΠΎ ΠΈΠΌΠ°Π°Ρ
ANY
,ALL
ΠΈΠ»ΠΈNOT
EXISTS
.- ΠΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠΎΠ΄ΡΠΆΠΈ Π°
[START WITH β¦] CONNECT BY
ΠΊΠ»Π°ΡΠ·ΡΠ»Π°.- ΠΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠΎΠ΄ΡΠΆΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ°Π±Π΅Π»ΠΈ ΡΠΎ Π΄Π΅ΡΠ°Π»ΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π»ΠΎΠΊΠ°ΡΠΈΠΈ.
ON
COMMIT
ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΏΠΎΠ³Π»Π΅Π΄ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΠΈΠΌΠ°Π°Ρ ΡΠ°Π±Π΅Π»ΠΈ ΡΠΎ Π΄Π°Π»Π΅ΡΠΈΠ½ΡΠΊΠΈ Π΄Π΅ΡΠ°Π»ΠΈ.- ΠΠ³Π½Π΅Π·Π΄Π΅Π½ΠΈΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄ΠΈ ΠΌΠΎΡΠ° Π΄Π° ΠΈΠΌΠ°Π°Ρ ΡΠΏΠΎΡ ΠΈΠ»ΠΈ Π°Π³ΡΠ΅Π³Π°Ρ.
- ΠΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π·Π΄ΡΡΠΆΠ΅Π½ΠΈ ΡΡΠ°Π²ΠΎΠ²ΠΈ ΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π·Π±ΠΈΡΠ½ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄ΠΈ ΡΠΎ Π°
GROUP
BY
ΠΊΠ»Π°ΡΠ·ΡΠ»Π°ΡΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ ΠΎΠ΄ ΡΠ°Π±Π΅Π»Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π° ΡΠΎ ΠΈΠ½Π΄Π΅ΠΊΡ.5.3.8.5 ΠΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ° Π·Π° Π±ΡΠ·ΠΎ ΠΎΡΠ²Π΅ΠΆΡΠ²Π°ΡΠ΅ Π½Π° ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄ΠΈ ΡΠ°ΠΌΠΎ ΡΠΎ ΡΠΏΠΎΡΡΠ²Π°ΡΠ°
ΠΠ΅ΡΠΈΠ½ΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° Π±Π°ΡΠ°ΡΠ° Π·Π° ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΏΡΠΈΠΊΠ°Π·ΠΈ ΡΠ°ΠΌΠΎ ΡΠΎ ΡΠΏΠΎΡΡΠ²Π°ΡΠ° ΠΈ Π±Π΅Π· Π°Π³ΡΠ΅Π³Π°ΡΠΈ Π³ΠΈ ΠΈΠΌΠ° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ° Π·Π° Π±ΡΠ·ΠΎ ΠΎΡΠ²Π΅ΠΆΡΠ²Π°ΡΠ΅:
- Π‘ΠΈΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ° ΠΎΠ΄ Β«
ΠΠΏΡΡΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ° Π·Π° Π±ΡΠ·ΠΎ ΠΎΡΠ²Π΅ΠΆΡΠ²Π°ΡΠ΅ ".- Π’ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΠΈΠΌΠ°Π°Ρ
GROUP
BY
ΠΊΠ»Π°ΡΠ·ΡΠ»ΠΈ ΠΈΠ»ΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠΈ.- Π Π΅Π΄ΠΎΠ²ΠΈ ΠΎΠ΄ ΡΠΈΡΠ΅ ΡΠ°Π±Π΅Π»ΠΈ Π²ΠΎ
FROM
ΡΠΏΠΈΡΠΎΠΊΠΎΡ ΠΌΠΎΡΠ° Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ°Π²ΠΈ Π²ΠΎSELECT
ΡΠΏΠΈΡΠΎΠΊ Π½Π° Π±Π°ΡΠ°ΡΠ΅ΡΠΎ.- ΠΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈΡΠ΅ Π΄Π½Π΅Π²Π½ΠΈΡΠΈ Π·Π° ΠΏΡΠΈΠΊΠ°Π· ΠΌΠΎΡΠ° Π΄Π° ΠΏΠΎΡΡΠΎΡΠ°Ρ ΡΠΎ ΡΠ΅Π΄ΠΎΠ²ΠΈ Π·Π° ΡΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΡΠ°Π±Π΅Π»ΠΈ Π²ΠΎ
FROM
ΡΠΏΠΈΡΠΎΠΊ Π½Π° Π±Π°ΡΠ°ΡΠ΅ΡΠΎ.- ΠΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΏΡΠΈΠΊΠ°Π· ΡΠΎ Π±ΡΠ·ΠΎ ΠΎΡΠ²Π΅ΠΆΡΠ²Π°ΡΠ΅ ΠΎΠ΄ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ°Π±Π΅Π»ΠΈ ΡΠΎ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΈ ΡΠΏΠΎΡΡΠ²Π°ΡΠ° ΠΊΠΎΠΈ Π²ΠΊΠ»ΡΡΡΠ²Π°Π°Ρ ΠΊΠΎΠ»ΠΎΠ½Π° ΠΎΠ΄ ΡΠΈΠΏ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ Π²ΠΎ
SELECT
ΠΈΠ·ΡΠ°Π²Π°.ΠΡΡΠΎ ΡΠ°ΠΊΠ°, ΠΌΠ΅ΡΠΎΠ΄ΠΎΡ Π½Π° ΠΎΡΠ²Π΅ΠΆΡΠ²Π°ΡΠ΅ ΡΡΠΎ ΡΠ΅ Π³ΠΎ ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ Π½Π΅ΠΌΠ° Π΄Π° Π±ΠΈΠ΄Π΅ ΠΎΠΏΡΠΈΠΌΠ°Π»Π½ΠΎ Π΅ΡΠΈΠΊΠ°ΡΠ΅Π½ Π°ΠΊΠΎ:
- ΠΠ΅ΡΠΈΠ½ΠΈΡΠΈΠ²Π½ΠΎΡΠΎ Π±Π°ΡΠ°ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ΅Π½ ΡΠΏΠΎΡ ΠΊΠΎΡ ΡΠ΅ ΠΎΠ΄Π½Π΅ΡΡΠ²Π° ΠΊΠ°ΠΊΠΎ Π²Π½Π°ΡΡΠ΅ΡΠ΅Π½ ΡΠΏΠΎΡ. ΠΠΊΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°ΡΠΊΠΎΡΠΎ Π±Π°ΡΠ°ΡΠ΅ ΡΠΎΠ΄ΡΠΆΠΈ ΡΠ°ΠΊΠ²ΠΎ ΡΠΏΠΎΡΡΠ²Π°ΡΠ΅, ΡΠ°Π·ΠΌΠΈΡΠ»Π΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΏΡΠ΅ΠΏΠΈΡΠ΅ΡΠ΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°ΡΠΊΠΎΡΠΎ Π±Π°ΡΠ°ΡΠ΅ Π·Π° Π΄Π° ΡΠΎΠ΄ΡΠΆΠΈ Π²Π½Π°ΡΡΠ΅ΡΠ΅Π½ ΡΠΏΠΎΡ.
- Π½Π°
SELECT
ΡΠΏΠΈΡΠΎΠΊΠΎΡ Π½Π° ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈΠΎΡ ΠΏΡΠΈΠΊΠ°Π· ΡΠΎΠ΄ΡΠΆΠΈ ΠΈΠ·ΡΠ°Π·ΠΈ Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΠΎΠ΄ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ°Π±Π΅Π»ΠΈ.5.3.8.6 ΠΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ° Π·Π° Π±ΡΠ·ΠΎ ΠΎΡΠ²Π΅ΠΆΡΠ²Π°ΡΠ΅ Π½Π° ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄ΠΈ ΡΠΎ Π°Π³ΡΠ΅Π³Π°ΡΠΈ
ΠΠ΅ΡΠΈΠ½ΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° Π±Π°ΡΠ°ΡΠ° Π·Π° ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΏΡΠΈΠΊΠ°Π·ΠΈ ΡΠΎ Π°Π³ΡΠ΅Π³Π°ΡΠΈ ΠΈΠ»ΠΈ ΡΠΏΠΎΡΡΠ²Π°ΡΠ° Π³ΠΈ ΠΈΠΌΠ°Π°Ρ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ° Π·Π° Π±ΡΠ·ΠΎ ΠΎΡΠ²Π΅ΠΆΡΠ²Π°ΡΠ΅:
- Π‘ΠΈΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ° ΠΎΠ΄ Β«
ΠΠΏΡΡΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ° Π·Π° Π±ΡΠ·ΠΎ ΠΎΡΠ²Π΅ΠΆΡΠ²Π°ΡΠ΅ ".ΠΡΠ·ΠΎ ΠΎΡΠ²Π΅ΠΆΡΠ²Π°ΡΠ΅ Π΅ ΠΏΠΎΠ΄Π΄ΡΠΆΠ°Π½ΠΎ ΠΈ Π·Π° Π΄Π²Π΅ΡΠ΅
ON
COMMIT
ON
DEMAND
ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΡΠ°Π²ΠΎΠ²ΠΈ, Π½ΠΎ ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ²Π°Π°Ρ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ°:
- Π‘ΠΈΡΠ΅ ΡΠ°Π±Π΅Π»ΠΈ Π²ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈΠΎΡ ΠΏΡΠΈΠΊΠ°Π· ΠΌΠΎΡΠ° Π΄Π° ΠΈΠΌΠ°Π°Ρ ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π΄Π½Π΅Π²Π½ΠΈΡΠΈ Π·Π° ΠΏΡΠΈΠΊΠ°Π·, Π° ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈΡΠ΅ Π΄Π½Π΅Π²Π½ΠΈΡΠΈ Π·Π° ΠΏΡΠΈΠΊΠ°Π· ΠΌΠΎΡΠ°:
- ΠΠΈ ΡΠΎΠ΄ΡΠΆΠΈ ΡΠΈΡΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΠΎΠ΄ ΡΠ°Π±Π΅Π»Π°ΡΠ° Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ Π²ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈΠΎΡ ΠΏΡΠΈΠΊΠ°Π·.
- ΠΠ°Π²Π΅Π΄Π΅ΡΠ΅ ΡΠΎ
ROWID
INCLUDING
NEW
VALUES
.- ΠΠ΄ΡΠ΅Π΄Π΅ΡΠ΅ Π³ΠΎ
SEQUENCE
ΠΊΠ»Π°ΡΠ·ΡΠ»Π° Π°ΠΊΠΎ ΡΠ΅ ΠΎΡΠ΅ΠΊΡΠ²Π° ΡΠ°Π±Π΅Π»Π°ΡΠ° Π΄Π° ΠΈΠΌΠ° ΠΌΠ΅ΡΠ°Π²ΠΈΠ½Π° ΠΎΠ΄ Π²ΠΌΠ΅ΡΠ½ΡΠ²Π°ΡΠ°/Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΈ Π²ΡΠΈΡΡΠ²Π°ΡΠ°, Π±ΡΠΈΡΠ΅ΡΠ° ΠΈ Π°ΠΆΡΡΠΈΡΠ°ΡΠ°.
- Π‘Π°ΠΌΠΎ
SUM
,COUNT
,AVG
,STDDEV
,VARIANCE
,MIN
MAX
ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΠΆΠ°Π½ΠΈ Π·Π° Π±ΡΠ·ΠΎ ΠΎΡΠ²Π΅ΠΆΡΠ²Π°ΡΠ΅.COUNT(*)
ΠΌΠΎΡΠ° Π΄Π° ΡΠ΅ Π½Π°Π²Π΅Π΄Π΅.- ΠΠ³ΡΠ΅Π³Π°ΡΠ½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΡΠ° Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ°Π²ΡΠ²Π°Π°Ρ ΡΠ°ΠΌΠΎ ΠΊΠ°ΠΊΠΎ Π½Π°ΡΠΎΠ΄Π΄Π°Π»Π΅ΡΠ΅Π½ Π΄Π΅Π» ΠΎΠ΄ ΠΈΠ·ΡΠ°Π·ΠΎΡ. ΠΠ΄Π½ΠΎΡΠ½ΠΎ, Π°Π³ΡΠ΅Π³Π°ΡΠΈ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅
AVG(AVG(x))
orAVG(x)
+AVG(x)
Π½Π΅ ΡΠ΅ Π΄ΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΈ.- ΠΠ° ΡΠ΅ΠΊΠΎΡ Π°Π³ΡΠ΅Π³Π°Ρ ΠΊΠ°ΠΊΠΎ Π½Π° ΠΏΡ
AVG(expr)
, ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΈΡΠ΅COUNT(expr)
ΠΌΠΎΡΠ° Π΄Π° Π±ΠΈΠ΄Π°Ρ ΠΏΡΠΈΡΡΡΠ½ΠΈ. Oracle Π³ΠΎ ΠΏΡΠ΅ΠΏΠΎΡΠ°ΡΡΠ²Π° ΡΠΎΠ°SUM(expr)
Π΄Π° Π±ΠΈΠ΄Π°Ρ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ.- If
VARIANCE(expr)
orSTDDEV(expr
) Π΅ Π½Π°Π²Π΅Π΄Π΅Π½ΠΎ,COUNT(expr)
SUM(expr)
ΠΌΠΎΡΠ° Π΄Π° ΡΠ΅ Π½Π°Π²Π΅Π΄Π΅. Oracle Π³ΠΎ ΠΏΡΠ΅ΠΏΠΎΡΠ°ΡΡΠ²Π° ΡΠΎΠ°SUM(expr *expr)
Π΄Π° Π±ΠΈΠ΄Π°Ρ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ.- Π½Π°
SELECT
ΠΊΠΎΠ»ΠΎΠ½Π°ΡΠ° Π²ΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°ΡΠΊΠΎΡΠΎ Π±Π°ΡΠ°ΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ ΡΠ»ΠΎΠΆΠ΅Π½ ΠΈΠ·ΡΠ°Π· ΡΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΠΎΠ΄ ΠΏΠΎΠ²Π΅ΡΠ΅ Π±Π°Π·Π½ΠΈ ΡΠ°Π±Π΅Π»ΠΈ. ΠΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΠΎΠ²Π° Π΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π²Π³Π½Π΅Π·Π΄Π΅Π½ ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΏΠΎΠ³Π»Π΅Π΄.- Π½Π°
SELECT
ΡΠΏΠΈΡΠΎΠΊΠΎΡ ΠΌΠΎΡΠ° Π΄Π° Π³ΠΈ ΡΠΎΠ΄ΡΠΆΠΈ ΡΠΈΡΠ΅GROUP
BY
ΠΊΠΎΠ»ΠΎΠ½ΠΈ.- ΠΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈΠΎΡ ΠΏΡΠΈΠΊΠ°Π· Π½Π΅ ΡΠ΅ Π·Π°ΡΠ½ΠΎΠ²Π° Π½Π° Π΅Π΄Π½Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΠ΄Π΄Π°Π»Π΅ΡΠ΅Π½ΠΈ ΡΠ°Π±Π΅Π»ΠΈ.
- ΠΠΊΠΎ ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅
CHAR
ΡΠΈΠΏΠΎΡ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π²ΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΈΡΠ΅ Π·Π° ΡΠΈΠ»ΡΡΠΈΡΠ°ΡΠ΅ Π½Π° Π΄Π½Π΅Π²Π½ΠΈΠΊΠΎΡ Π·Π° ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΏΡΠ΅Π³Π»Π΅Π΄, ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΡΠ° Π½Π° Π·Π½Π°ΡΠΈ Π½Π° Π³Π»Π°Π²Π½ΠΈΠΎΡ ΡΠ°ΡΡ ΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈΠΎΡ ΠΏΡΠΈΠΊΠ°Π· ΠΌΠΎΡΠ° Π΄Π° Π±ΠΈΠ΄Π°Ρ ΠΈΡΡΠΈ.- ΠΠΊΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈΠΎΡ ΠΏΡΠΈΠΊΠ°Π· ΠΈΠΌΠ° Π΅Π΄Π½ΠΎ ΠΎΠ΄ ΡΠ»Π΅Π΄Π½ΠΈΠ²Π΅, ΡΠΎΠ³Π°Ρ Π±ΡΠ·ΠΎΡΠΎ ΠΎΡΠ²Π΅ΠΆΡΠ²Π°ΡΠ΅ Π΅ ΠΏΠΎΠ΄Π΄ΡΠΆΠ°Π½ΠΎ ΡΠ°ΠΌΠΎ Π½Π° ΠΊΠΎΠ½Π²Π΅Π½ΡΠΈΠΎΠ½Π°Π»Π½ΠΈΡΠ΅ DML ΠΈΠ½ΡΠ΅ΡΡΠΈ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΈ Π²ΡΠΈΡΡΠ²Π°ΡΠ°.
- ΠΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΡΠ°Π²ΠΎΠ²ΠΈ ΡΠΎ
MIN
orMAX
Π°Π³ΡΠ΅Π³Π°ΡΠΈ- ΠΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΡΠ°Π²ΠΎΠ²ΠΈ ΠΊΠΎΠΈ ΠΈΠΌΠ°Π°Ρ
SUM(expr)
Π½ΠΎ Π½Π΅COUNT(expr)
- ΠΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΡΠ°Π²ΠΎΠ²ΠΈ Π±Π΅Π·
COUNT(*)
ΠΠ°ΠΊΠ²ΠΈΠΎΡ ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΏΠΎΠ³Π»Π΅Π΄ ΡΠ΅ Π½Π°ΡΠ΅ΠΊΡΠ²Π° ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΏΠΎΠ³Π»Π΅Π΄ ΡΠ°ΠΌΠΎ Π·Π° Π²ΠΌΠ΅ΡΠ½ΡΠ²Π°ΡΠ΅.
- ΠΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΏΠΎΠ³Π»Π΅Π΄ ΡΠΎ
MAX
orMIN
Π±ΡΠ·ΠΎ ΡΠ΅ ΠΎΡΠ²Π΅ΠΆΡΠ²Π° ΠΏΠΎ Π±ΡΠΈΡΠ΅ΡΠ΅ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅ΡΠ°Π½ΠΈ DML ΠΈΠ·ΡΠ°Π²ΠΈ Π°ΠΊΠΎ Π½Π΅ΠΌΠ° aWHERE
ΠΊΠ»Π°ΡΠ·ΡΠ»Π°.
ΠΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΎΡΠΎ/ΠΌΠΈΠ½ΡΡΠ½ΠΎ Π±ΡΠ·ΠΎ ΠΎΡΠ²Π΅ΠΆΡΠ²Π°ΡΠ΅ ΠΏΠΎ Π±ΡΠΈΡΠ΅ΡΠ΅ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅ΡΠ°Π½ΠΎ DML Π³ΠΎ Π½Π΅ΠΌΠ° ΠΈΡΡΠΎΡΠΎ ΠΎΠ΄Π½Π΅ΡΡΠ²Π°ΡΠ΅ ΠΊΠ°ΠΊΠΎ ΡΠ»ΡΡΠ°ΡΠΎΡ ΡΠ°ΠΌΠΎ Π·Π° Π²ΠΌΠ΅ΡΠ½ΡΠ²Π°ΡΠ΅. ΠΠΈ Π±ΡΠΈΡΠ΅ ΠΈ ΠΏΡΠ΅ΡΠΌΠ΅ΡΡΠ²Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΈΡΠ΅/ΠΌΠΈΠ½. Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ Π·Π° ΠΏΠΎΠ³ΠΎΠ΄Π΅Π½ΠΈΡΠ΅ Π³ΡΡΠΏΠΈ. Π’ΡΠ΅Π±Π° Π΄Π° Π±ΠΈΠ΄Π΅ΡΠ΅ ΡΠ²Π΅ΡΠ½ΠΈ Π·Π° Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ Π²Π»ΠΈΡΠ°Π½ΠΈΠ΅ Π²ΡΠ· ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅.- ΠΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄ΠΈ ΡΠΎ ΠΈΠΌΠ΅Π½ΡΠ²Π°Π½ΠΈ ΡΡΠ°Π²ΠΎΠ²ΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΏΡΠ°ΡΠ°ΡΠ° Π²ΠΎ
FROM
ΠΊΠ»Π°ΡΠ·ΡΠ»Π°ΡΠ° ΠΌΠΎΠΆΠ΅ Π±ΡΠ·ΠΎ Π΄Π° ΡΠ΅ ΠΎΡΠ²Π΅ΠΆΠΈ ΠΏΠΎΠ΄ ΡΡΠ»ΠΎΠ² ΠΏΠΎΠ³Π»Π΅Π΄ΠΈΡΠ΅ ΡΠ΅Π»ΠΎΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΡΠΏΠΎΡΠ°Ρ. ΠΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π° ΡΠΎΠ° ΠΊΠΎΠΈ ΠΏΠΎΠ³Π»Π΅Π΄ΠΈ ΡΠ΅ ΡΠ΅ ΡΠΏΠΎΡΠ°Ρ, Π²ΠΈΠ΄Π΅ΡΠ΅Π Π΅ΡΠ΅ΡΠ΅Π½ΡΠ° Π·Π° ΡΠ°Π·ΠΈΠΊ Π½Π° Oracle Database SQL .- ΠΠΊΠΎ Π½Π΅ΠΌΠ° Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ½ΠΈ ΡΠΏΠΎΡΡΠ²Π°ΡΠ°, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ°ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ ΡΠ΅Π»Π΅ΠΊΡΠΈΠΈ ΠΈ ΡΠΏΠΎΡΡΠ²Π°ΡΠ° Π²ΠΎ
WHERE
ΠΊΠ»Π°ΡΠ·ΡΠ»Π°.- ΠΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈΡΠ΅ Π·Π±ΠΈΡΠ½ΠΈ ΠΏΡΠΈΠΊΠ°Π·ΠΈ ΡΠΎ Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ½ΠΈ ΡΠΏΠΎΡΠ½ΠΈΡΠΈ Π±ΡΠ·ΠΎ ΡΠ΅ ΠΎΡΠ²Π΅ΠΆΡΠ²Π°Π°Ρ ΠΏΠΎ ΠΊΠΎΠ½Π²Π΅Π½ΡΠΈΠΎΠ½Π°Π»Π½ΠΈΡΠ΅ DML ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΈ ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ°, ΠΏΠΎΠ΄ ΡΡΠ»ΠΎΠ² ΡΠ°ΠΌΠΎ Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ½Π°ΡΠ° ΡΠ°Π±Π΅Π»Π° Π΄Π° Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅ΡΠ°. ΠΡΡΠΎ ΡΠ°ΠΊΠ°, ΠΌΠΎΡΠ° Π΄Π° ΠΏΠΎΡΡΠΎΡΠ°Ρ ΡΠ½ΠΈΠΊΠ°ΡΠ½ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ° Π½Π° ΡΠΏΠΎΡΠ½ΠΈΡΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ Π½Π° ΡΠ°Π±Π΅Π»Π°ΡΠ° Π·Π° Π²Π½Π°ΡΡΠ΅ΡΠ½ΠΎ ΡΠΏΠΎΡΡΠ²Π°ΡΠ΅. ΠΠΊΠΎ ΠΈΠΌΠ° Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ½ΠΈ ΡΠΏΠΎΡΠΊΠΈ, ΡΠΈΡΠ΅ ΡΠΏΠΎΡΠΊΠΈ ΠΌΠΎΡΠ° Π΄Π° Π±ΠΈΠ΄Π°Ρ ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΈ ΡΠΎ
AND
ΠΈ ΠΌΠΎΡΠ° Π΄Π° ΡΠ° ΠΊΠΎΡΠΈΡΡΠΈ Π΅Π΄Π½Π°ΠΊΠ²ΠΎΡΡΠ° (=
) ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ.- ΠΠ° ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΡΠ°Π²ΠΎΠ²ΠΈ ΡΠΎ
CUBE
,ROLLUP
, Π³ΡΡΠΏΠΈΡΠ°ΡΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΈΠ»ΠΈ Π½ΠΈΠ²Π½ΠΎ ΡΠΏΠΎΡΡΠ²Π°ΡΠ΅, ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ²Π°Π°Ρ ΡΠ»Π΅Π΄Π½ΠΈΠ²Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ°:
- Π½Π°
SELECT
ΡΠΏΠΈΡΠΎΠΊΠΎΡ ΡΡΠ΅Π±Π° Π΄Π° ΡΠΎΠ΄ΡΠΆΠΈ ΡΠ°Π·Π³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ΅ Π·Π° Π³ΡΡΠΏΠΈΡΠ°ΡΠ΅ ΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ ΠΈΠ»ΠΈ aGROUPING_ID
ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°Π°Ρ Π½Π° ΡΠΈΡΠ΅GROUP
BY
ΠΈΠ·ΡΠ°Π·ΠΈ ΠΈΠ»ΠΈGROUPING
ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎ Π΅Π΄Π½Π° Π·Π° ΡΠ΅ΠΊΠΎΡGROUP
BY
ΠΈΠ·ΡΠ°Π·ΡΠ²Π°ΡΠ΅. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ Π½Π°GROUP
BY
ΠΊΠ»Π°ΡΠ·ΡΠ»Π° ΠΎΠ΄ ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈΠΎΡ ΡΡΠ°Π² Π΅ βGROUP
BY
CUBE(a, b)
β, ΠΏΠΎΡΠΎΠ° Π½Π°SELECT
ΡΠΏΠΈΡΠΎΠΊΠΎΡ ΡΡΠ΅Π±Π° Π΄Π° ΡΠΎΠ΄ΡΠΆΠΈ ΠΈΠ»ΠΈ βGROUPING_ID(a, b)
Β» ΠΈΠ»ΠΈ Β«GROUPING(a)
AND
GROUPING(b)
Β» Π·Π° ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈΠΎΡ ΠΏΠΎΠ³Π»Π΅Π΄ Π±ΡΠ·ΠΎ Π΄Π° ΡΠ΅ ΠΎΡΠ²Π΅ΠΆΡΠ²Π°.GROUP
BY
Π½Π΅ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅Π·ΡΠ»ΡΠΈΡΠ° ΡΠΎ Π΄ΡΠΏΠ»ΠΈΠΊΠ°Ρ Π³ΡΡΠΏΠΈΡΠ°ΡΠ°. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, "GROUP BY a, ROLLUP(a, b)
βΠΠ΅ ΡΠ΅ ΠΎΡΠ²Π΅ΠΆΡΠ²Π° Π±ΡΠ·ΠΎ Π±ΠΈΠ΄Π΅ΡΡΠΈ ΡΠ΅Π·ΡΠ»ΡΠΈΡΠ° ΡΠΎ Π΄ΡΠΏΠ»ΠΈΠΊΠ°Ρ Π³ΡΡΠΏΠΈΡΠ°ΡΠ°β(a), (a, b), AND (a)
".5.3.8.7 ΠΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ° Π·Π° Π±ΡΠ·ΠΎ ΠΎΡΠ²Π΅ΠΆΡΠ²Π°ΡΠ΅ Π½Π° ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄ΠΈ ΡΠΎ UNION ALL
ΠΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΡΠ°Π²ΠΎΠ²ΠΈ ΡΠΎ
UNION
ALL
Π²ΠΎ ΡΠΎΠ±Π°ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π½Π°REFRESH
FAST
ΠΎΠΏΡΠΈΡΠ° Π΄ΠΎΠΊΠΎΠ»ΠΊΡ ΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½Π΅ΡΠΈ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈ:
- ΠΠ΅ΡΠΈΠ½ΠΈΡΠΈΠ²Π½ΠΎΡΠΎ Π±Π°ΡΠ°ΡΠ΅ ΠΌΠΎΡΠ° Π΄Π° Π³ΠΎ ΠΈΠΌΠ°
UNION
ALL
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π½Π° Π½Π°ΡΠ²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ.Π½Π°
UNION
ALL
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ Π²Π³ΡΠ°Π΄Π΅Π½ Π²ΠΎ ΠΏΠΎΠ΄ΠΏΡΠ°ΡΠ°ΡΠ΅, ΡΠΎ Π΅Π΄Π΅Π½ ΠΈΡΠΊΠ»ΡΡΠΎΠΊ: TheUNION
ALL
ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ Π²ΠΎ ΠΏΠΎΠ΄ΠΏΡΠ°ΡΠ°ΡΠ΅ Π²ΠΎFROM
ΠΊΠ»Π°ΡΠ·ΡΠ»Π° ΠΏΠΎΠ΄ ΡΡΠ»ΠΎΠ² Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°ΡΠΊΠΎΡΠΎ Π±Π°ΡΠ°ΡΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ Π²ΠΎ ΡΠΎΡΠΌΠ°SELECT * FROM
(ΠΏΡΠ΅Π³Π»Π΅Π΄ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΏΡΠ°ΡΠ°ΡΠ΅ ΡΠΎUNION
ALL
) ΠΊΠ°ΠΊΠΎ Π²ΠΎ ΡΠ»Π΅Π΄Π½ΠΈΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ:ΠΠ ΠΠΠ ΠΠ ΠΠΠΠΠΠ view_with_unionall AS (ΠΠΠΠΠ ΠΠ’Π c.rowid crid, c.cust_id, 2 umarker ΠΠ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ Π² ΠΠΠΠ c.cust_last_name = 'Π‘ΠΌΠΈΡ' Π£ΠΠΠΠ Π‘ΠΠ’Π SELECT c.rowid crid, c.cust_id, 3 umarker ΠΠ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ Π² ΠΠΠΠ c.cust_last_name = 'ΠΠΎΠ½Ρ'); Π‘ΠΠΠΠΠΠΠ’Π ΠΠΠ’ΠΠ ΠΠΠΠΠΠΠΠ ΠΠ ΠΠΠΠΠΠ unionall_inside_view_mv ΠΠ‘ΠΠΠΠ£ΠΠΠ ΠΠ ΠΠ ΠΠ ΠΠΠ ΠΠΠ ΠΠΠΠ ΠΠΠΠΠ Π * ΠΠ ΠΏΠΎΠ³Π»Π΅Π΄_ΡΠΎ_ΡΠ½ΠΈΠΎΠ½-ΡΠΈΡΠ΅;ΠΠ°Π±Π΅Π»Π΅ΠΆΠ΅ΡΠ΅ Π΄Π΅ΠΊΠ° ΠΏΠΎΠ³Π»Π΅Π΄ΠΎΡ
view_with_unionall
Π³ΠΈ Π·Π°Π΄ΠΎΠ²ΠΎΠ»ΡΠ²Π° Π±Π°ΡΠ°ΡΠ°ΡΠ° Π·Π° Π±ΡΠ·ΠΎ ΠΎΡΠ²Π΅ΠΆΡΠ²Π°ΡΠ΅.- Π‘Π΅ΠΊΠΎΡ Π±Π»ΠΎΠΊ Π·Π° ΠΏΡΠ΅Π±Π°ΡΡΠ²Π°ΡΠ΅ Π²ΠΎ
UNION
ALL
Π±Π°ΡΠ°ΡΠ΅ΡΠΎ ΠΌΠΎΡΠ° Π΄Π° Π³ΠΈ Π·Π°Π΄ΠΎΠ²ΠΎΠ»ΠΈ Π±Π°ΡΠ°ΡΠ°ΡΠ° Π·Π° Π±ΡΠ·ΠΎ ΠΎΡΠ²Π΅ΠΆΡΠ²Π°ΡΠΊΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΏΡΠΈΠΊΠ°Π· ΡΠΎ Π°Π³ΡΠ΅Π³Π°ΡΠΈ ΠΈΠ»ΠΈ Π±ΡΠ·ΠΎ ΠΎΡΠ²Π΅ΠΆΡΠ²Π°ΡΠΊΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΏΡΠΈΠΊΠ°Π· ΡΠΎ ΡΠΏΠΎΡΠ½ΠΈΡΠΈ.Π‘ΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΈΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π΄Π½Π΅Π²Π½ΠΈΡΠΈ Π·Π° ΠΏΡΠ΅Π³Π»Π΅Π΄ ΠΌΠΎΡΠ° Π΄Π° ΡΠ΅ ΠΊΡΠ΅ΠΈΡΠ°Π°Ρ Π½Π° ΡΠ°Π±Π΅Π»ΠΈΡΠ΅ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ Π±Π°ΡΠ° Π·Π° ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΈΠΎΡ ΡΠΈΠΏ Π½Π° ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΏΡΠΈΠΊΠ°Π· ΡΠΎ Π±ΡΠ·ΠΎ ΠΎΡΠ²Π΅ΠΆΡΠ²Π°ΡΠ΅.
ΠΠΌΠ°ΡΡΠ΅ Π½Π° ΡΠΌ Π΄Π΅ΠΊΠ° Oracle Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ, ΠΈΡΡΠΎ ΡΠ°ΠΊΠ°, Π΄ΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΠΎΡΠ΅Π±Π΅Π½ ΡΠ»ΡΡΠ°Ρ Π½Π° Π΅Π΄Π½Π° ΡΠ°Π±Π΅Π»Π° ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΏΠΎΠ³Π»Π΅Π΄ ΡΠΎ ΡΠΏΠΎΡΡΠ²Π°ΡΠ° ΡΠ°ΠΌΠΎ ΠΏΠΎΠ΄ ΡΡΠ»ΠΎΠ²ROWID
ΠΊΠΎΠ»ΠΎΠ½Π°ΡΠ° Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π²ΠΎSELECT
ΡΠΏΠΈΡΠΎΠΊ ΠΈ Π²ΠΎ Π΄Π½Π΅Π²Π½ΠΈΠΊΠΎΡ Π·Π° ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΏΠΎΠ³Π»Π΅Π΄. ΠΠ²Π° Π΅ ΠΏΡΠΈΠΊΠ°ΠΆΠ°Π½ΠΎ Π²ΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°ΡΠΊΠΎΡΠΎ Π±Π°ΡΠ°ΡΠ΅ Π½Π° ΠΏΡΠΈΠΊΠ°Π·ΠΎΡview_with_unionall
.- Π½Π°
SELECT
ΡΠΏΠΈΡΠΎΠΊΠΎΡ Π½Π° ΡΠ΅ΠΊΠΎΠ΅ Π±Π°ΡΠ°ΡΠ΅ ΠΌΠΎΡΠ° Π΄Π° ΡΠΎΠ΄ΡΠΆΠΈ aUNION
ALL
ΠΌΠ°ΡΠΊΠ΅Ρ, ΠΈUNION
ALL
ΠΊΠΎΠ»ΠΎΠ½Π°ΡΠ° ΠΌΠΎΡΠ° Π΄Π° ΠΈΠΌΠ° ΠΏΠΎΡΠ΅Π±Π½Π° ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½Π° Π½ΡΠΌΠ΅ΡΠΈΡΠΊΠ° ΠΈΠ»ΠΈ ΡΡΡΠΈΠ½Π³Π½Π° Π²ΡΠ΅Π΄Π½ΠΎΡΡ Π²ΠΎ ΡΠ΅ΠΊΠΎΡΠ° ΠΎΠ΄ Π½ΠΈΠ²UNION
ALL
Π³ΡΠ°Π½ΠΊΠ°. ΠΠΎΠ½Π°ΡΠ°ΠΌΡ, ΠΊΠΎΠ»ΠΎΠ½Π°ΡΠ° Π·Π° ΠΌΠ°ΡΠΊΠ΅Ρ ΠΌΠΎΡΠ° Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ°Π²ΠΈ Π²ΠΎ ΠΈΡΡΠ°ΡΠ° ΡΠ΅Π΄ΠΎΠ²Π½Π° ΠΏΠΎΠ»ΠΎΠΆΠ±Π° Π²ΠΎSELECT
Π»ΠΈΡΡΠ° Π½Π° ΡΠ΅ΠΊΠΎΡ Π±Π»ΠΎΠΊ Π·Π° ΠΏΡΠ°ΡΠ°ΡΠ°. ΠΠΈΠ΄ΠΈ "UNION ALL ΠΠ±Π΅Π»Π΅ΠΆΡΠ²Π°Ρ ΠΈ ΠΏΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΠ΅ Π½Π° Π±Π°ΡΠ°ΡΠ΅ΡΠΎ Β» Π·Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π²ΠΎ Π²ΡΡΠΊΠ° ΡΠΎUNION
ALL
ΠΌΠ°ΡΠΊΠ΅ΡΠΈ.- ΠΠ΅ΠΊΠΎΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ½ΠΈ ΡΠΏΠΎΡΡΠ²Π°ΡΠ°, Π±Π°ΡΠ°ΡΠ° Π·Π° Π·Π±ΠΈΡΠ΅Π½ ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΏΡΠ΅Π³Π»Π΅Π΄ ΡΠ°ΠΌΠΎ Π·Π° Π²ΠΌΠ΅ΡΠ½ΡΠ²Π°ΡΠ΅ ΠΈ ΠΎΠ΄Π΄Π°Π»Π΅ΡΠ΅Π½ΠΈ ΡΠ°Π±Π΅Π»ΠΈ Π½Π΅ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΠΆΠ°Π½ΠΈ Π·Π° ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΏΡΠΈΠΊΠ°Π·ΠΈ ΡΠΎ
UNION
ALL
. ΠΠ°Π±Π΅Π»Π΅ΠΆΠ΅ΡΠ΅, ΡΠ΅ΠΏΠ°ΠΊ, Π΄Π΅ΠΊΠ° ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΏΡΠΈΠΊΠ°Π·ΠΈ ΡΡΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ Π²ΠΎ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ°, ΠΊΠΎΠΈ Π½Π΅ ΡΠΎΠ΄ΡΠΆΠ°Ρ ΡΠΏΠΎΡΡΠ²Π°ΡΠ° ΠΈΠ»ΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠΈ, ΠΌΠΎΠΆΠ΅ Π±ΡΠ·ΠΎ Π΄Π° ΡΠ΅ ΠΎΡΠ²Π΅ΠΆΠ°Ρ ΠΊΠΎΠ³Π°UNION
ALL
ΠΈΠ»ΠΈ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ Π΄Π°Π»Π΅ΡΠΈΠ½ΡΠΊΠΈ ΡΠ°Π±Π΅Π»ΠΈ.- ΠΠ°ΡΠ°ΠΌΠ΅ΡΠ°ΡΠΎΡ Π·Π° ΠΈΠ½ΠΈΡΠΈΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΠ°ΡΠΈΠ±ΠΈΠ»Π½ΠΎΡΡΠ° ΠΌΠΎΡΠ° Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΈ Π½Π° 9.2.0 ΠΈΠ»ΠΈ ΠΏΠΎΠ²ΠΈΡΠΎΠΊΠΎ Π·Π° Π΄Π° ΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄Π΅ Π±ΡΠ·ΠΎ ΠΎΡΠ²Π΅ΠΆΡΠ²Π°ΡΠΊΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΏΡΠΈΠΊΠ°Π· ΡΠΎ
UNION
ALL
.
ΠΠ΅ ΡΠ°ΠΊΠ°ΠΌ Π΄Π° Π³ΠΈ Π½Π°Π²ΡΠ΅Π΄Π°ΠΌ ΠΎΠ±ΠΎΠΆΠ°Π²Π°ΡΠ΅Π»ΠΈΡΠ΅ Π½Π° Oracle, Π½ΠΎ ΡΡΠ΄Π΅ΡΡΠΈ ΡΠΏΠΎΡΠ΅Π΄ Π½ΠΈΠ²Π½Π°ΡΠ° Π»ΠΈΡΡΠ° Π½Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ°, ΡΠ΅ ΡΠΈΠ½ΠΈ Π΄Π΅ΠΊΠ° ΠΎΠ²ΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·Π°ΠΌ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π΅ Π²ΠΎ ΠΎΠΏΡΡΠΈΠΎΡ ΡΠ»ΡΡΠ°Ρ, ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π½Π΅ΠΊΠΎΡ Π²ΠΈΠ΄ ΠΌΠΎΠ΄Π΅Π», ΡΡΠΊΡ ΠΎΠ΄ ΠΈΠ»ΡΠ°Π΄Π½ΠΈΡΠΈ ΠΠ½Π΄ΠΈΡΡΠΈ, ΠΊΠ°Π΄Π΅ Π½Π° ΡΠΈΡΠ΅ ΠΈΠΌ Π±Π΅ΡΠ΅ Π΄Π°Π΄Π΅Π½Π° ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠ²ΠΎΡΠ° Π³ΡΠ°Π½ΠΊΠ° ΠΈ ΡΠ΅ΠΊΠΎΡ ΠΎΠ΄ Π½ΠΈΠ² Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈ Π½Π°ΠΏΡΠ°Π²ΠΈ. ΠΠΎΡΠΈΡΡΠ΅ΡΠ΅ΡΠΎ Π½Π° ΠΎΠ²ΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·Π°ΠΌ Π·Π° Π²ΠΈΡΡΠΈΠ½ΡΠΊΠ° Π»ΠΎΠ³ΠΈΠΊΠ° Π΅ ΠΊΠ°ΠΊΠΎ ΠΎΠ΄Π΅ΡΠ΅ Π½ΠΈΠ· ΠΌΠΈΠ½ΡΠΊΠΎ ΠΏΠΎΠ»Π΅. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄ΠΎΠ±ΠΈΠ΅ΡΠ΅ ΠΌΠΈΠ½Π° Π²ΠΎ ΡΠ΅ΠΊΠΎΠ΅ Π²ΡΠ΅ΠΌΠ΅ ΡΠΎ ΠΏΡΠΈΡΠΈΡΠΊΠ°ΡΠ΅ Π½Π° Π΅Π΄Π½ΠΎ ΠΎΠ΄ Π½Π΅ΠΎΡΠΈΠ³Π»Π΅Π΄Π½ΠΈΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ°. ΠΠ°ΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ° Π΅ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΠΎΡΠ΅Π±Π½ΠΎ ΠΏΡΠ°ΡΠ°ΡΠ΅, Π½ΠΎ ΡΠΎΠ° Π΅ Π½Π°Π΄Π²ΠΎΡ ΠΎΠ΄ ΠΎΠΏΡΠ΅Π³ΠΎΡ Π½Π° ΠΎΠ²ΠΎΡ Π½Π°ΠΏΠΈΡ.
Microsoft SQL Server,
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π±Π°ΡΠ°ΡΠ°
ΠΠΎΠΊΡΠ°Ρ ΠΎΠΏΡΠΈΠΈΡΠ΅ SET ΠΈ Π±Π°ΡΠ°ΡΠ°ΡΠ° Π·Π° Π΄Π΅ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΡΠΈΡΠΊΠ° ΡΡΠ½ΠΊΡΠΈΡΠ°, ΠΌΠΎΡΠ° Π΄Π° ΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½Π°Ρ ΠΈ ΡΠ»Π΅Π΄Π½ΠΈΠ²Π΅ Π±Π°ΡΠ°ΡΠ°:
- ΠΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ ΡΡΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°
CREATE INDEX
ΠΌΠΎΡΠ° Π΄Π° Π±ΠΈΠ΄Π΅ ΡΠΎΠΏΡΡΠ²Π΅Π½ΠΈΠΊ Π½Π° ΠΏΠΎΠ³Π»Π΅Π΄ΠΎΡ.- ΠΠΎΠ³Π° ΡΠ΅ Π³ΠΎ ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΡ, Π½Π°
IGNORE_DUP_KEY
ΠΎΠΏΡΠΈΡΠ°ΡΠ° ΠΌΠΎΡΠ° Π΄Π° Π±ΠΈΠ΄Π΅ ΠΏΠΎΡΡΠ°Π²Π΅Π½Π° Π½Π° OFF (ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½Π° ΠΏΠΎΡΡΠ°Π²ΠΊΠ°).- Π’Π°Π±Π΅Π»ΠΈΡΠ΅ ΠΌΠΎΡΠ° Π΄Π° Π±ΠΈΠ΄Π°Ρ ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΈΡΠ°Π½ΠΈ ΡΠΎ ΠΈΠΌΠΈΡΠ° ΠΎΠ΄ Π΄Π²Π° Π΄Π΅Π»Π°, Π¨Π΅ΠΌΠ°ΡΠ°.ΠΈΠΌΠ΅ Π½Π° ΠΌΠ°ΡΠ° Π²ΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΡΠ°ΡΠ° Π·Π° ΠΏΠΎΠ³Π»Π΅Π΄.
- Π€ΡΠ½ΠΊΡΠΈΠΈΡΠ΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΈ ΠΎΠ΄ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ Π²ΠΎ ΠΏΡΠΈΠΊΠ°Π·ΠΎΡ ΠΌΠΎΡΠ° Π΄Π° ΡΠ΅ ΠΊΡΠ΅ΠΈΡΠ°Π°Ρ ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π°
WITH SCHEMABINDING
ΠΎΠΏΡΠΈΡΠ°.- Π‘ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΈ ΠΎΠ΄ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ Π²ΠΎ ΠΏΡΠΈΠΊΠ°Π·ΠΎΡ ΠΌΠΎΡΠ° Π΄Π° Π±ΠΈΠ΄Π°Ρ ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΈΡΠ°Π½ΠΈ ΡΠΎ ΠΈΠΌΠΈΡΠ° ΠΎΠ΄ Π΄Π²Π° Π΄Π΅Π»Π°, ..
- Π‘Π²ΠΎΡΡΡΠ²ΠΎΡΠΎ Π·Π° ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΠ°ΡΠ° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π° ΠΎΠ΄ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ ΠΌΠΎΡΠ° Π΄Π° Π±ΠΈΠ΄Π΅
NO SQL
, Π° ΠΈΠΌΠΎΡΠΎΡ Π·Π° Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ΅Π½ ΠΏΡΠΈΡΡΠ°ΠΏ ΠΌΠΎΡΠ° Π΄Π° Π±ΠΈΠ΄Π΅NO
.- Π€ΡΠ½ΠΊΡΠΈΠΈΡΠ΅ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΎΠ±ΠΈΡΠ½ΠΈΠΎΡ ΡΠ°Π·ΠΈΠΊ (CLR) ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ°Π²Π°Ρ Π²ΠΎ ΡΠΏΠΈΡΠΎΠΊΠΎΡ Π·Π° ΠΈΠ·Π±ΠΎΡ Π½Π° ΠΏΡΠΈΠΊΠ°Π·ΠΎΡ, Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ°Ρ Π΄Π° Π±ΠΈΠ΄Π°Ρ Π΄Π΅Π» ΠΎΠ΄ Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΡΠ°ΡΠ° Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠΈΡΠ°Π½ΠΈΠΎΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ΅Π½ ΠΊΠ»ΡΡ. Π€ΡΠ½ΠΊΡΠΈΠΈΡΠ΅ CLR Π½Π΅ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ°Π²Π°Ρ Π²ΠΎ ΠΊΠ»Π°ΡΠ·ΡΠ»Π°ΡΠ° WHERE Π½Π° ΠΏΡΠΈΠΊΠ°Π·ΠΎΡ ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΠ·ΡΠ»Π°ΡΠ° ON Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠ°ΡΠ° JOIN Π²ΠΎ ΠΏΡΠΈΠΊΠ°Π·ΠΎΡ.
- CLR ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ Π½Π° ΡΠΈΠΏΠΎΠ²ΠΈΡΠ΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΈ ΠΎΠ΄ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ CLR ΡΡΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ Π²ΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΡΠ°ΡΠ° Π·Π° ΠΏΡΠ΅Π³Π»Π΅Π΄ ΠΌΠΎΡΠ° Π΄Π° Π³ΠΈ ΠΈΠΌΠ°Π°Ρ ΠΏΠΎΡΡΠ°Π²Π΅Π½ΠΈΡΠ΅ ΡΠ²ΠΎΡΡΡΠ²Π° ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅ ΠΏΡΠΈΠΊΠ°ΠΆΠ°Π½ΠΎ Π²ΠΎ ΡΠ»Π΅Π΄Π½Π°ΡΠ° ΡΠ°Π±Π΅Π»Π°.
Π‘ΠΎΠΏΡΡΠ²Π΅Π½ΠΎΡΡ
Π·Π°Π±Π΅Π»Π΅ΡΠΊΠ°ΠΠΠ’ΠΠ ΠΠΠΠΠ‘Π’ΠΠ§ΠΠ = ΠΠΠ‘Π’ΠΠΠ‘ΠΠ
ΠΠΎΡΠ° Π΄Π° ΡΠ΅ Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠ° Π΅ΠΊΡΠΏΠ»ΠΈΡΠΈΡΠ½ΠΎ ΠΊΠ°ΠΊΠΎ Π°ΡΡΠΈΠ±ΡΡ Π½Π° ΠΌΠ΅ΡΠΎΠ΄ΠΎΡ Microsoft .NET Framework.ΠΠ ΠΠ¦ΠΠΠΠ = ΠΠΠ‘Π’ΠΠΠ‘ΠΠ
ΠΠΎΡΠ° Π΄Π° ΡΠ΅ Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠ° Π΅ΠΊΡΠΏΠ»ΠΈΡΠΈΡΠ½ΠΎ ΠΊΠ°ΠΊΠΎ Π°ΡΡΠΈΠ±ΡΡ Π½Π° ΠΌΠ΅ΡΠΎΠ΄ΠΎΡ .NET Framework.ΠΠ ΠΠ‘Π’ΠΠ ΠΠ ΠΠΠΠΠ’ΠΠ¦Π = ΠΠΠΠ SQL
Π£ΡΠ²ΡΠ΄Π΅Π½ΠΎ ΡΠΎ ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ Π½Π° Π°ΡΡΠΈΠ±ΡΡΠΎΡ DataAccess Π½Π° DataAccessKind.None ΠΈ SystemDataAccess Π½Π° SystemDataAccessKind.None.ΠΠΠΠΠΠ ΠΠ¨ΠΠ ΠΠ ΠΠ‘Π’ΠΠ = ΠΠ
ΠΠ²Π° ΡΠ²ΠΎΡΡΡΠ²ΠΎ Π΅ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ NO Π·Π° CLR ΡΡΡΠΈΠ½ΠΈΡΠ΅.- ΠΠΎΠ³Π»Π΅Π΄ΠΎΡ ΠΌΠΎΡΠ° Π΄Π° ΡΠ΅ ΠΊΡΠ΅ΠΈΡΠ° ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π°
WITH SCHEMABINDING
ΠΎΠΏΡΠΈΡΠ°.- ΠΠΎΠ³Π»Π΅Π΄ΠΎΡ ΠΌΠΎΡΠ° Π΄Π° ΡΠΏΠ°ΡΡΠ²Π° ΡΠ°ΠΌΠΎ Π½Π° Π±Π°Π·Π½ΠΈ ΡΠ°Π±Π΅Π»ΠΈ ΠΊΠΎΠΈ ΡΠ΅ Π²ΠΎ ΠΈΡΡΠ°ΡΠ° Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΊΠ°ΠΊΠΎ ΠΈ ΠΏΡΠΈΠΊΠ°Π·ΠΎΡ. ΠΠΎΠ³Π»Π΅Π΄ΠΎΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠΏΠ°ΡΡΠ²Π° Π½Π° Π΄ΡΡΠ³ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄ΠΈ.
- ΠΠ·ΡΠ°Π²Π°ΡΠ° SELECT Π²ΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΡΠ°ΡΠ° Π·Π° ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π΅ ΡΠΌΠ΅Π΅ Π΄Π° Π³ΠΈ ΡΠΎΠ΄ΡΠΆΠΈ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ Π½Π° Transact-SQL:
COUNT
Π€ΡΠ½ΠΊΡΠΈΠΈ ROWSET (OPENDATASOURCE
,OPENQUERY
,OPENROWSET
, ΠOPENXML
)
OUTER
ΡΠ΅ ΠΏΡΠΈΠΊΠ»ΡΡΡΠ²Π° (LEFT
,RIGHT
ΠΈΠ»ΠΈFULL
)ΠΠ·Π²Π΅Π΄Π΅Π½Π° ΡΠ°Π±Π΅Π»Π° (Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π° ΡΠΎ Π½Π°Π²Π΅Π΄ΡΠ²Π°ΡΠ΅ a
SELECT
ΠΈΠ·ΡΠ°Π²Π° Π²ΠΎFROM
ΠΊΠ»Π°ΡΠ·ΡΠ»Π°)
Π‘Π°ΠΌΠΎ-ΠΏΡΠΈΠΊΠ»ΡΡΡΠ²Π°ΡΠ΅
ΠΠ΄ΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅SELECT *
orSELECT <table_name>.*
DISTINCT
STDEV
,STDEVP
,VAR
,VARP
ΠΈΠ»ΠΈAVG
ΠΠ°Π΅Π΄Π½ΠΈΡΠΊΠΈ ΠΈΠ·ΡΠ°Π· Π½Π° ΡΠ°Π±Π΅Π»Π°ΡΠ° (CTE)ΠΏΠ»ΠΎΠ²ΠΈ1, ΡΠ΅ΠΊΡΡ, ntext, ΡΠ»ΠΈΠΊΠ°, XMLΠΈΠ»ΠΈ ΠΏΡΠΎΡΠΎΠΊ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΠΊΠΎΠ»ΡΠΌΠ½ΠΈ
subquery
OVER
ΠΊΠ»Π°ΡΠ·ΡΠ»Π°, ΠΊΠΎΡΠ° Π²ΠΊΠ»ΡΡΡΠ²Π° ΡΠ°Π½Π³ΠΈΡΠ°ΡΠ΅ ΠΈΠ»ΠΈ Π·Π±ΠΈΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΠ΅ΡΠΎΡΠΡΠ΅Π΄ΠΈΠΊΠ°ΡΠΈ ΡΠΎ ΡΠ΅Π»ΠΎΡΠ΅Π½ ΡΠ΅ΠΊΡΡ (
CONTAINS
,FREETEXT
)
SUM
ΡΡΠ½ΠΊΡΠΈΡΠ° ΠΊΠΎΡΠ° ΡΠΏΠ°ΡΡΠ²Π° Π½Π° ΠΏΠΎΠ½ΠΈΡΡΠ΅Π½ ΠΈΠ·ΡΠ°Π·
ORDER BY
CLR Π·Π±ΠΈΡΠ½Π° ΡΡΠ½ΠΊΡΠΈΡΠ° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π° ΠΎΠ΄ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ
TOP
CUBE
,ROLLUP
ΠΈΠ»ΠΈGROUPING SETS
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ
MIN
,MAX
UNION
,EXCEPT
ΠΈΠ»ΠΈINTERSECT
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ
TABLESAMPLE
ΠΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΠ°Π±Π΅Π»Π°ΡΠ°
OUTER APPLY
orCROSS APPLY
PIVOT
,UNPIVOT
Π Π΅ΡΠΊΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈ
ΠΠ³ΡΠ°Π΄Π΅Π½ΠΈ (TVF) ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΠ΅Π΄Π½ΡΠ²Π°Π½ΠΈ ΡΠΏΠΎΡΠ΅Π΄ ΡΠ°Π±Π΅Π»Π°ΡΠ° ΡΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈΠ·ΡΠ°Π²ΠΈ (MSTVF)
OFFSET
CHECKSUM_AGG
1 ΠΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½ΠΈΠΎΡ ΠΏΡΠΈΠΊΠ°Π· ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠΎΠ΄ΡΠΆΠΈ ΠΏΠ»ΠΎΠ²ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ; ΡΠ΅ΠΏΠ°ΠΊ, ΡΠ°ΠΊΠ²ΠΈΡΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ°Ρ Π΄Π° Π±ΠΈΠ΄Π°Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ Π²ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠΈΡΠ°Π½ΠΈΠΎΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ΅Π½ ΠΊΠ»ΡΡ.
- If
GROUP BY
Π΅ ΠΏΡΠΈΡΡΡΠ½Π°, Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΡΠ°ΡΠ° VIEW ΠΌΠΎΡΠ° Π΄Π° ΡΠΎΠ΄ΡΠΆΠΈCOUNT_BIG(*)
ΠΈ Π½Π΅ ΡΠΌΠ΅Π΅ Π΄Π° ΡΠΎΠ΄ΡΠΆΠΈHAVING
. ΠΎΠ²ΠΈΠ΅GROUP BY
ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ°ΡΠ° ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΡΠ°ΠΌΠΎ Π·Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΡΠ°ΡΠ° Π·Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½ ΠΏΡΠΈΠΊΠ°Π·. ΠΠ°ΡΠ°ΡΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½ ΠΏΡΠΈΠΊΠ°Π· Π²ΠΎ ΡΠ²ΠΎΡΠΎΡ ΠΏΠ»Π°Π½ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π΄ΡΡΠΈ ΠΈ Π°ΠΊΠΎ Π½Π΅ Π³ΠΈ Π·Π°Π΄ΠΎΠ²ΠΎΠ»ΡΠ²Π° ΠΎΠ²ΠΈΠ΅GROUP BY
ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ°.- ΠΠΊΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΡΠ°ΡΠ° Π·Π° ΠΏΠΎΠ³Π»Π΅Π΄ ΡΠΎΠ΄ΡΠΆΠΈ a
GROUP BY
ΠΊΠ»Π°ΡΠ·ΡΠ»Π°, ΠΊΠ»ΡΡΠΎΡ Π½Π° ΡΠ½ΠΈΠΊΠ°ΡΠ½ΠΈΠΎΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠΈΡΠ°Π½ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΈ ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π° ΡΠ°ΠΌΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΈΡΠ΅ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ Π²ΠΎGROUP BY
ΠΊΠ»Π°ΡΠ·ΡΠ»Π°.
ΠΠ²Π΄Π΅ Π΅ ΡΠ°ΡΠ½ΠΎ Π΄Π΅ΠΊΠ° ΠΠ½Π΄ΠΈΡΡΠΈΡΠ΅ Π½Π΅ Π±Π΅Π° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ, Π±ΠΈΠ΄Π΅ΡΡΠΈ ΡΠΈΠ΅ ΡΠ΅ΡΠΈΡΠ° Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²Π°Ρ ΡΠΎΠ° ΡΠΏΠΎΡΠ΅Π΄ ΡΠ΅ΠΌΠ°ΡΠ° βΠ½ΠΈΠ΅ ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌΠ΅ ΠΌΠ°Π»ΠΊΡ, Π½ΠΎ Π΄ΠΎΠ±ΡΠΎβ. ΠΠ΄Π½ΠΎΡΠ½ΠΎ, ΠΈΠΌΠ°Π°Ρ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΌΠΈΠ½ΠΈ Π½Π° ΡΠ΅ΡΠ΅Π½ΠΎΡ, Π½ΠΎ Π½ΠΈΠ²Π½Π°ΡΠ° Π»ΠΎΠΊΠ°ΡΠΈΡΠ° Π΅ ΠΏΠΎΡΡΠ°Π½ΡΠΏΠ°ΡΠ΅Π½ΡΠ½Π°. ΠΠ°ΡΡΠ°Π·ΠΎΡΠ°ΡΡΠ²Π°ΡΠΊΠΈ Π΅ ΠΎΠ²Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ΅:
ΠΠΎΠ³Π»Π΅Π΄ΠΎΡ ΠΌΠΎΡΠ° Π΄Π° ΡΠΏΠ°ΡΡΠ²Π° ΡΠ°ΠΌΠΎ Π½Π° Π±Π°Π·Π½ΠΈ ΡΠ°Π±Π΅Π»ΠΈ ΠΊΠΎΠΈ ΡΠ΅ Π²ΠΎ ΠΈΡΡΠ°ΡΠ° Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΊΠ°ΠΊΠΎ ΠΈ ΠΏΡΠΈΠΊΠ°Π·ΠΎΡ. ΠΠΎΠ³Π»Π΅Π΄ΠΎΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠΏΠ°ΡΡΠ²Π° Π½Π° Π΄ΡΡΠ³ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄ΠΈ.
ΠΠΎ Π½Π°ΡΠ°ΡΠ° ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡΠ°, ΡΠΎΠ° Π·Π½Π°ΡΠΈ Π΄Π΅ΠΊΠ° ΡΡΠ½ΠΊΡΠΈΡΠ°ΡΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠΈΡΡΠ°ΠΏΠΈ Π΄ΠΎ Π΄ΡΡΠ³Π° ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΡΡΠ½ΠΊΡΠΈΡΠ°. ΠΠ²Π° ΡΠ° Π½Π°ΠΌΠ°Π»ΡΠ²Π° ΡΠ΅Π»Π°ΡΠ° ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΡΠ° Π²ΠΎ ΠΏΡΠΏΠΊΠ°.
ΠΡΡΠΎ ΡΠ°ΠΊΠ°, ΠΎΠ²Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ΅ (ΠΈ ΠΏΠΎΠ½Π°ΡΠ°ΠΌΡ Π²ΠΎ ΡΠ΅ΠΊΡΡΠΎΡ) Π²ΠΎ Π³ΠΎΠ»Π΅ΠΌΠ° ΠΌΠ΅ΡΠ° Π³ΠΈ Π½Π°ΠΌΠ°Π»ΡΠ²Π° ΡΠ»ΡΡΠ°ΠΈΡΠ΅ Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π°:
ΠΠ·ΡΠ°Π²Π°ΡΠ° SELECT Π²ΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΡΠ°ΡΠ° Π·Π° ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π΅ ΡΠΌΠ΅Π΅ Π΄Π° Π³ΠΈ ΡΠΎΠ΄ΡΠΆΠΈ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ Π½Π° Transact-SQL:
COUNT
Π€ΡΠ½ΠΊΡΠΈΠΈ ROWSET (OPENDATASOURCE
,OPENQUERY
,OPENROWSET
, ΠOPENXML
)
OUTER
ΡΠ΅ ΠΏΡΠΈΠΊΠ»ΡΡΡΠ²Π° (LEFT
,RIGHT
ΠΈΠ»ΠΈFULL
)ΠΠ·Π²Π΅Π΄Π΅Π½Π° ΡΠ°Π±Π΅Π»Π° (Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π° ΡΠΎ Π½Π°Π²Π΅Π΄ΡΠ²Π°ΡΠ΅ a
SELECT
ΠΈΠ·ΡΠ°Π²Π° Π²ΠΎFROM
ΠΊΠ»Π°ΡΠ·ΡΠ»Π°)
Π‘Π°ΠΌΠΎ-ΠΏΡΠΈΠΊΠ»ΡΡΡΠ²Π°ΡΠ΅
ΠΠ΄ΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅SELECT *
orSELECT <table_name>.*
DISTINCT
STDEV
,STDEVP
,VAR
,VARP
ΠΈΠ»ΠΈAVG
ΠΠ°Π΅Π΄Π½ΠΈΡΠΊΠΈ ΠΈΠ·ΡΠ°Π· Π½Π° ΡΠ°Π±Π΅Π»Π°ΡΠ° (CTE)ΠΏΠ»ΠΎΠ²ΠΈ1, ΡΠ΅ΠΊΡΡ, ntext, ΡΠ»ΠΈΠΊΠ°, XMLΠΈΠ»ΠΈ ΠΏΡΠΎΡΠΎΠΊ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΠΊΠΎΠ»ΡΠΌΠ½ΠΈ
subquery
OVER
ΠΊΠ»Π°ΡΠ·ΡΠ»Π°, ΠΊΠΎΡΠ° Π²ΠΊΠ»ΡΡΡΠ²Π° ΡΠ°Π½Π³ΠΈΡΠ°ΡΠ΅ ΠΈΠ»ΠΈ Π·Π±ΠΈΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΠ΅ΡΠΎΡΠΡΠ΅Π΄ΠΈΠΊΠ°ΡΠΈ ΡΠΎ ΡΠ΅Π»ΠΎΡΠ΅Π½ ΡΠ΅ΠΊΡΡ (
CONTAINS
,FREETEXT
)
SUM
ΡΡΠ½ΠΊΡΠΈΡΠ° ΠΊΠΎΡΠ° ΡΠΏΠ°ΡΡΠ²Π° Π½Π° ΠΏΠΎΠ½ΠΈΡΡΠ΅Π½ ΠΈΠ·ΡΠ°Π·
ORDER BY
CLR Π·Π±ΠΈΡΠ½Π° ΡΡΠ½ΠΊΡΠΈΡΠ° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π° ΠΎΠ΄ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ
TOP
CUBE
,ROLLUP
ΠΈΠ»ΠΈGROUPING SETS
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ
MIN
,MAX
UNION
,EXCEPT
ΠΈΠ»ΠΈINTERSECT
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ
TABLESAMPLE
ΠΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΠ°Π±Π΅Π»Π°ΡΠ°
OUTER APPLY
orCROSS APPLY
PIVOT
,UNPIVOT
Π Π΅ΡΠΊΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈ
ΠΠ³ΡΠ°Π΄Π΅Π½ΠΈ (TVF) ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΠ΅Π΄Π½ΡΠ²Π°Π½ΠΈ ΡΠΏΠΎΡΠ΅Π΄ ΡΠ°Π±Π΅Π»Π°ΡΠ° ΡΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈΠ·ΡΠ°Π²ΠΈ (MSTVF)
OFFSET
CHECKSUM_AGG
ΠΠ°Π±ΡΠ°Π½Π΅ΡΠΈ ΡΠ΅ ΠΠΠΠΠΠ ΠΠ¨ΠΠ ΠΠ ΠΠΠΠ£Π§Π£ΠΠΠΠ, Π£ΠΠΠΠ, ΠΠΠ ΠΠ§ΠΠ ΠΠ ΠΈ Π΄ΡΡΠ³ΠΈ. ΠΠΎΠΆΠ΅Π±ΠΈ Π±Π΅ΡΠ΅ ΠΏΠΎΠ»Π΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΎΠ΄ΡΠ΅Π΄ΠΈ ΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π½Π°ΠΌΠ΅ΡΡΠΎ ΡΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ. Π‘ΠΏΠΈΡΠΎΠΊΠΎΡ Π²Π΅ΡΠΎΡΠ°ΡΠ½ΠΎ Π±ΠΈ Π±ΠΈΠ» ΠΌΠ½ΠΎΠ³Ρ ΠΏΠΎΠΌΠ°Π».
ΠΠ° ΡΠ΅Π·ΠΈΠΌΠΈΡΠ°ΠΌΠ΅: ΠΎΠ³ΡΠΎΠΌΠ΅Π½ ΡΠ΅Ρ Π½Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ° Π²ΠΎ ΡΠ΅ΠΊΠΎΡ (Π΄Π° Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΠΌΠ΅ ΠΊΠΎΠΌΠ΅ΡΡΠΈΡΠ°Π»Π΅Π½) DBMS Π½Π°ΡΠΏΡΠΎΡΠΈ Π½ΠΈΠ΅Π΄Π΅Π½ (ΡΠΎ ΠΈΡΠΊΠ»ΡΡΠΎΠΊ Π½Π° Π΅Π΄Π΅Π½ Π»ΠΎΠ³ΠΈΡΠ΅Π½, Π½Π΅ ΡΠ΅Ρ Π½ΠΈΡΠΊΠΈ) Π²ΠΎ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ°ΡΠ° LGPL. Π‘Π΅ΠΏΠ°ΠΊ, ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈ Π΄Π΅ΠΊΠ° ΡΠΏΡΠΎΠ²Π΅Π΄ΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΎΠ²ΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·Π°ΠΌ Π²ΠΎ ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π°ΡΠ° Π»ΠΎΠ³ΠΈΠΊΠ° Π΅ Π½Π΅ΡΡΠΎ ΠΏΠΎΡΠ΅ΡΠΊΠΎ ΠΎΡΠΊΠΎΠ»ΠΊΡ Π²ΠΎ ΠΎΠΏΠΈΡΠ°Π½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ°.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ
ΠΠ°ΠΊΠΎ ΡΠ°Π±ΠΎΡΠΈ? PostgreSQL ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΊΠ°ΠΊΠΎ βΠ²ΠΈΡΡΡΠ΅Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π°β. ΠΠ½Π°ΡΡΠ΅ ΠΈΠΌΠ° ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ΅Π½ Π°Π»Π³ΠΎΡΠΈΡΠ°ΠΌ ΠΊΠΎΡ Π³ΡΠ°Π΄ΠΈ ΠΏΡΠ°ΡΠ°ΡΠ°. ΠΠ²Π΅
ΠΠ°Π»ΠΈ ΡΠ°Π±ΠΎΡΠΈ Π΅ΡΠΈΠΊΠ°ΡΠ½ΠΎ? ΠΠΎΡΡΠ° Π΅ΡΠΈΠΊΠ°ΡΠ½ΠΎ. ΠΠ° ΠΆΠ°Π», ΡΠΎΠ° Π΅ ΡΠ΅ΡΠΊΠΎ Π΄Π° ΡΠ΅ Π΄ΠΎΠΊΠ°ΠΆΠ΅. ΠΠΎΠΆΠ°ΠΌ ΡΠ°ΠΌΠΎ Π΄Π° ΠΊΠ°ΠΆΠ°ΠΌ Π΄Π΅ΠΊΠ° Π°ΠΊΠΎ Π³ΠΈ Π·Π΅ΠΌΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΠΈΠ»ΡΠ°Π΄Π½ΠΈΡΠΈΡΠ΅ Π±Π°ΡΠ°ΡΠ° ΡΡΠΎ ΠΏΠΎΡΡΠΎΡΠ°Ρ Π²ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈΡΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ, ΡΠΎΠ³Π°Ρ Π²ΠΎ ΠΏΡΠΎΡΠ΅ΠΊ ΡΠΈΠ΅ ΡΠ΅ ΠΏΠΎΠ΅ΡΠΈΠΊΠ°ΡΠ½ΠΈ ΠΎΠ΄ ΠΎΠ½ΠΈΠ΅ Π½Π° Π΄ΠΎΠ±Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅Ρ. ΠΠ΄Π»ΠΈΡΠ΅Π½ SQL ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ ΡΠ΅ΠΊΠΎΠ΅ Π±Π°ΡΠ°ΡΠ΅ ΠΏΠΎΠ΅ΡΠΈΠΊΠ°ΡΠ½ΠΎ, Π½ΠΎ ΡΠΎ ΠΈΠ»ΡΠ°Π΄Π° ΠΏΡΠ°ΡΠ°ΡΠ° ΡΠΎΡ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ Π½Π΅ΠΌΠ° Π΄Π° ΠΈΠΌΠ° ΠΌΠΎΡΠΈΠ²Π°ΡΠΈΡΠ° ΠΈΠ»ΠΈ Π²ΡΠ΅ΠΌΠ΅ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΠΎΠ°. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΎΡΠΎ Π½Π΅ΡΡΠΎ ΡΡΠΎ ΡΠ΅Π³Π° ΠΌΠΎΠΆΠ°ΠΌ Π΄Π° Π³ΠΎ Π½Π°Π²Π΅Π΄Π°ΠΌ ΠΊΠ°ΠΊΠΎ Π΄ΠΎΠΊΠ°Π· Π·Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠ° Π΅ Π΄Π΅ΠΊΠ° Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΡΠ°Π±ΠΎΡΠ°Ρ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½Π° Π½Π° ΠΎΠ²ΠΎΡ DBMS
ΠΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΡΠ°ΡΠΈΠΈ, ΡΠ΅ Π·Π±ΠΎΡΡΠ²Π°ΠΌ ΠΈ Π·Π° ΡΠΎΠ° ΠΊΠ°ΠΊΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ° Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅, Π΄Π° ΡΠ°Π±ΠΎΡΠΈΡΠ΅ ΡΠΎ ΡΠ΅ΡΠΈΠΈ Π·Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΈ ΠΌΠ½ΠΎΠ³Ρ ΠΏΠΎΠ²Π΅ΡΠ΅.
ΠΠ·Π²ΠΎΡ: www.habr.com