Материал: Graber_Martin_-_SQL_dlya_prostykh_smertnykh_-_2014

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

КомандыSQL

•Если <квантор> = ALL и каждый член <мно.жества результата> дает при сравнении значение "истина", то <составной предикат> имеет значение "ис­ тина".

•Если <квантор> = ANY и существует, по крайней мере, один элемент из <,;~то­

жества результата>, для которого результат сравнения имеет значение "исти­

на", то <составной предикат> имеет значение "истина".

•Если <множество результата> пусто, то <составной предикат> имеет значе­

ние "истина", если имеется <квантор>= ALL, и значение "ложь" - в против­

ном случае.

•Квантор SOME действует так же, как и квантор ANY.

•Если <составной предикат> не имеет значения ни "истина", ни "ложь", то его

значение неизвестно.

<Предикат существования>

Синтаксис:

EXISTS (<подзапрос>)

Если результат выполнения <подзапроса> - одна или несколько строк, то <преди­ кат существования> имеет значение "истина", в противном случае - значение "ложь".

КомандыSQL

Этот раздел уточняет детали синтаксиса для множества команд SQL. Он дает воз­ можность быстро отыскать команду, найти ее синтаксис и краткое описание того, как она работает.

Замечание: Команды, начинающиеся с ЕХЕС SQL, и команды или предложения, заканчивающиеся на <SQL-тep.11>, могут использоваться только во вложенном SQL.

345

Приложен11е D. Справка по синтаксису и командам

BEGIN DECLARE SECTION

Синтаксис

ЕХЕС SQL BEGIN DECLARE SECTION <SQL-тepм>;

<объявления переменных языка высокого уровня>

ЕХЕС SQL END DECLARE SECTION <SОL-терм>;

Команда создает секцию программы языка высокого уровня для объявления пере­ менных в основной программе, которые будут использоваться во встроенных SQL- предложениях. Переменная SQLCODE должна быть включена как одно из объявлений

переменных языка высокого уровня.

CLOSE CURSOR

Синтаксис

ЕХЕС SOL CLOSE CURSOR <имя курсора><SОL-терм>;

Команда определяет CURSOR (курсор) закрытым, значит из него нельзя получить никакого значения до тех пор, пока он вновь не будет открыт.

COMMIT (WORK)

Синтаксис

СОММП WORK;

Команда делает постоянными все изменения значений, выполненные в базе дан­

ных от момента начала транзакции до текущего момента, и начинает новую транзак­

цию.

CREA ТЕ INDEX (* нестандартная *)

Синтаксис

CREATE [UNIQUE] INDEX <имя индекса>

ON <имя таблицы> (<список столбцов>);

Команда открывает пути быстрого доступа к данным для обеспечения более эф­ фективный доступ к строкам, содержащим определенные значения в столбцах. Если задано ключевое слово UNIQUE, то таблица не может содержать повторяющихся зна­ чений в этом столбце.

346

КомандыSQL

CREATE SYNONYM (*нестандартная *)

Синтаксис

CREATE [PUBLIC] SУNОNУМ<синоним> FOR <владелец>.<имя таблицы>;

Команда создает альтернативное имя для таблицы. Синоним принадлежит его соз­ дателю, а сама таблица обычно принадлежит другому пользователю. При использова­ нии синонима его владелец не должен ссылаться на таблицу полностью, включая имя владельца таблицы. Если указано ключевое слово PUBLIC, то синоним признается имеющим статус SYSTEM и доступен всем пользователям.

CREATE TABLE

Синтаксис

CREATE TABLE <имя столбца>

({<имя столбца> <тип данных>[ <размер>]

[<ограничения на столбец> . .. ]

[<значение по умолчанию>]}., .. <ограничения на таблицу>., .. );

Команда создает таблицу в базе данных. Владельцем этой таблицы является ее соз­ датель. Предполагается, что столбцы упорядочены по именам. <Тип данных> опреде­ ляет, какого рода данные будут храниться в столбце. Стандартные <типы данных> описаны в приложении В; другие часто используемые типы данных обсуждаются в приложении С. Значение <раз.«ер> зависит от типа данных. <ОграничеNия на столб­

цы> и <ограничения на таблицу> накладывают ограничения на значения, которые

можно вводить в столбцы. <Значе11ие 110 умолчанию> определяет значение, которое ав­

