Similar presentations:
Разработка, администрирование и защита БД: DML, DQL, связи и нормализация
1.
Разработка, администрирование изащита БД
3.5.1 Подготовка к ДЭ. DML, DQL
2.
DMLDML – Data Manipulation Language (язык манипулирования данными)
Язык DML содержит следующие конструкции:
INSERT – вставка новых данных
UPDATE – обновление данных
DELETE – удаление данных
MERGE – слияние данных
3.
INSERT4.
INSERT5.
Найдите ошибки1
2
3
6.
UPDATE7.
Найдите ошибки1
2
8.
DELETE9.
Найдите ошибки1
2
10.
DQLDQL – Data Query Language (язык запроса данных)
Язык DQL содержит только SELECT.
11.
SELECT12.
Найдите ошибки1
2
13.
Найдите ошибки3
4
14.
Найдите ошибки5
15.
Агрегатные функции• COUNT (col_name) — возвращает количество строк;
• SUM (col_name) — возвращает сумму значений в данном столбце;
• AVG (col_name) — возвращает среднее значение данного столбца;
• MIN (col_name) — возвращает наименьшее значение данного
столбца;
• MAX (col_name) — возвращает наибольшее значение данного
столбца.
16.
Агрегатные функции17.
Найдите ошибки1
2
3
18.
Найдите ошибки4
5
19.
Прочие полезные функции• AGE (value) – рассчитывает текущий возраст от даты
• TO_CHAR (value, format) – переводит дату в строку по заданному формату
• COALESCE (value1, value2, value3) – возвращает первое ненулевое значение из
списка
• LENGTH (value) – возвращает длину строки
20.
Запрос данных из нескольких таблиц. FROMНередко возникает ситуация, когда нам надо получить данные из
нескольких таблиц. Для соединения данных из разных таблиц можно
использовать команду SELECT.
SELECT * FROM Orders, Customers;
SELECT * FROM Orders, Customers
WHERE Orders.CustomerId = Customers.Id;
21.
Запрос данных из нескольких таблиц. UNIONUNION приводит к появлению в результирующем наборе всех строк каждого из
запросов. Операция объединения может быть выполнена только при выполнении
следующих условий:
● количество выходных столбцов каждого из запросов должно быть
одинаковым;
● выходные столбцы каждого из запросов должны быть совместимы между
собой (в порядке их следования) по типам данных;
● в результирующем наборе используются имена столбцов, заданные в первом
запросе;
● предложение ORDER BY применяется к результату соединения, поэтому оно
может быть указано только в конце всего составного запроса.
22.
Запрос данных из нескольких таблиц. UNIONSELECT model, price FROM PC
UNION
SELECT model, price FROM Laptop
ORDER BY price DESC
23.
Запрос данных из нескольких таблиц. JOINSELECT столбцы FROM таблица1
[INNER] JOIN таблица2 ON условие1
[[INNER] JOIN таблица3 ON условие2]
24.
Запрос данных из нескольких таблиц. JOIN25.
Найдите ошибки1
2
26.
ПодзапросыЗапрос внутри запроса
SELECT job
FROM jobs
WHERE worker_id IN (SELECT id FROM workers WHERE salary > 80 000)
27.
ПодзапросыСуществует несколько правил, которые применяются к подзапросам:
Подзапросы должны быть заключены в круглые скобки.
Подзапрос может иметь только один столбец в условии SELECT, если только несколько
столбцов не указаны в основном запроседля подзапроса для сравнения выбранных
столбцов.
Подзапросы, которые возвращают более одной строки, могут использоваться только с
несколькими операторами значений, такими как оператор IN.
Команда ORDER BY не может использоваться в подзапросе, хотя в основном запросе она
использоваться может. В подзапросе может использоваться команда GROUP BY для
выполнения той же функции, что и ORDER BY.
С подзапросом не может использоваться оператор BETWEEN. Однако оператор
BETWEEN может использоваться внутри подзапроса.
Не рекомендуется создавать запросы со степенью вложения больше трех. Это приводит к
увеличению времени выполнения и к сложности восприятия кода.
28.
Найдите ошибки1
2
29.
Правила игры “Табу”Нельзя:
-
произносить слова с карточки
объяснять однокоренными словами (касается всех слов на карточке)
использовать жесты
Если слово было угадано командой игрока за 30 секунд, команда получает 1
балл, если нет, команда соперников получает возможность дать ответ и
заработать балл.
30.
Разработка, администрирование изащита БД
3.5.2 Разбор ДЗ
31.
Связи между таблицами1. Один к одному.
○
○
с обязательной связью (обязательно должна быть связь);
с необязательной связью (может быть связь);
2. Один ко многим.
○
○
с обязательной связью;
с необязательной связью;
3. Многие ко многим.
32.
Связи между таблицами. Нотация Чена1:1 — «один-к-одному»;
1:N — «один-ко-многим»;
M:N — «многие-комногим».
33.
Связи между таблицами. Нотация Мартина34.
Связи между таблицами. Нотация Мартина35.
Домашнее задание. УЧЁТ АВТОЗАПЧАСТЕЙМагазин автозапчастей продаёт детали для автомобилей. Деталь имеет артикул,
наименование, описание, цену, единицу измерения, срок годности (если применимо). Каждая
деталь подходит для определённых марок автомобилей (например, «BMW X5», «Toyota
Camry»).
Марка автомобиля: производитель, модель, год выпуска (диапазон), объём двигателя.
Поставщик: название, ИНН, контактное лицо, телефон, email. Одна и та же деталь может
закупаться у разных поставщиков. У одного поставщика — много деталей.
Поставка: дата, деталь, количество, закупочная цена, номер накладной.
Заказ клиента: клиент (ФИО/организация, телефон), дата заказа, статус, сумма.
В заказе может быть несколько деталей, количество каждой фиксируется.
Склад: деталь хранится на определённом стеллаже, учитывается текущий остаток.
36.
Ищем ошибки37.
38.
39.
Приведите следующую БД “Онлайн-магазина книг” к 3НФТаблица “Заказы”
Таблица
“Книги”
40.
Разработка, администрирование изащита БД
3.5.3 Самостоятельная работа
41.
Самостоятельная работа Easy levelВыполните следующие задания:
1.
2.
3.
4.
5.
Простой селект https://sql-academy.org/ru/trainer/tasks/1
Простой фильтр https://sql-academy.org/ru/trainer/tasks/3
Поиск по шаблону https://sql-academy.org/ru/trainer/tasks/4
Агрегатная функция https://sql-academy.org/ru/trainer/tasks/28
Подзапросы https://sql-academy.org/ru/trainer/tasks/11
42.
Самостоятельная работа Medium levelВыполните следующие задания:
1.
2.
3.
4.
Объединение таблиц https://sql-academy.org/ru/trainer/tasks/43
Мат. функции https://sql-academy.org/ru/trainer/tasks/37
Группировка и агр. функции https://sql-academy.org/ru/trainer/tasks/48
Условия после группировки https://sql-academy.org/ru/trainer/tasks/13
43.
Самостоятельная работа Hard levelВыполните следующие задания:
1. https://sql-academy.org/ru/trainer/tasks/69
2. https://sql-academy.org/ru/trainer/tasks/44
44.
Домашняя работаСделайте скриншот всех решенных задач, отфильтровав по “решенным”. Фото
вашего аккаунта должно присутствовать на скриншоте для идентификации.
database