Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «ПониманиС SQLΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 63

Автор ΠœΠ°Ρ€Ρ‚ΠΈΠ½ Π“Ρ€ΡƒΠ±Π΅Ρ€

GRANT (ΠŸΠ•Π Π•Π”ΠΠ’Π¬ ΠŸΠ ΠΠ’Π)


Бинтаксис (стандартный)


GRANT ALL [PRIVILEGES] | {SELECT | INSERT | DELETE | UPDATE [(<column llst>)]

| REFERENCES [(<column llst>)l } .,..

ON <table name> .,..

TO PUBLIC | <Authorization ID> .,..

[WITH GRANT OPTION];


АргумСнт ALL(Π’Π‘Π•), с ΠΈΠ»ΠΈ Π±Π΅Π· PRIVILEGES(ΠŸΠ Π˜Π’Π˜Π›Π•Π“Π˜Π˜), Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Ρ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡŽ Π² список ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ. PUBLIC(ΠžΠ‘Π©Π˜Π™) Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ всСх ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ всСх созданых Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²Π° для выполнСния дСйствий Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ с ΡƒΠΊΠ°Π·Π°Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ. REFERENCES позволяСт Π΄Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²Π° Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ столбцы Π² спискС столбцов<column list> ΠΊΠ°ΠΊ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠ»ΡŽΡ‡ для внСшнСго ΠΊΠ»ΡŽΡ‡Π°. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ состоят ΠΈΠ· ΠΏΡ€Π°Π²Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ ΠΈΡ… ΠΈΠΌΠ½Π°ΠΌΠΈ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅. UPDATE, ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ REFERENCES, ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ ограничСния Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ столбцы. GRANT OPTION Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ эти ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ.


Бинтаксис (нСстандартный )


GRANT DBA | RESOURCE | CONNECT ... .

TO <Authorization ID> .,..

[IDENTIFIED BY> password>


CONNECT Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΎ Π½Π° рСгистрации ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€Π°Π²Π°. RESOURCE Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΏΡ€Π°Π²ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. DBA Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΡ‡Ρ‚ΠΈ всС ΠΏΡ€Π°Π²Π°. IDENTIFIED BY ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вмСстС с CONNECT, для создания ΠΈΠ»ΠΈ измСнСния пароля ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.


INSERT (Π’Π‘Π’ΠΠ’ΠšΠ)


Бинтаксис


INSERT INTO <table name> (<column llst>)

VALUES (<value llst>) I <query>;


INSERT создаСт ΠΎΠ΄Π½Ρƒ ΠΈΠ»ΠΈ большС Π½ΠΎΠ²Ρ‹Ρ… строк Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ с ΠΈΠΌΠ΅Π½Π΅ΠΌ <table name>. Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ VALUES, ΠΈΡ… значСния Π²ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ< table name>. Если запрос<query > ΡƒΠΊΠ°Π·Π°Π½, каТдая строка Π²Ρ‹Π²ΠΎΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ вставлСна Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ <table name>. Если список столбцов<column list> отсутствуСт, всС столбцы Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹<table name>, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π² упорядочСнном Π²ΠΈΠ΄Π΅.


OPEN CURSOR (ОВКРЫВЬ КУРБОР)


Бинтаксис


EXEC SQL OPEN CURSOR <cursorname><SQL term>


OPEN CURSOR выполняСт запрос связанный с курсором<cursor name>. Π’Ρ‹Π²ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ строкС для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ FETCH.


REVOKE (*NONSTANDARD*) (ΠžΠ’ΠœΠ•ΠΠ˜Π’Π¬ ΠŸΠžΠ›ΠΠžΠœΠžΠ§Π˜Π―) (ΠΠ•Π‘Π’ΠΠΠ”ΠΠ Π’ΠΠž)


Бинтаксис


REVOKE { ALL [PRIVILEGES]

| <privilege> .,.. } [ON <table name>]

FROM { PUBLIC

| <Authorization ID> .,.. };


ΠŸΡ€ΠΈΠ²Π΅Π»Π΅Π³ΠΈΡ<privelege> ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ любой ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Ρ‹Ρ… Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ GRANT. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄Π°ΡŽΡ‰ΠΈΠΉ REVOKE Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚Π΅ ΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π»Π΅Π³ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π°Π²Π°Π» GRANT. ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ON ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использовано, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ привилСгия ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° для особого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.


ROLLBACK (WORK) (ОВКАВ) (Π’Π ΠΠΠ—ΠΠšΠ¦Π˜Π˜)


Бинтаксис


ROLLBACK WORK;


Команда отмСняСт всС измСнСния Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, сдСланныС Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Она ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ заканчиваСтся Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ, ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π½ΠΎΠ²ΡƒΡŽ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ.


SELECT (Π’Π«Π‘ΠžΠ )


Бинтаксис


SELECT { IDISTINCT | ALL] < value expression > .,.. } / *

[INTO <host variable list> (*embedded only*)]

FROM < table reference > .,..

[WHERE <predicate>]

[GROUP BY <grouping column> .,..]

[HAVING <predicate>]

[ORDER BY <ordering column> [ASC | DESC] .,.. ];


Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΠ·ΡƒΠ΅Ρ‚ запрос ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ значСния ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…( см. Π“Π»Π°Π²Π° 3 - Π“Π»Π°Π²Π° 14). ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°:

* Если Π½ΠΈ ALL, Π½ΠΈ DISTINCT - Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½Ρ‹, принимаСтся - ALL.

* Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅<value expression> состоит ΠΈΠ· <column spec>, Π°Π³Ρ€Π΅Π³Π°Ρ‚Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ <aggregate funct>, нСстандартной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ<nonstandard function>, постоянной<constant>, ΠΈΠ»ΠΈ любой ΠΈΡ… ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ Π² допустимых выраТСниях.

* БсылаСмая Ρ‚Π°Π±Π»ΠΈΡ†Π°<table reference>, состоит ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ прСфикс Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° Ссли Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π²Π»Π°Π΄Π΅Π»Π΅Ρ†, ΠΈΠ»ΠΈ синоним(нСстандартно) для Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π’Π°Π±Π»ΠΈΡ†Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ»ΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ ΠΈΠ»ΠΈ просмотром. Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, псСвдоним ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ синонимом ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° врСмя Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠ»ΠΈ синоним Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΡΡ‚ΡŒΡΡ ΠΎΡ‚ псСвдонима ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π·Π½Π°ΠΊΠ°ΠΌΠΈ<separator>.

* Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ GROUP BY, всС столбцы<column spec> ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ SELECT, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π³Ρ€ΡƒΠΏΠΏΠ° столбцов<grouping column>, Ссли ΠΎΠ½ΠΈ Π½Π΅ содСрТатся Π² Π°Π³Ρ€Π΅Π³Π°Ρ‚Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ<aggregate funct>. Вся Π³Ρ€ΡƒΠΏΠΏΠ° столбцов<grouping column> Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ прСдставлСна срСди Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ< value expressions> ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ SELECT. Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ столбцов<grouping column>, Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒΡΡ ΠΎΠ΄Π½Π° ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° строка Π²Ρ‹Π²ΠΎΠ΄Π°.

* Если HAVING ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚<predicate > примСняСтся ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ GROUP BY, ΠΈ Ρ‚Π΅ строки ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ΄Π΅Π»Π°ΡŽΡ‚ этот ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ Π²Π΅Ρ€Π½Ρ‹ΠΌ, Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Ρ‹.

* Если ORDER BY ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Π²Ρ‹Π²ΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ столбца<column identifer> ссылаСтся ΠΊ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ <value expression> Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ SELECT. Если это <value expression> являСтся ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ столбцом<column spec>, <column identifier> ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΊΠ°ΠΊ <column spec>. Π˜Π½Π°Ρ‡Π΅ <column identifier> ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ†Π΅Π»Ρ‹ΠΌ числом, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ мСсто Π³Π΄Π΅ находится <value expression> Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ прСдлоТСния SELECT. Π’Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ сформирован Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ значСния содСрТащиСся Π² <column identifier > Π² порядкС возрастания, Ссли DESC Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½. Имя ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° столбца<column identifier> стоящСС ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ ORDER BY Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅ стоящим ΠΈΠΌΠ΅Π½Π°ΠΌ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π°.


ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ SELECT ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ строку-ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ строки ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ нСзависимо. Π‘Ρ‚Ρ€ΠΎΠΊΠ°-ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ опрСдСляСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

* Если Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° ссылаСмая Ρ‚Π°Π±Π»ΠΈΡ†Π°<table reference> Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π°, каТдая строка этой Ρ‚Π°Π±Π»ΠΈΡ†Π° Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ являСтся строкой-ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠΌ.

* Если Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ ссылаСмой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹<table reference> Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ, каТдая строка ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ скомбинирована Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ с ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠ΅ΠΉ строк ΠΈΠ· всСх Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†. КаТдая такая комбинация Π±ΡƒΠ΄Π΅Ρ‚ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ строкой-ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠΌ.


КаТдая строка-ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ <predicate > Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ WHERE Π²Π΅Ρ€Π½Ρ‹ΠΌ, Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΌ, ΠΈΠ»ΠΈ нСизвСстным.

Если GROUP BY Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅<value expression> примСняСтся Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки-ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Π° Ρ‡ΡŒΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ Π²Π΅Ρ€Π½Ρ‹ΠΌ, ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ этой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ являСтся Π²Ρ‹Π²ΠΎΠ΄. Если GROUP BY ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, строки-ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Ρ‹ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π°Π³Ρ€Π΅Π³Π°Ρ‚Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Если Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Π°<predicate > Π½Π΅ установлСно, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅<value expression> примСняСтся ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС-ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Ρƒ ΠΈΠ»ΠΈ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅. Если ΡƒΠΊΠ°Π·Π°Π½ DISTINCT, Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Ρ‹( Π΄Π²ΠΎΠΉΠ½ΠΈΠΊΠΈ) строк Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ ΠΈΠ· Π²Ρ‹Π²ΠΎΠ΄Π°.


UNION (ΠžΠ‘ΠͺΠ•Π”Π˜ΠΠ•ΠΠ˜Π•)


Бинтаксис


<query> {UNION [ALL] <query> } . . . ;


Π’Ρ‹Π²ΠΎΠ΄ Π΄Π²ΡƒΡ… ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ запросов<query> Π±ΡƒΠ΄Π΅Ρ‚ объСдинСн. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ запрос <query > Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π½ΠΎΠΌΠ΅Ρ€ <value expression> Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ SELECT ΠΈ Π² Ρ‚Π°ΠΊΠΎΠΌ порядкС Ρ‡Ρ‚ΠΎ 1.. n ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ, совмСстим ΠΏΠΎ Ρ‚ΠΈΠΏΡƒ Π΄Π°Π½Π½Ρ‹Ρ…<data type> ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ<size> с 1.. n всСх Π΄Ρ€ΡƒΠ³ΠΈΡ….


Бинтаксис


UPDATE <table name>

SET { <column name>=<value expression> } .,..

{[ WHERE <predlcate>]; }

| {[WHERE CURRENT OF <cursorname>]

<SQL term>]}


