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

Проверьте работу запросов, если INNER JOIN заменить сначала на LEFT JOIN, а потом на RIGHT JOIN. Посмотрите на результат и в справку Access, напишите, что означают эти конструкции.

Прим. Вместо ручного вписывания, например, LEFT JOIN, можно в конструкторе запросов выделить соответствующую связь между таблицами и, щелкнув правой клавишей, выбрать в контекстном меню пункт Параметры объединения.

В предложениях SELECT, условия, накладываемые на отбираемые записи, указываются после ключевого слова WHERE. Например, запрос на выборку книг, выпущенных с 1997 по 2000 год:

SELECT Book.Author, Book.Name, Book.Publisher, Book.Year

FROM Book

WHERE Book.Year Between 1997 And 2000;

Условие может быть описано в виде требования на принадлежность множеству, например, условие на то, что книжки выпущены издательствами «Питер» и «Азбука»

WHERE Publisher IN (“Питер”, “Азбука”)

В разделе WHERE может быть несколько условий и логических связок NOT, OR, AND. Чтобы не возникало неоднозначностей, лучше каждое из условий заключать в скобки.

Задание. Не используя конструктор запросов, напишите запрос, который выведет в обратном алфавитном порядке названия книг, выпущенных после 1999 года, фамилия автора у которых начинается с буквы «Г» или название издательства заканчивается буквой «а».

Запросы могут содержать вычисляемые поля или константы. Тогда нужно в секции FROM указать их название (задать псевдоним), удобнее это сделать, написав ключевое слово AS, хотя допустимо и пропускать его. Например, мы выводим список авторов и в столбце TODAY сегодняшнюю дату:

SELECT DISTINCT Book.Author, Date() AS TODAY

FROM Book;

Запросы можно делать и с группировкой. Например, нам надо посчитать, сколько каждое издательство выпустило книг. Мы группируем книги по названию издательства и считаем, сколько книг в каждой группе (считаем идентификаторы). Подсчет производится с помощью функции COUNT(). Она относится к разряду агрегатных, также как и функция нахождения среднего, минимума, максимума, суммы (AVG, MIN, MAX, SUM – соответственно). Самостоятельно разберитесь, как подобный запрос построить в конструкторе. А ниже просто приведена его запись в режиме SQL: