Лабораторная работа №3
Создание запросов на сервере MySQL
Цель работы: изучить инструкции языка SQL, манипулирующие табличными данными.
Методические указания
Здесь под запросом понимается SQL - инструкция, выполняя которую сервер либо обеспечивает выборку и просмотр табличных данных, либо их изменение, т.е. добавление, удаление или редактирование.
Для выборки и просмотра табличных данных используется инструкция
SELECT, имеющая следующий синтаксис.
SELECT список полей
FROM список таблиц
WHERE условие фильтрации записей
GROUP BY список полей
ORDER BY список полей
В строке «SELECT …» перечисляются поля, из которых выбираются значения. В строке «FROM …» перечисляются таблицы, из которых выбирается информация. В строке «WHERE …» записывается условие для отбора записей. В строке «GROUP BY …» перечисляются поля для группирования выбранных записей. В строке «ORDER BY …»
перечисляются поля, по значениям которых записи будут отсортированы.
Условие отбора используется в случае, если нет необходимости выводить всю информацию из таблиц (или таблицы). Например, если нужно вывести информацию только по одному клиенту.
Группировка записей может выполняться по значениям одного или нескольких полей записей. В последнем случае группировка сначала выполняется по первому полю, затем полученные группы разбиваются на подгруппы по второму полю и т.д.
Сортировка используется для вывода результатов выполнения запросов в определенном порядке. По умолчанию, сортировка выполняется по возрастанию значений поля, для выполнения сортировки по убыванию значений используется ключевое слово DESC после названия поля.
Сортировка может выполняться как по одному полю, так и по нескольким.
При сортировке по нескольким полям, сначала производится сортировка по значению первого указанного поля, затем записи с одинаковыми значениями первого поля сортируются по значению второго поля, и т.д.
Если Select–запрос выполняет выборку из связанных таблиц, то необходимо описать связь между этими таблицами в тексте запроса,
используя ключевые слова INNER JOIN .
Insert-запросы применяются для вставки записей в таблицы БД. Такие запросы позволяют не только записывать данные в таблицу, но и переписывать данные из одной таблицы в другую.
Синтаксис Insert-запроса:
INSERT INTO название таблицы (список полей)
VALUES (значения).
INSERT INTO имя_таблицы
FROM имя_таблицы
WHERE условие.
Update-запросы позволяют изменять данные в таблице. Одновременно можно обновлять несколько записей в одной таблице.
Синтаксис Update-запроса: UPDATE название таблицы
SET название поля = ‘новое значение’
WHERE условие отбора
Delete запросы - удаляют записи из таблицы БД.
Синтаксис:
DELETE FROM имя таблицы
WHERE условие отбора
Пример.
Рассмотрим несколько запросов к БД из ЛР №2. Запрос: выбрать все данные из таблицы «Клиенты».
SELECT * FROM CLIENTS;
Запрос: выбрать все фамилии клиентов, начинающиеся на букву А, расположив их в алфавитном порядке.
SELECT [CLIENTS].[FIO]
FROM CLIENTS
WHERE (([CLIENTS].[FIO] LIKE “A*”))
ORDER BY [CLIENTS].[FIO];
Запрос: выбрать ФИО клиента и типа его заказа для клиента с номером 2.
SELECT [CLIENTS].[FIO], [ORDERS].[ TYPE]
FROM [CLIENTS] INNER JOIN [ORDERS] ON [CLIENTS].[C_NO] = [ORDERS].[C_NO]
WHERE (([CLIENTS].[C_NO])="2");
Можно также записать этот запрос без использования оператора
INNER JOIN, для чего необходимо прописать связь между таблицами в условии отбора.
SELECT [CLIENTS].[FIO], [ORDERS].[ TYPE]
FROM [CLIENTS], [ORDERS]
WHERE (([CLIENTS].[C_NO])="2") AND [CLIENTS].[C_NO] = [ORDERS].[C_NO];
Запрос: перенести из таблицы «Клиенты» в Таблицу1 записи о клиентах с фамилией на букву О.
INSERT INTO [TAB1]
FROM [CLIENTS]
WHERE (([CLIENTS].[FIO] LIKE “O*”));
Запрос: обновить информацию об адресе для клиента с номером 2.
UPDATE [CLIENTS]
SET ADDR=’Gorohovaya 13’
WHERE C_NO=’2’;
Запрос: удалить запись о клиенте с номером 1.
DELETE FROM CLIENTS
WHERE C_NO=’1’;
Порядок выполнения работы.
1.Создать однотабличный запрос на выборку с условием фильтрации.
2.Создать 2 запроса на выборку к нескольким таблицам с условием фильтрации, сортировкой и группировкой.
3.Создать запросы на обновление и удаление данных.
Содержание отчета
1.Цель работы.
2.Схема данных.
3.Описание на языке SQL созданных запросов.
4.Скриншоты созданных запросов и результатов их выполнения.
5.Вывод в формате эссе
6.Список использованных источников
Вопросы для самопроверки
1.Что такое SQL-запрос?
2.Какие бывают виды запросов?
3.Что такое условие фильтрации?
4.Как в запросе может быть обозначена связь между таблицами?
Пример выполнения
1. Цель работы
Изучить инструкции языка SQL, манипулирующие табличными данными.
2. Ход работы
Входе лабораторной работы были созданы 5 запросов.
1.Однотабличный запрос на выборку с условием фильтрации.
Запрос выводит клиента с фамилией Ветошев. Код и результат запроса представлены на рисунке 1.
Рисунок 1 — Запрос 1
2. 2 запроса на выборку к нескольким таблицам с условием фильтрации, сортировкой и группировкой.
Запрос №2 выбирает заказ под номером 2 и выводит фамилию клиента который его приобрел (рисунок 2).
Рисунок 2 — Запрос 2 Запрос №3 выводит клиентов у которых не готов заказ (рисунок 3).
Рисунок 3 — Запрос 3
3.Запросы на обновление и удаление данных.
Запрос №4 обновляет адрес у клиента под номером 1 (рисунок 4-5)
Рисунок 4 — Код запроса№4
Рисунок 5 – Результат добавления
2
Запрос №5 удаляет из таблицы заказы – заказ под номером 4 (рисунок 6-7).
Рисунок 6 — Код запроса№5
Рисунок 7 – Результат удаления
3