Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Управление данными. Лабораторный практикум

.pdf
Скачиваний:
0
Добавлен:
09.08.2026
Размер:
458 Кб
Скачать

GROUP BY группируя по (условие) указанному перечню столбцов с тем, чтобы получить для каждой группы единственное агрегированное значение, используя во фразе функции: SUM (арифметическая сумма всех выбранных значений данного поля, то есть сумма), COUNT (номера строк или не-NULL значения полей, которые выбрал запрос, то есть количество), MIN (наименьшее из всех выбранных значений данного поля, то есть минимум), MAX (наибольшее из всех выбранных значений данного поля, то есть максимум), AVG (усреднение всех выбранных значений данного поля, то есть среднее значение).

HAVINGимеяврезультателишьтегруппы,которыеудов- летворяют указанному перечню условий отбора групп (условие).

ORDER BY спецификация сортировки (условие) определяет порядок сортировки: ASC – сортировка по возрастанию, DESC – сортировка по убыванию.

Использование реляционных и булевых операторов. Реляционный оператор – математический символ, кото-

рый указывает на определенный тип сравнения между двумя значениями. Реляционные операторы, которыми располагает SQL:

= Равный к > Больше чем < Меньше чем

>= Больше чем или равно <= Меньше чем или равно <> Не равно

Операторы Буля и как они работают.

*AND берет два Буля (в форме A AND B) как аргументы и оценивает их по отношению к истине, верны ли они оба.

*OR берет два Буля (в форме A OR B) как аргументы и оценивает на правильность, верен ли один из них.

*NOT берет одиночный Булев (в форме NOT A) как аргумент и заменяет его значение с неверного на верное или с верного на неверное.

Использование специальных операторов в условиях.

Оператор IN определяет набор значений, в которое данное значение может или не может быть включено.

BETWEEN определяет диапазон, значения которого должны уменьшаться.

41

Цель работы

Выполнение запросов на языке структурированных запросов SQL. Использование реляционных и булевых операторов. Использование специальных операторов в условиях.

Порядок выполнения работы

Цель: создать структуру трех таблиц (таблицы  7.1, 7.2, 7.3). Первое поле – ключевое. Тип данных – по смыслу. Выполнить необходимые подстановки. Заполнить таблицы данными. Выполнить запросы (сохранять запросы через Сохранить как, меняя номер запроса).

Таблица  7.1 – Реализация

Код

web-ресурс

Компьютерная техника

web-ресурса

 

 

 

 

 

1001

003.ru

Системный блок

 

 

 

1002

porta.ru

Ноутбук, ЖК-монитор

 

 

 

1003

m3x.ru

Карманный компьютер

1004

arescomp.ru

Карманный компьютер

 

 

 

1007

digitalshop.ru

ЖК-монитор

 

 

 

Таблица  7.2 – Компьютерная техника

Код

Модель

Компьютерная техника

Цена,

Код

модели

тыс руб

web-ресурса

 

 

 

 

 

 

 

2001

ARKIS

Системный блок

32,3

1001

 

 

 

 

 

2002

O2 XDA Atom

Карманный компьютер

23

1003

 

 

 

 

 

2003

SONY

Ноутбук

50

1002

 

 

 

 

 

2004

TOSHIBA

ЖК-монитор

25

1002

 

 

 

 

 

2006

1ST(FIRST)

Системный блок

32,3

1001

 

 

 

 

 

2007

HP

ЖК-монитор

30

1007

 

 

 

 

 

2008

NEC

Карманный компьютер

6,3

1004

Таблица  7.3 – Реализация компьютерной техники

Код

Сумма приобретений, тыс руб

Дата

Код

Код

покупки

модели

web-ресурса

 

 

 

 

 

 

 

3001

30

30.07.2006

2008

1007

3002

32,3

30.07.2006

2001

1001

 

 

 

 

 

3003

6,3

30.07.2006

2007

1004

 

 

 

 

 

42

Окончание таблицы  7.3

Код

Сумма приобретений, тыс руб

Дата

Код

Код

покупки

модели

web-ресурса

 

 

 

 

 

 

 

3005

50

30.07.2006

2004

1002

 

 

 

 

 

3006

60

30.07.2006

2008

1007

 

 

 

 

 

3007

23

30.08.2006

2002

1003

 

 

 

 

 

3008

30

30.08.2006

2003

1002

 

 

 

 

 

3009

64,6

30.09.2006

2006

1001

3010

60

30.10.2006

2003

1002

 

 

 

 

 

3011

96,9

30.10.2006

2006

1001

 

 

 

 

 

1  Вывести таблицу Реализация:

SELECT [Код web-ресурса], [web-ресурс], [Компьютерная техника]

FROM Реализация;

2  Просмотреть только определенный столбец таблицы:

SELECT [web-ресурс]

FROM Реализация;

3  Изменить порядок столбцов:

