Запросы SQL (MDB)

 Примечание.   Сведения в данном разделе относятся только к базам данных Microsoft Access (.mdb).

Запрос SQL — это запрос, создаваемый при помощи инструкций SQL (Инструкция (строка) SQL. Выражение, определяющее команду SQL, например SELECT, UPDATE или DELETE, и включающее предложения, например WHERE или ORDER BY. Инструкции/строки SQL обычно используются в запросах и в агрегатных функциях.). Язык SQL (Structured Query Language) используется при создании запросов, а также для обновления и управления реляционными базами данных, такими как базы данных Microsoft Access.

Когда пользователь создает запрос в режиме конструктора (Конструктор. Представление, в котором отображается структура следующих объектов базы данных: таблицы, запросы, формы, отчеты и макросы. В режиме конструктора можно создавать новые объекты базы данных или изменять структуру существующих.) запроса, Microsoft Access автоматически создает эквивалентную инструкцию SQL. Фактически, для большинства свойств запроса, доступных в окне свойств в режиме конструктора, имеются эквивалентные предложения или параметры языка SQL, доступные в режиме SQL (Режим SQL. Вкладка объекта, на которой выводится инструкция SQL текущего запроса или которая используется для создания запроса SQL (запроса на объединение, запроса к серверу или управляющего запроса). При создании запроса в режиме конструктора в режиме SQL автоматически создается эквивалентная инструкция SQL.). При необходимости, пользователь имеет возможность просматривать и редактировать инструкции SQL в режиме SQL. После внесения изменений в запрос в режиме SQL его вид в режиме конструктора может измениться.

Некоторые запросы, которые называют запросами SQL (Запрос SQL. Запрос, состоящий из инструкции SQL. К запросам SQL относятся подчиненные запросы, запросы к серверу, запросы на объединение и управляющие запросы.), невозможно создать в бланке запроса (Бланк запроса. Бланк, предназначенный для определения запроса или фильтра в режиме конструктора запроса или в окне расширенного фильтра. В предыдущих версиях использовался термин бланк запроса по образцу (QBE).). Для запросов к серверу (Запрос к серверу. Запрос SQL, используемый для передачи команд напрямую на сервер базы данных ODBC. Запрос к серверу позволяет напрямую работать с таблицами на сервере вместо обработки их данных с помощью ядра базы данных Microsoft Access.), управляющих запросов (Управляющий запрос. Запрос SQL, содержащий инструкции языка описания данных DDL (Data Definition Language). Такие инструкции позволяют создавать или изменять объекты в базе данных.) и запросов на объединение (Запрос на объединение. Запрос, в котором оператор UNION используется для объединения результатов двух или нескольких запросов на выборку.) необходимо создавать инструкции SQL непосредственно в окно запроса в режиме SQL. Для подчиненного запроса (Подчиненный запрос. Инструкция SQL SELECT, расположенная внутри другого запроса на выборку или запроса на изменение.) пользователь должен ввести инструкцию SQL в строку Поле или Условие отбора в бланке запроса.

ПоказатьИспользование инструкций SQL

Инструкции SQL могут быть использованы в Microsoft Access в тех местах, куда можно ввести имя таблицы, запроса или поля.

В некоторых ситуациях инструкция SQL создается автоматически. Например, при использовании мастера для создания формы или отчета, получающего данные из нескольких таблиц, автоматически создается инструкция SQL, которая становится значением свойства Источник строк (RowSource) формы или отчета. При создании списка или поля со списком с помощью мастера также создается инструкция SQL, которая становится значением свойства Источник строк (RowSource) списка или поля со списком.

Если мастер не использовался, можно создать инструкцию SQL в ячейках свойств Источник записей (RecordSource) или Источник строк (RowSource), нажав кнопку построителя Значок кнопки рядом с соответствующей ячейкой и создав запрос в режиме конструктора запроса.

Допускается также следующее программное использование инструкций SQL:

ПоказатьИспользование выражений в инструкциях SQL

Допускается ввод выражений в инструкцию SELECT, а также в предложения WHERE, ORDER BY, GROUP BY или HAVING. В качестве значений некоторых аргументов (Аргумент. Значение, предоставляющее информацию для действия, события, метода, свойства, функции или процедуры.) и свойств (Свойство. Именованный атрибут элемента управления, поля или объекта, значение которого определяет конкретную характеристику объекта (например, размер, цвет или положение на экране, а также является ли объект видимым или скрытым).) можно вводить инструкции SQL. Например, инструкции SQL используют в следующих местах:

