Создание запросов SQL. Сравнение ANSI и Jet SQL.
Зарезервированные слова Jet SQL
Приведенные здесь таблицы предназначены для сравнения зарезервированных слов ANSI SQL и Jet SQL.
Ниже перечисляются зарезервированные слова Jet SQL, которые идентичны зарезервированным словам ANSI SQL (знаком звездочки помечены слова, которые доступны только в режиме ANSI SQL-92):
ADD | COMMIT* | FETCH* | MAX | ROLLBACK* |
ALL | CONSTRAINT | FROM | MIN | SELECT |
ALTER | COUNT | FOREIGN | NOT | SET |
ANY | CREATE | GRANT* | NULL | SOME |
ALIAS | CREATE VIEW* | HAVING | ON | TRANSACTION* |
AS | CURRENT* | IN | OR | UNION |
ASC | CURSOR* | INDEX | ORDER | UNIQUE |
AUTHORAZATI ON* | DECLARE* | INNER | OUTER | UPDATE |
AVG | DELETE | INSERT | PARAMETERS | VALUE |
BEGIN* | DESC | INTO | PRIMARY | VALUES |
BETWEEN | DISALLOW | IS | PRIVILEGES* | WHERE |
BY | DISTINCT | JOIN | PROCEDURE | WORK* |
CHECK* | DROP | KEY | REFERENCES | |
CLOSE* | DROP VIEW* | LEFT | REVOKE* | |
COLUMN | EXISTS | LIKE | RIGHT |
Зарезервированные слова, обозначающие типы данных, не включены в этот список, т. к. соответствие типов данных ANSI SQL и Jet SQL приводится ниже, в табл. 8.6. Большинство операторов сравнения в ANSI SQL и Jet SQL совпадают: =, <, =<, > и >=. Исключение составляет оператор неравенства. Оператору неравенства! = в ANSI SQL соответствует оператор <> в Jet SQL.
Как и в ANSI SQL, зарезервированное слово Jet SQL IN может быть использовано для задания списка значений в предложении WHERE или списка, созданного подчиненным запросом. Оператор IN также может использоваться для идентификации таблицы в другой базе данных.
Хотя в последней версии Jet SQL появились новые инструкции, связанные с обработкой транзакций (раньше они реализовывались с помощью процедур VBA), тем не менее существует отличие в механизме выполнения транзакции от рекомендуемого ANSI SQL:
- автоматический запуск транзакции невозможен. Чтобы начать транзакцию, ее необходимо явно запустить с помощью инструкции BEGIN TRANSACTION;
- допускается пять уровней вложения транзакций. Чтобы запустить вложенную транзакцию, воспользуйтесь инструкцией BEGIN TRANSACTION в контексте существующей транзакции;
- для присоединенных (связанных) таблиц транзакции не поддерживаются.
В обычном режиме ряд инструкций ANSI SQL не поддерживается, однако их можно реализовать другими средствами Access: меню, кнопками, диалоговыми окнами. В табл. 8.3 приведен список инструкций ANSI SQL и эквивалентные им средства Access.
Таблица 8.3. Зарезервированные слова ANSI SQL, не поддерживаемые Access SQL.
Зарезервированное слово | Эквивалент в Access |
---|---|
AUTHORIZATION | Диалоговое окно прав доступа |
BEGIN | Метод Access VBA BeginTrans |
CHECK | Свойство Условие на значение поля таблицы |
CLOSE | Кнопка системного меню Закрыть |
COMMIT | Метод Access VBA CommitTrans |
CREATE VIEW | Режим конструктора запросов и фильтры |
CURRENT | Запрос в режиме таблицы, области выделения записи |
CURSOR | Запрос в режиме таблицы |
DECLARE | Запрос в режиме таблицы (курсор поддерживается автоматически) |
DROP VIEW | Режим конструктора запросов |
FETCH | Поля в форме или отчете |
GRANT, PRIVILEGES, REVOKE | Диалоговое окно прав доступа |
ROLLBACK | Метод Access VBA RollbackTrans |
TRANSACTION | Методы транзакций в Access VBA |
VALUES | Значения, введенные в таблицы или формы |
WORK | Метод Access VBA BeginTrans |