
- •Г.В.Преснякова Основы jet - sql
- •Оглавление
- •Введение
- •Типы запросов:
- •Правила построения выражений
- •Функции
- •Запросы на выборку данных
- •Задания для самостоятельного выполнения
- •Задание псевдонимов для полей
- •Создание в запросах вычисляемых полей и использование функций
- •Предложение where
- •Запрос с параметром (параметрический запрос)
- •Задания для самостоятельного выполнения
- •Предложение group by
- •Предложение having
- •Задания для самостоятельного выполнения
- •Предложение order by
- •Задания для самостоятельного выполнения
- •Задания для самостоятельного выполнения
- •Перекрестные запросы
- •Использование псевдонимов для таблиц
- •Задания для самостоятельного выполнения
- •Подчиненные (вложенные или подзапросы) запросы
- •Подзапросы, возвращающие одну строку
- •Подзапросы возвращающие более одной строки
- •Операторы all, any и some
- •Операция not in
- •Использование подзапросов в предложении having
- •Вложенность подзапросов
- •Основные правила при формировании вложенных подзапросов
- •Операторы exists и not exists
- •Задания для самостоятельного выполнения
- •Управляющие запросы Создание таблицы
- •Модификация структуры таблицы
- •Создание индекса
- •Удаление таблицы или индекса
- •Объединение запросов
- •Задания для самостоятельного выполнения
- •Пример создание структуры таблиц и схемы данных операторами sql.
Запросы на выборку данных
Запросы на выборку данных используют оператор (инструкцию) SELECT, краткий синтаксис которого может быть описан так:
SELECT [предикат] { * имя_таблицы.* [имя_таблицы.]
имя_поля1 [ AS псевдоним1] [, [имя_таблицы.]
имя_поля2 [ AS псевдоним2] [, … ] ] }
FROM выражение [, … ] [IN имя_внешней_БД]
[ WHERE условие_отбора]
[ GROUP BY группируемые_поля ]
[ HAVING условие_группирования]
[ ORDER BY имя_поля1 [ASC DESC] [,имя_поля2
[ASC DESC] [, … ]] ;
Здесь вертикальная черта означает ИЛИ. То, что заключено в квадратные скобки, может отсутствовать. Из заключенного в фигурные скобки обязательно должна присутствовать одна из указанных альтернатив.
Предикат может принимать различные значения, в зависимости от задач, выполняемых выборкой:
ALL– подразумевается по умолчанию. Выбираются все записи, удовлетворяющие условию отбора.
DISTINCT – выводит только те записи, которые не совпадают с другими по всемвыбраннымв запросе полям.
DISTINCTROW – похоже по действию на предыдущий предикат, но отбрасывает записи не по повторяющимся значениям в отдельных выбранных полях, а по целым записям. Этот предикат игнорируется, если выводятся записи из лдной таблицы или все поля из всех таблиц.
TOP n – возвращаетn первых или последних записей из итоговой выборки в зависимости от того, какой порядок сортировки установлен с помощью предложенияORDER BY.
TOP n PERCENT – результатом выборки будет определенный процент первых или последних записей.
Пример 1. Однотабличный SQL - запрос на выборку данных
Выдать все сведения о деталях:
SELECT детали.*
FROM детали;
Здесь символ * обозначает, что динамический набор данных включает все поля таблицы Поставщики. Ключевое словоDISTINCTROW (устанавливается по умолчанию, поэтому в дальнейшем будет опускаться) означает исключение полностью повторяющихся записей из динамического набора данных.
Этот же запрос можно было написать так:
SELECT номерд, имяд, цена
FROM детали ;
или так:
SELECT *
FROM детали ;
Задания для самостоятельного выполнения
Задание 1. Вывести все сведения о поставщиках.
Задание 2. Вывести для всех поставщиков следующие сведения: номер поставщика, его имя, статус и город, в котором поставщик размещается.
Задание 3.Вывести без повторения города, в которых размещаются поставщики.
Задание 4.Вывести без повторения имена поставляемых деталей.
Задание псевдонимов для полей
Псевдонимы для полей в ответе определяются с помощью ключевого слова AS.
Пример 2. Выдать все сведения о деталях, называя поленомердв ответе какномердетали,имяд– какимядетали.
SELECT номерд AS [номер детали], имяд AS [имя детали], цена
FROM детали ;
Здесь псевдонимы взяты в квадратные скобки, так как они содержат пробелы.
Создание в запросах вычисляемых полей и использование функций
В результате выборки можно выводить не только данные из полей таблицы, но и новые данные, получаемые в результате вычислений.
Пример 3.Пусть все детали подорожали на 10%. Вывести сведения о деталях, указав их прежнюю цену и новую цену.
SELECT номерд AS [номер детали], имяд AS [имя детали], цена
AS [прежняя цена], цена * 1.1 AS [новая цена]
FROM детали;
Пример 4.Вывести следующие сведения о деталях:
количество записей в таблице детали
среднюю и максимальную цену по всем деталям
SELECT Count ( * ) AS [Число деталей],
Avg ( цена ) AS [средняя цена],
Max ( цена ) AS [максимальная цена]
FROM детали;
Здесь функция Countиспользуется для подсчета количества всех записей (символ* в качестве аргумента ) в таблице детали.