- •Занятие 1. Безусловная выборка. Синтаксис запроса.
- •Простая выборка
- •Выборка уникальных значений
- •Задания. Базовый уровень:
- •Повышенный уровень
- •Вопросы. Базовый уровень
- •Повышенный уровень
- •Занятие 2. Расширенные sql-запросы. Выборка с условием. Выборка вычисляемых значений
- •Выборка с условием
- •Выборка с использованием оператора between
- •Выборка с использованием оператора in (принадлежит)
- •Выборка с использованием шаблонов
- •Имя поля like строковая константа
- •Вопросы. Базовый уровень
- •Повышенный уровень
- •11. Каким образом получить выборку вычисляемых значений? Занятие 3. Расширенные sql-запросы. Выборка из связанных таблиц. Группировка данных. Сортировка
- •Выборка из связанных таблиц
- •Простое соединение
- •Соединение с дополнительным условием
- •Соединение трех таблиц
- •Использование группировки данных при организации запросов
- •Использование группировки данных совместно с условием
- •Использование having
- •Сортировка
- •Повышенный уровень
- •Занятие 4. Расширенные sql-запросы. Использование квантора существования в запросах. Коррелированные и некоррелированные подзапросы
- •Использование квантора существования в запросах
- •Коррелированные и некоррелированные подзапросы
- •Задания (базовый уровень):
- •Вопросы. Базовый уровень:
- •Повышенный уровень
- •Занятие 5. Расширенные sql-запросы. Модификация, удаление и добавление данных. Проверка условий целостности данных
- •Модификация данных в таблицах
- •Удаление данных
- •Добавление записей
- •Insert into таблица [(поле [,поле] ...)] values (константа [,константа]...)
- •Insert into таблица [(поле [,поле] ...)] подзапрос
- •Целостность
- •Занятие 6. Объединение, пересечение и разность отношений. Операторы union, intersect, exept
- •Объединение множеств
- •Занятие 7. Соединение отношений. Виды соединений. Оператор join.
- •Задания (базовый уровень):
- •Задания (повышенный уровень)
- •Занятие 8. Администрирование бд. Привилегии. Представления
- •Предоставление доступа к отдельным таблицам
- •Представления
- •16.3. Поясните разницу между системными и объектными привилегиями.
- •Методические указания
- •355000, Ставрополь, пр. Кулакова, 8
Простая выборка
При использовании механизма простой выборки предполагается, что в результате ее выполнения на экран будет выведен некоторый диапазон значений. Например, результатом выполнения запроса
SELECT kod FROM R1
является столбец kod из таблицы R1.
При выполнении данного запроса в результат выборки будут включены все дубликаты строк.
Выборка уникальных значений
Чтобы исключить дубликаты строк из результата выборки используется ключевое слово DISTINCT. Примером запроса, исключающего дублирование записей, является
SELECT DISTINCT kod FROM R1
Задания. Базовый уровень:
1.Составить запрос для выборки всех столбцов таблицы R1 в том же порядке, в котором они находятся в исходной таблице.
2. Составить запрос для выборки всех столбцов таблицы R1(А,В,С,D,G) таким образом, чтобы порядок столбцов в выборке изменился следующим образом: D,G, В,С,А.
3. Составить запрос для выборки уникальных значений G из таблицы R1(А,В,С,D,G).
4. Составить запрос для выборки всех значений G из таблицы R1(А,В,С,D,G).
Повышенный уровень
5. Составить запрос на естественном языке, средствами реляционной алгебры и на языке SQL.
Вопросы. Базовый уровень
9.1. Как исключить дубликаты строк из результата выборки?
9.2. Как получить Декартово произведение отношений?
Повышенный уровень
9.3. Для чего применяются курсоры в динамическом SQL?
Занятие 2. Расширенные sql-запросы. Выборка с условием. Выборка вычисляемых значений
Цель занятия: изучение синтаксиса SQL-запроса для выборки с условием и для выборки вычисляемых значений.
Теоретическое обоснование
Результирующая таблица может содержать не только поля исходных таблиц, но и результат вычислений над полями таблицы. В выражениях могут быть использованы арифметические операторы и функции. Перечень допустимых функций определяется используемым диалектом языка SQL.
Пусть в некоторой базе данных содержится таблица Товары, в которой цена (UNITPRICE) указана без учёта налога на добавленную стоимость (НДС). Поля таблицы Товары представлены в таблице 2.1. Тип переменной UNITPRICE – Currency.
Таблица 2.1 – Поля таблицы Товары
-
Kod1
UNITPRICE
1
1000.0000
2
2000.0000
3
10000.0000
Необходимо организовать выборку информации из таблицы Товары, указав цены с учетом налога на добавленную стоимость (18%).
SQL-запрос, соответствующий примеру:
SELECT Kod1, UNITPRICE * (1 + 0,18) AS ЦЕНА FROM Товары
Результат выполнения данного запроса представлен в таблице 2.2.
Таблица 2.2 – Результат выборки из таблицы Товары
-
Kod1
ЦЕНА
1
1180.0000
2
2360.0000
3
11800.0000
В запросе после ключевого слова AS записано новое название столбца таблицы.
Применение конструкции SELECT в формировании запросов с вычисляемыми полями позволяет использовать в них не только арифметические выражения, но и простые имена полей. Кроме того, в результаты выборки можно добавить константы.
Если в SQL-запрос, соответствующий примеру, добавить строку «Цена указана с учетом НДС», то он примет вид:
SELECT Kod1, UNITPRICE * (1 + 0,18) AS ЦЕНА, «Цена указана с учетом НДС» FROM Товары
Результат выполнения данного запроса представлен в таблице 2.3 .
Таблица 2.3 – Результат выполнения запроса
-
Kod1
ЦЕНА
Цена указана с учетом НДС
1
1180.0000
Цена указана с учетом НДС
2
2360.0000
Цена указана с учетом НДС
3
11800.0000
Цена указана с учетом НДС
При выборке с помощью команды SELECT можно использовать статистические (агрегатные) функции:
1) MIN(X) – вычисляет минимальное значение из множества X;
2) MAX(X) – вычисляет максимальное значение из множества X;
3) AVG(X) – вычисляет среднее арифметическое из множества значений X;
4) SUM(X) – вычисляет сумму значений множества X;
5) COUNT(X) – определяет число элементов множества X.
Примеры использования этих функций:
1) SELECT COUNT(*) FROM GOODS – создает выборку, состоящую из одной строки и одного поля, содержащего количество всех строк таблицы GOODS (товары);
2) SELECT MAX(Цена), MIN(Цена), AVG(Цена) FROM GOODS – создает выборку, состоящую из одной строки и трех полей, содержащих минимальное значение цены, максимальное значение цены и её среднее значение.
