Режим SQL-запросов в Access, конструкции языка

Страницы работы

Содержание работы

Лабораторная работа № 4. Запросы (продолжение).

На это лабораторной мы продолжим знакомиться с построением запросов и рассмотрим еще один режим работы с запросами – режим SQL. Возможно из-за краткости описания лабораторной, не все будет сразу понятно. В таких случаях, посмотрите справку Access (она как обычно вызывается по клавише F1), где подробно описаны рассматриваемые конструкции языка SQL.

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

SELECT Book.Author FROM Book;

Итак, это предложение SELECT, где указывается, какие столбцы помещаются в результат запроса,  и откуда мы их берем. Заканчивается предложение точкой с запятой. Теперь скажем Access, что повторяющиеся строки в запросе надо отбрасывать. Делается это с помощью кодового слова DISTINCT:

SELECT DISTINCT Book.Author FROM Book;

Обратите внимание, что второй запрос кроме отбрасывания повторяющихся записей и сортирует их по возрастанию. Порядок сортировки можно задать в конструкторе запросов или в режиме SQL, вписав инструкцию ORDER BY. После инструкции ORDER BY указывается столбец, по которому сортируем. В примере первый запрос выводит список авторов в алфавитном порядке, второй – в обратном алфавитном порядке.

SELECT DISTINCT Book.Author FROM Book ORDER BY Book.Author;

SELECT DISTINCT Book.Author FROM Book ORDER BY Book.Author DESC;

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

SELECT Book_in_Lib.LibID, Book.Author, Book.Name

FROM Book INNER JOIN Book_in_Lib ON
Book.BookID = Book_in_Lib.BookID;

Здесь инструкция INNER JOIN указывает на то, что надо соединить таблицы по условию совпадения значений в столбцах Book.BookID = Book_in_Lib.BookID. Причем соединение должно быть «внутренним» - соответствующие значения должны встречаться как в одной, так и в другой таблице.

Похожие материалы

Информация о работе