Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_практика_проектирование БД.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
316.69 Кб
Скачать

Простая выборка

При использовании механизма простой выборки предполагается, что в результате ее выполнения на экран будет выведен некоторый диапазон значений. Например, результатом выполнения запроса

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 – создает выборку, состоящую из одной строки и трех полей, содержащих минимальное значение цены, максимальное значение цены и её среднее значение.