Понимание SQL
Шрифт:
DELETE (УДАЛИТЬ)
Синтаксис
DELETE FROM <table name>
{ [WHERE <predicate>]; }
| WHERE CURRENT OF <cursorname><SQL term
Если предложение WHERE отсутствует, ВСЕ строки таблицы удаляются. использует предикат><predicate>, строки, которые удовлетворяют условию этого предиката<predicate > удаляются. Если предложение WHERE имеет аргумент CURRENT OF(ТЕКУЩИЙ) в имени курсора<cursor name >, строка из таблицы<table name> на которую в данный момент имеется ссылка с помощью
EXEC SQL (ВЫПОЛНИТЬ SQL)
Синтаксис
EXEC SQL <embedded SQL command> <SQL term>
EXEC SQL используется чтобы указывать начало всех команд SQL, вложенных в другой язык.
FETCH (ВЫБОРКА)
Синтаксис
EXEC SQL FETCH <cursorname>
INTO <host-varlable llst><SQL term>
FETCH принимает вывод из текущей строки запроса<query>, вставляет ее в список главных переменных<host-variable list>, и перемещает курсор на следующую строку. Список<host-variable list> может включать переменную indicator в качестве целевой переменной (См. Главу 25. )
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>, будет иметься одна и только одна строка вывода.