SELECT Дата, [Код web-ресурса], [Код покупки], [Сумма приобретений, тыс руб]

FROM [Реализация компьютерной техники];

4  Найти web-ресурсы, где можно приобрести карманный компьютер.

SELECT [web-ресурс], [Компьютерная техника] FROM Реализация

WHERE[Компьютернаятехника]=’Карманныйкомпьютер’; 5  Найти компьютерную технику по цене более 10 тыс руб:

SELECT *

FROM [Компьютерная техника] WHERE [Цена, тыс руб]>10;

6  Найти карманный компьютер по цене более 6,4 тыс руб:

SELECT *

FROM [Компьютерная техника]

WHERE [Компьютерная техника]=’Карманный компьютер’ And [Цена, тыс руб]>6.4;

7  Найти компьютерную технику с кодами web-ресурса 1001, 1007 и 1004:

43

SELECT *

FROM [Компьютерная техника]

WHERE [Код web-ресурса] In (1001,1007,1004);

8  Извлечь из таблицы Реализация коды web-ресурсов между 1002 и 1004:

SELECT *

FROM Реализация

WHERE [Код web-ресурса] Between 1002 And 1004;

9  Найти наибольшую сумму приобретений, получаемую каждым web-ресурсом каждый день. Сгруппировать таблицу Реализация компьютерной техники по датам web-ресурсов и применить функцию MAX к каждой группе:

SELECT [Код web-ресурса], Дата, MAX(([Сумма приобретений, тыс руб]))

FROM [Реализация компьютерной техники] GROUP BY [Код web-ресурса], Дата;

10  Найти только максимальную сумму приобретений, значение которой выше 40 тыс руб:

SELECT [Код web-ресурса], Дата, MAX(([Сумма приобретений, тыс руб]))

FROM [Реализация компьютерной техники] GROUP BY [Код web-ресурса], Дата

HAVING MAX(([Сумма приобретений, тыс руб]))>40; 11  Представить коды web-ресурса, начиная с 1:

SELECT [Код web-ресурса], [web-ресурс], [Компьютерная техника], [Код web-ресурса]–1000

FROM Реализация;

12  Перед порядковым номером web-ресурса вставить слово номер:

SELECT [Код web-ресурса], [web-ресурс], [Компьютерная техника], ‘номер’, [Код web-ресурса]–1000

FROM Реализация;

13  Перед порядковым номером web-ресурса вставить слово номер и дать названия новым полям:

SELECT Реализация.[Код web-ресурса], Реализация.[web- ресурс], Реализация.[Компьютерная техника], ‘ номер ‘ AS Выражение1, [Код web-ресурса]–1000 AS Выражение2

FROM Реализация;

44

14  Упорядочить таблицу с помощью другого столбца Сумма приобретений, тыс руб, внутри упорядочения поля Код модели:

SELECT *

FROM [Реализация компьютерной техники]

ORDER BY [Код модели] DESC, [Сумма приобретений, тыс руб] DESC;

15  Разместить группы в последовательности:

SELECT [Код web-ресурса], Дата, MAX ([Сумма приобретений, тыс руб])

FROM [Реализация компьютерной техники] GROUP BY [Код web-ресурса], Дата

ORDER BY [Код web-ресурса];

16  Увидеть определенные поля таблицы Реализация, упорядоченными в порядке убывания к наименьшему значению кода web-ресурса:

SELECT [web-ресурс], [Код web-ресурса] FROM Реализация

ORDER BY 2 DESC;

Содержательная часть отчета по лабораторной работе должна включать в себя порядок выполнения работы с промежуточными результатами и файл с базой данных, сохраненной в Access, в соответствии с вариантом.

Контрольные вопросы

1  На какие операции с данными ориентирован непроцедурный язык SQL?

2  В чем особенность предложений языка SQL? 3  Где используется SQL?

4  Какая инструкция является основой SQL? 5  Для чего используется инструкция SELECT? 6  Каков синтаксис инструкции SELECT?

7  Каким символом заканчивается запрос SQL? 8  Что обозначает «*» в запросе?

9  Какие операторы могут быть использованы в запросе? 10  Что определяют ASC и DESC?

Варианты заданий

Название базы данных:

45

1)  «Бытовая техника»;

2)  «Автомобили»;

3)  «Программное обеспечение»;

4)  «Операционные системы»;

5)  «Двигатели»;

6)  «Самолеты»;

7)  «Роботы»;

8)  «Датчики»;

9)  «Спутники»;

10)  «Производственное оборудование».

46

Лабораторная работа №  8 ВЫПОЛНЕНИЕ ЗАПРОСОВ НА ЯЗЫКЕ СТРУКТУРИРОВАННЫХ ЗАПРОСОВ SQL (ЧАСТЬ  2)

Объединение таблиц. Подзапросы.