ПоказатьЗапросы SQL

ПоказатьЗапрос на объединение

Запрос на объединение объединяет поля из двух или нескольких таблиц или запросов в одно поле в результатах запроса. Такие запросы обычно используют для объединения данных из двух таблиц. Например, может потребоваться объединение сведений из таблиц «Поставщики» и «Клиенты» о названиях и городах для всех компаний из Бразилии. После этого можно на основе запроса на объединение создать запрос на создание таблицы, генерирующий новую таблицу.

Объединение данных из двух или нескольких таблиц с помощью запроса на объединение

Выноска 1   Первая инструкция SELECT возвращает два поля, ...

Выноска 2   ... вторая инструкция SELECT возвращает два соответствующих поля, а затем ...

Выноска 3   ... объединяет значения соответствующих полей из двух таблиц в одном поле.

ПоказатьЗапрос к серверу

Запросы к серверу отправляют команды непосредственно в базы данных ODBC (База данных ODBC. База данных, для которой существует драйвер ODBC (Open Database Connectivity), позволяющий импортировать, связывать или экспортировать данные.), такие как Microsoft FoxPro, причем используются только команды, поддерживаемые сервером. Например, запрос к серверу можно использовать для загрузки записей или изменения данных. Запросы к серверу позволяют работать непосредственно с таблицами на сервере, не прибегая к их связыванию (Связывание (таблиц). Установление связи с данными из другого приложения, что позволяет просматривать и изменять данные и в исходном приложении, и в Microsoft Access.). Запросы к серверу также рекомендуется использовать для запуска сохраненных процедур (Хранимая процедура. Заранее откомпилированная последовательность инструкций SQL и необязательных управляющих инструкций, сохраненных под общим именем, которые выполняются как одна программная единица. Хранимые процедуры сохраняются в базе данных SQL и могут выполняться с помощью одного вызова из приложения.) на сервере ODBC (Протокол ODBC (Open Database Connectivity). Стандартный способ совместного доступа к базам данных из других программ. Драйверы ODBC используют структурный язык запросов (SQL) для доступа к внешним данным.).

ПоказатьУправляющий запрос

Управляющий запрос создает, удаляет или изменяет таблицы или создает индексы в таблице базы данных. Например, в следующем управляющем запросе инструкция CREATE TABLE используется для создания таблицы «Друзья». Приведенная инструкция определяет имена и типы данных (Тип данных. Характеристика поля, определяющая тип данных, который может содержать это поле. Существуют следующие типы данных: Boolean, Integer, Long, Currency, Single, Double, Date, String и Variant (по умолчанию).) для полей таблицы и создает для поля «Код» индекс (Индекс. Средство, ускоряющее поиск и сортировку в таблицы за счет использования ключевых значений, которое позволяет обеспечить уникальность строк таблицы. Первичный ключ таблицы индексируется автоматически. Не допускается создание индексов для полей с некоторыми типами данных.), делающий это поле ключевым (Первичный ключ. Одно или несколько полей (столбцов), комбинация значений которых однозначно определяет каждую запись в таблице. Первичный ключ не допускает значений Null и всегда должен иметь уникальный индекс. Первичный ключ используется для связывания таблицы с внешними ключами в других таблицах.).

CREATE TABLE Друзья
([Код] integer,
[Фамилия] text,
[Имя] text,
[Дата рождения] date,
[Телефон] text,
[Заметки] мемо,
CONSTRAINT [Индекс1] PRIMARY KEY ([Код]));

ПоказатьПодчиненный запрос

Подчиненный запрос представляет собой инструкцию SQL SELECT, вложенную в запрос на выборку или запрос на изменение. Чтобы определить новое поле, данную инструкцию можно ввести в строку Поле в бланке запроса (Бланк запроса. Бланк, предназначенный для определения запроса или фильтра в режиме конструктора запроса или в окне расширенного фильтра. В предыдущих версиях использовался термин бланк запроса по образцу (QBE).). Чтобы указать для данного поля условие отбора, введите инструкцию в строку Условие отбора. Подчиненные запросы используются для следующего:

  • проверка наличия результатов подчиненного запроса (используются зарезервированные слова EXISTS или NOT EXISTS);
  • поиск значений в основном запросе, которые равны, превышают или меньше значений, возвращаемых подчиненным запросом (используются зарезервированные слова ANY, IN или ALL);
  • создания подчиненных запросов внутри подчиненных запросов (вложенные запросы).
 
 
Применимо к:
Access 2003