
- •Содержание
- •Тема 1:простые запросы...........................................................................................................................
- •Тема 2: выражения в запросах.
- •Введение.
- •Лабораторная работа № 1. Простые запросы
- •Соглашение при описании синтаксиса sql
- •Синтаксис инструкции select в microsoft access
- •Создание простых запросов задание 1.
- •Решение (Первый способ)
- •Решение (Второй способ)
- •Решение
- •Исключение дубликатов строк
- •Решение
- •Решение
- •Предложение order by
- •Решение
- •Решение
- •Выбор строк (предложение where)
- •Сравнение
- •Решение
- •Диапазон
- •Решение
- •Решение
- •Решение
- •Решение
- •Итоговая функция: avg
- •Решение
- •Итоговая фунуция: count
- •Итоговая функция: sum
- •Решение
- •Итоговая функция: var, varp
- •Предложение having
- •Решение
- •Лабораторная работа № 2. Выражения в запросах.
- •Типы данных sql
- •(Национальные символы)
- •Bit (битовый)
- •Exact numeric (точный цифровой)
- •Approximate numeric (приблизительный цифровой)
- •Datetame (дата/время)
- •Interval (интервал)
- •Типы выражений
- •Задание 2.
- •Решение
- •Ввод параметров
- •Решение
- •Изменение базы данных с помощью запросов.
- •Инструкция delete (запрос на удаление)
- •Решение
- •Инструкция insert (запрос на добавление)
- •Решение
- •Инструкция select ... Into (запрос на создание таблицы)
- •Решение
- •Инструкция update (запрос на обновление)
- •Многотабличные ворпосы.
- •Список литературы
Решение
SELECT [Академичекая справка].предм, [Академичекая справка].Количествочасов
FROM [Академичекая справка]
WHERE ((([Академичекая справка].Количествочасов) Between 36 And 64))
ORDER BY [Академичекая справка].Количествочасов;
Имеется и негативная версия проверки диапазона значений (NOT BETWEEN). В этом случае требуется, чтобы проверяемое значение лежало вне границ заданного диапазона. (Разберите пример самостоятельно)
Наличие ключевого слова BETWEEN и соответствующей проверки лишь незначительно повышает выразительную мощность языка SQL, поскольку те же самые результаты могут быть достигнуты с помощью выполнения двух обычных проверок. Приведенный выше запрос можно переписать следующим образом:
SELECT [Академичекая справка].предм, [Академичекая справка].Количествочасов
FROM [Академичекая справка]
WHERE ((([Академичекая справка].Количествочасов)>=48 And ([Академичекая справка].Количествочасов)<=64))
ORDER BY [Академичекая справка].Количествочасов;
Пример №10. Из таблицы Академическая справка покажите список предметов, по которым количество часов или 36 или 64
Решение
SELECT [Академичекая справка].предм, [Академичекая справка].Количествочасов
FROM [Академичекая справка]
WHERE ((([Академичекая справка].Количествочасов)=36 Or ([Академичекая справка].Количествочасов)=64))
ORDER BY [Академичекая справка].Количествочасов;
УСЛОВИЯ ПОИСКА С ПРОВЕРКОЙ ВХОЖДЕНИЯ ВО МНОЖЕСТВО (IN/NOT IN)
Пример №11. Составьте список всех студентов, сдававших предметы АИТУ и НИТ во втором семестре.
Проверка вхождения результата вычисления выражения в заданное множество организуется с помощью ключевого слова IN. При этом проверяется, соответствует ли результат вычисления выражения одному из значений в предоставленном списке — в нашем случае это строки
Решение
SELECT [Академичекая справка].фиоСтудента, [Академичекая справка].предм, [Академичекая справка].Семестр
FROM [Академичекая справка]
WHERE ((([Академичекая справка].предм) In ("НИТ","АИТУ")) AND (([Академичекая справка].Семестр)=2));
Существует и отрицательная версия этой проверки (NOT IN), которая используется для отбора любых значений, кроме тех, которые указаны в представленном списке. Как и в случае ключевого слова BETWEEN, условие IN незначительно повышает выразительнуюмощность языка SQL — тот же самый запрос может быть переписан следующим образом:
Решение
SELECT [Академичекая справка].фиоСтудента, [Академичекая справка].предм, [Академичекая справка].Семестр
FROM [Академичекая справка]
WHERE ((([Академичекая справка].предм)="АИТУ" Or ([Академичекая справка].предм)="НИТ") AND (([Академичекая справка].Семестр)=2))
ORDER BY [Академичекая справка].предм;
СООТВЕТСВИЕ ШАБЛОНУ
* Символ * представляет любую последовательность из нуля или более символов.
? Символ ? представляет любой одиночный символ.
Пример №12 Составьте список всех студентов, фамилия которых начинается на букву М.
Решение
SELECT [Академичекая справка].фиоСтудента
FROM [Академичекая справка]
WHERE ((([Академичекая справка].фиоСтудента) Like "М*"));
Использование значения NULL в условиях поиска (IS NULL/NOT NULL)
Пример №13 Составьте список всех предметов, по которым неизвестно количество часов.
Решение
SELECT [Академичекая справка].предм, [Академичекая справка].Количествочасов
FROM [Академичекая справка]
WHERE ((([Академичекая справка].Количествочасов) Is Null));
ПРЕДЛОЖЕНИЕ GROUP BY
В инструкции SELECT задает столбцы, используемые для формирования групп из выбранных строк. Строки каждой группы содержат одно и то же значение заданного столбца (столбцов). В Microsoft Access предложение GROUP BY используется для создания итоговых запросов. Предложение GROUP BY необходимо также включать в перекрестный запрос (более подробно перекрестный запрос обсуждается в подразделе, описывающем инструкцию TRANSFORM).
Синтаксис:
GROUP BY имя-столбца, . . .
Пояснения:
Имя столбца в предложении GROUP BY может быть именем произвольного столбца из любой таблицы, упомянутой в предложении FROM, — даже в том случае, когда этот столбец не содержится в списке выбора. Если предложение GROUP BY расположено после предложения WHERE, Access создает группы из строк, выбранных после применения WHERE. Когда вы включаете предложение GROUP BY в инструкцию SELECT, список выбора должен состоять из итоговых функций SQL (AVG, COUNT, MAX, MIN, STDEV, STDEVP, SUM, VAR, VARP) или из имен столбцов, указанных в предложении GROUP BY.
В итогах все детальные данные отчета сжимаются в одну обобщающую строку. Однако очень часто в отчетах требуется формировать и промежуточные итоги. Для этой цели в операторе SELECT может указываться фраза GROUP BY. Запрос, в котором присутствует фраза GROUP BY, называется группирующим запросом, поскольку в нем группируются данные, полученные в результате выполнения операции SELECT, после чего для каждой отдельной группы создается единственная суммарная строка. Столбцы, перечисленные во фразе GROUP BY, называются группируемыми столбцами. Стандарт ISO требует, чтобы предложение SELECT и фраза GROUP BY были тесно связаны между собой. При использовании в операторе SELECT фразы GROUP BY каждый элемент списка в предложении SELECT должен иметь единственное значение для всей группы. Более того, предложение SELECT может включать только следующие типы элементов:
• имена столбцов;
• обобщающие функции;
• константы;
• выражения, включающие комбинации перечисленных выше элементов.
Все имена столбцов, приведенные в списке предложения SELECT, должны присутствовать и во фразе GROUP BY — за исключением случаев, когда имя столбца используется в обобщающей функции. Обратное правило не является справедливым — во фразе GROUP BY могут присутствовать имена столбцов, отсутствующие в списке предложения SELECT. Если совместно с фразой GROUP BY используется предложение WHERE, то оно обрабатывается первым, а группированию подвергаются только те строки, которые удовлетворяют условию поиска.
Стандартом ISO определено, что при проведении группирования все отсутствующие значения рассматриваются как равные. Если две строки таблицы в одном и том же группируемом столбце содержат значения NULL и идентичные значения во всех остальных непустых группируемых столбцах, они помещаются в одну и ту же группу