- •Создание запросов в субд Access
- •6. Выборка данных в конструкторе запросов
- •6.1. Окно конструктора запросов
- •6.2. Построение условий для выбора записей
- •6.3. Упорядочение данных и группировка полей запроса
- •6.4. Общие сведения о команде select
- •6.5. Интерактивные и перекрестные запросы
- •6.6. Запросы на изменение
- •6.6.1. Виды запросов на изменение
- •6.6.2. Запрос на создание таблицы
- •6.6.3. Запрос на обновление
- •6.6.4. Запрос на добавление записей
- •6.6.5. Запрос на удаление записей
- •6.7. Примеры запросов на sql
- •6.8. Контрольные вопросы
- •6.9. Задания для самопроверки
6.4. Общие сведения о команде select
При использовании Конструктора запросов Access автоматически конвертирует созданный макет запроса в команды языка структурированных запросов SQL. При выполнении запроса Access непосредственно использует команду SELECT языка SQL.
Команда SELECT – первое слово в запросах на выборку и на создание таблицы, определяющее поля, которые должны быть в результирующей таблице. После ключевого слова SELECT задаются поля, которые должны отображаться в результирующей таблице. Если полей несколько, их имнеа разделяются запятыми. Синтаксис команды таков: SELECT Поле_1, Поле_2, Поле_3, … Упрощенный синтакис команды SELECT имеет вид:
SELECT [DISTINCT] списокВыбираемыхПолей
FROM списокТаблиц
[WHERE условиеВыборки]
[GROUP BY УсловиеГруппировки]
[ORDER BY условие Упорядочения]
[INTO имя Таблицы]
[TO FILE имяФайла [ADDITIVE] | [TO PRINT]]
Опция DISTINCT используется для исключения повторяющихся строк запроса.
Команда FROM определяет имена таблиц, содержащих поля, которые определены в команде SELECT. Это обязательная команда для инструкции SELECT. Она указывает, где искать записи.
При работе с одной таблицей, команда FROM просто определяет имя таблицы; в случае же работы с несколькими таблицами можно определять тип соединения между ними в команде FROM с помощью одного из трех выражений:
-
INNER JOIN ... ON;
-
RIGHT JOIN ... ON;
-
LEFT JOIN ... ON.
INNER JOIN ... ON определяет традиционное внутреннее объединение между таблицами.
Например:
FROM пример2!doc1 INNER JOIN пример2!vis1;
INNER JOIN пример2!pac1 ;
ON Pac1.nump = Vis1.nump ;
ON Doc1.numd = Vis1.numd;
RIGHT JOIN ... ON и LEFT JOIN ... ON работают точно также, но определяют внешнее объединение вместо внутреннего.
Команда WHERE определяет условия отбора записей и , в отличие от команд SELECT и FROM, является необязательной. Условием может быть любое корректное выражение независимо от сложности.
Например: WHERE Pac1.grrisk = "нет";
Команда GROUP BY определяет порядок группировки данных.
Например: GROUP BY Doc1.spec Команда ORDER BY определяет порядок сортировки выводимых записей. При этом сортировка производится по полю, определенному после предложения, в порядке возрастания или убывания.
Например: ORDER BY Doc1.spec Визуализация конструкции запроса на языке SQL может вы-полняться командой Вид Режим SQL, либо выбором строки Режим SQL из контекстного меню панели таблиц запроса.
В качестве иллюстрации ниже приведны примеры команды SELECT для представленных выше (см. Запрос 2, Запрос 3, Запрос 4) выборок данных.
SELECT Врачи.SpecDc, Sum(Врачи.Salary) AS [Общая ЗП]
FROM Врачи
GROUP BY Врачи.SpecDc;
SELECT Врачи.SpecDc, Count(Врачи.FullNameDc) AS Колличество
FROM Врачи
GROUP BY Врачи.SpecDc
HAVING (((Врачи.SpecDc)<>"Лор"));
SELECT Врачи.SpecDc, Sum(Врачи.Salary) AS [Суммарная ЗП]
FROM Врачи
GROUP BY Врачи.SpecDc
HAVING (((Sum(Врачи.Salary))<=60000));
При программировании законченных приложений команда SELECT широко используется для формирования разнообразных ведомостей. В связи с этим при создании запросов целесообразно сохранять SQL-операторы в качестве заготовок для будущих программ.