томатически проставляется, если никакое другое значение не определяется для строки

(см. главу 17 для уточнения деталей команды CREATE TABLE и главы 18 и 19 для уточнения деталей, связанных с ограничениями и <значениял1и по улюлчанию>}.

CREATE VIEW

Синтаксис

CREATE VIEW <имя таблицы>

AS <запрос>

[WITH СНЕСК OPTION];

Представление рассматривается как любая другая таблица в командах SQL. Когда команда ссылается на <и.ня таблицы>, выполняется запрос и его результаты формиру­ ют содержимое таблицы на протяжении выполнения команды. Некоторые представле­ ния могут обновляться. Это означает, что для них можно выполнить команды обновления и распространить их действие на таблицы, указанные в <запросе>. Если

347

Приложение D. Справка по синтаксису и командам

указано W!ТН СНЕСК OPТION, то эти обновления должны удовлетворять <предика­

ту>, указанному в <запросе>.

DECLARE CURSOR

Синтаксис

ЕХЕС SQL DECLARE <имя курсора> CURSOR FOR <запрос><SОL-терм>

Команда связывает имя курсора с запросом. Когда курсор открывается (см. OPEN CURSOR), выполняется запрос, и к его результату можно применить FETCHED. Если курсор является обновляемым, то таблица, на которую ссылается <запрос>, подверга­ ется изменениям при выполнении операций над курсором (см. главу 25).

DELETE

Синтаксис

DELETE FROM <имя таблицы>

{ [WHERE <предикат>];}

WHERE CURRENT OF <имя курсора> <SОL-терм>

Если предложение WHERE отсутствует, то исключаются все строки таблицы. Если в предложении WHERE используется <предикат>, то исключаются строки, удовле­ творяющие <предикату>. Если WНЕRЕ-предложение имеет аргумент CURRENT OF <имя курсора>, то строка из таблицы, имя которой определено в предложении FROM, исключается, если на нее ссылается <~щя курсора>. Форма WHERE CURRENT OF может использоваться только для встроенного SQL и только с обновляемыми курсора­

ми.

EXECSQL

Синтаксис

ЕХЕС SQL <команды встроенного SOL> <SОL-терм>

ЕХЕС SQL используется для пометки начала SQL команд, встроенных в язык про­

граммирования.

FETCH

Синтаксис

ЕХЕС SQL FETCH <имя курсора>

INTO <список переменных включающего языка> <SОL-терм>

348

КомандыSQL

Команда выбирает текущую строку из резу.1ьтата ответа на <запрос> и включает ее

в <список пере.менных включающего языка 11рогра.м.11шрова11ия>, затем перемещает

указатель курсора на следующую строку. <Список пере.менных включающего языка

11рограм.111ирования> может включать индикатор успешности получения списка пере­

менных.

GRANT

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

GRANT ALL [PRIVILEGES]

1 { SELECT

1 INSERT

DELEТE

UPDATE [(<список имен столбцов>)]

REFERENCES [(<список имен столбцов>)] }., ..

ON <имя таблицы>., ..

ТО PUBLIC <идентификатор полномочий>., ..

[WITH GRANT OPTION];

ALL с указанием или без указания ключевого слова PRIVILEGES включает каж­ дую привилегию из указанного в фигурных скобках списка. PUBLIC включает настоя­

щих и будущих пользователей. По этой команде передаются указанные в списке

действия (полномочия или права доступа) с таблицей, имя которой задано с помощью ключевого слова ON. REFERENCES разрешает использовать столбцы из <списка и.111ен столбцов> в качестве родительских для внешнего ключа. Другие привилегии заключа­ ются в праве выполнять команды, указанные в таблице. Действие UPDATE, как и REFERENCES, может быть ограничено указанным множеством столбцов. GRANT OPTION наделяет правами передачи привилегий другим пользователям.

Синтаксис (общее отклонение от стандарта)

GRANT DBA

RESOURCE

CONNECT., ..

ТО <идентификатор полномочий>., ..

[IDENTIFIED ВУ > пароль>]

CONNECT дает определенные права, среди них право вести журнал. RESOURCE дает пользователю право создавать таблицы. DBA предоставляет практически неогра­ ниченные права. IDENТIFIED ВУ используется с CONNECT для изменения пароля

пользователя.

349

Источник: https://studfile.net/preview/16418473/