Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных / БД2012 / Understanding.SQL.doc
Скачиваний:
281
Добавлен:
28.03.2015
Размер:
1.75 Mб
Скачать

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 fu nction >, постоянной < 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 >, < co lumn identifier > может быть таким же как < column spec >. Иначе < co lumn 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, дубликаты( двойники) строк будут удалены из вывода.

Соседние файлы в папке БД2012