UPDATE измСняСт значСния Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ столбцС с ΠΈΠΌΠ΅Π½Π΅ΠΌ<column name> Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅<value expression>. Если ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ WHERE ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚<predicate>, Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ строки Ρ‚Π°Π±Π»ΠΈΡ† Ρ‡ΡŒΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ значСния Π΄Π΅Π»Π°ΡŽΡ‚ Ρ‚ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚<predicate> Π²Π΅Ρ€Π½Ρ‹ΠΌ, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹. Если WHERE ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ CURRENT OF, Ρ‚ΠΎ значСния Π² строкС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ с ΠΈΠΌΠ΅Π½Π΅ΠΌ<table name> находящиСся Π² курсорС с ΠΈΠΌΠ΅Π½Π΅ΠΌ<cursor name> ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ. WHERE CURRENT OF ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½ΠΎ для использования Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌ SQL, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ курсорами. ΠŸΡ€ΠΈ отсутствия прСдлоТСния WHERE - всС строки ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ.


WHENEVER (Π’Π‘Π―ΠšΠ˜Π™ РАЗ КАК)


Бинтаксис


EXEC SQL WHENEVER <SQLcond> <actlon> <SQL term>

<SQLcond> ::=SQLERROR | NOT FOUND | SQLWARNING

(послСднСС - нСстандартноС)

<action> ::=CONTINUE | GOTO <target> | GOTO <target>

<target> ::=зависит ΠΎΡ‚ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ языка

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ E. Π’ΠΠ‘Π›Π˜Π¦Π« Π˜Π‘ΠŸΠžΠ›Π¬Π—Π£Π•ΠœΠ«Π• Π’ ΠšΠΠ˜Π“Π•


Π’ΠΠ‘Π›Π˜Π¦Π 1: ΠŸΠ ΠžΠ”ΠΠ’Π¦Π«

snum

sname

city

comm

1001

Peel

London

.12

1002

Serres

San Jose

.13

1004

Motika

London

.11

1007

Rifkin

Barcelona

.15

1003

Axelrod

New York

.10


Π’ΠΠ‘Π›Π˜Π¦Π 2: Π—ΠΠšΠΠ—Π§Π˜ΠšΠ˜


cnum

cname

city

rating

snum

2001

Hoffman

London

100

1001

2002

Giovanni

Rome

200

1003

2003

Liu

SanJose

200

1002

2004

Grass

Berlin

300

1002

2006