Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБ_5.doc
Скачиваний:
4
Добавлен:
18.08.2019
Размер:
1.38 Mб
Скачать

5. Общие сведения о команде 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 для представленных выше (см. Запрос 3, Запрос 4, Запрос 6) выборок данных.

SELECT Клиент.Fam, Товар.Name, Count(Покупка.Data) AS [Count-Data], Sum([Покупка]![Kol]*[Товар]![Price]) AS [Sum]

FROM (Клиент INNER JOIN Покупка ON Клиент.Num = Покупка.Num) INNER JOIN Товар ON Покупка.Numt = Товар.Numt

GROUP BY Клиент.Fam, Товар.Name;

SELECT Товар.Name, Sum([Покупка]![Kol]*[Товар]![Price]) AS [Sum]

FROM Покупка INNER JOIN Товар ON Покупка.Numt = Товар.Numt

GROUP BY Товар.Name

HAVING (((Товар.Name)<>("сахар")))

ORDER BY Товар.Name;

SELECT Товар.Name

FROM Покупка INNER JOIN Товар ON Покупка.Numt = Товар.Numt

WHERE (((Покупка.Data)>#2/1/2002#))

GROUP BY Товар.Name

ORDER BY Товар.Name;

При программировании законченных приложений команда SELECT широко используется для формирования разнообразных ведомостей. В связи с этим при создании запросов целесообразно сохранять SQL-операторы в качестве заготовок для будущих программ.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]