Объединение – способность определять связи между многочисленными таблицами и выводить информацию из них в терминах этих связей, всю внутри одной команды. При объединении таблицы, представленные списком в предложении FROM запроса, отделяются запятыми. Полное имя столбца таблицы фактически состоит из имени таблицы, сопровождаемого точкой и затем именем столбца.

Спомощью SQL вы можете вкладывать запросы внутрь друг друга. Обычно внутренний запрос генерирует значение, которое проверяется во внешнем запросе, определяющем, верно оно или нет.

Когда вы используете IN с подзапросом, SQL просто формирует этот набор строк из вывода подзапроса.

Операторы, ориентируемые на подзапросы, – ANY, ALL и SOME.

Спомощью ALL предикат является верным, если каждое значение, выбранное подзапросом, удовлетворяет условию в предикате (логическое высказывание) внешнего запроса.

Вы можете поместить многочисленные запросы вместе и объединить их вывод, используя предложение UNION. Предложение UNION объединяет вывод двух или более SQL-запросов в единый набор строк и столбцов.

Команды модификации языка DML.

Значения могут быть помещены и удалены из полей тремя командами языка DML (язык манипулирования данными):

INSERT (ВСТАВИТЬ),

UPDATE (МОДИФИЦИРОВАТЬ), DELETE (УДАЛИТЬ).

Команда создания таблицы.

Таблицы создаются командой CREATE TABLE. Эта команда создает пустую таблицу – таблицу без строк.

47

Цель работы

Выполнение запросов на языке структурированных запросов SQL. Объединение таблиц. Подзапросы. Использование команд модификации языка DML. Создание таблицы.

Порядок выполнения работы

1  Объединить три таблицы:

SELECT [Код покупки], [Модель], [Реализация компьютерной техники.Код модели], [Реализация компьютерной техники.Код web-ресурса]

FROM Реализация, [Компьютерная техника], [Реализация компьютерной техники]

WHERE [Компьютерная техника.Компьютерная техника] <> [Реализация.Компьютерная техника]

AND [Реализация компьютерной техники.Код модели] = [Компьютерная техника.Код модели]

AND [Реализация компьютерной техники.Код webресурса]­ = [Реализация.Код web-ресурса];

2  Найти все атрибуты таблицы Реализация компьютерной техники для ЖК-монитора:

SELECT *

FROM [Реализация компьютерной техники] WHERE [Код web-ресурса] IN

(SELECT [Код web-ресурса] FROM Реализация

WHERE [Компьютерная техника] = ‘ЖК-монитор’); 3  Оператор ANY берет все значения, выведенные подзапросом (значения Компьютерная техника в таблице Компьютерная

техника), и оценивает их как верные, если любой (ANY) из них равняется значению Компьютерная техника текущей строки внешнего запроса.

SELECT *

FROM Реализация

WHERE [Компьютерная техника] = ANY (SELECT [Компьютерная техника] FROM [Компьютерная техника]);

4  Вывести модели компьютерной техники с ценой выше, чем цена карманного компьютера.

48

SELECT *

FROM [Компьютерная техника]

WHERE [Цена,тыс руб] > ALL (SELECT [Цена,тыс руб] FROM [Компьютерная техника]

WHERE [Компьютерная техника]= ‘Карманный компьютер’); 5  Формирование объединения из двух запросов. Получить

web-ресурсы и модели системных блоков и вывести их как единое целое.

SELECT [Код web-ресурса], [web-ресурс] FROM Реализация

WHERE[Компьютернаятехника]=‘Системныйблок’ UNION SELECT [Код web-ресурса], Модель

FROM [Компьютерная техника] WHERE[Компьютернаятехника]=‘Системныйблок’;

6  Ввести строку в таблицу Реализация:

INSERT INTO Реализация

VALUES (1005, ‘digital.ru’, ‘модем’);

7  Переназначить номер web-ресурса digital.ru новому web- ресурсу:

UPDATE Реализация SET [web-ресурс] = ‘003.ru’, [Компьютерная техника] = ‘Модем’

WHERE [Код web-ресурса] = 1005;

8  Создать таблицу РеализацияКопия: CREATE TABLE РеализацияКопия ([Код web-ресурса] Integer,

[web-ресурс] char (30), [Компьютерная техника] char (30));

Содержательная часть отчета по лабораторной работе должна включать в себя порядок выполнения работы с промежуточными результатами и файл с базой данных, сохраненной в Access, в соответствии с вариантом лабораторной работы №  7.

Контрольные вопросы

1  В чем сущность объединения таблиц?

2  Каковы функции внешнего и внутреннего запросов?

49

3  Какие операторы ориентируемы на подзапросы? 4  Для чего используется предложение UNION? 5  Каково предназначение языка DML?

6  Что делают команды INSERT, UPDATE, DELETE? 7  Какая команда создает таблицы?

50

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]