Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
модели и запросы на
выборку
Преподаватель:
канд. тех. наук, доц. Озерова Г.П.
Реляционная модель данных
Определяет:
Реляционная модель данных
Определяет:
• способ представления данных (структуру данных);
Реляционная модель данных
Определяет:
• способ представления данных (структуру данных);
• методы защиты данных (целостность данных);
Реляционная модель данных
Определяет:
• способ представления данных (структуру данных);
• методы защиты данных (целостность данных);
• операции, которые можно выполнять с данными
(манипулирование данными).
Реляционная модель данных
Основные принципы:
Реляционная модель данных
Основные принципы:
• все данные на концептуальном уровне
представляются в виде объекта, заданного в виде
строк и столбцов, называемого отношением,
более распространенное название – таблица;
Реляционная модель данных
Основные принципы:
• все данные на концептуальном уровне
представляются в виде объекта, заданного в виде
строк и столбцов, называемого отношением,
более распространенное название – таблица;
• в пересечение строки и столбца таблицы можно
занести только одно значение;
Реляционная модель данных
Основные принципы:
• все данные на концептуальном уровне
представляются в виде объекта, заданного в виде
строк и столбцов, называемого отношением,
более распространенное название – таблица;
• в пересечение строки и столбца таблицы можно
занести только одно значение;
• все операции выполняются над целыми
отношениями и результатом этих операций
является отношение.
Реляционная модель данных
Q= { <H,R>,<H,B>}
Домены
A = { 1, 2, 3, 4, 5, 6} B = { H, T } C = { R, B } D = {12-12, 11-01, 07-89 }
Построить декартово BxCxD=
произведение {<H,R,12-12>,
Количество элементов =
Найти ошибки в
декартовом
произведении
Построить произвольное
отношение на основе
декартова произведения
АxBxСx D
Пример
Домены
A = { 1, 2, 3, 4, 5, 6} B = { H, T } C = { R, B } D = {12-12, 11-01, 07-89 }
Построить декартово BxCxD=
произведение {<H,R,12-12>, <H,B,12-12>,
Количество элементов =
Найти ошибки в
декартовом
произведении
Построить произвольное
отношение на основе
декартова произведения
АxBxСx D
Пример
Домены
A = { 1, 2, 3, 4, 5, 6} B = { H, T } C = { R, B } D = {12-12, 11-01, 07-89 }
Построить декартово BxCxD=
произведение {<H,R,12-12>, <H,B,12-12>, <H,R,11-01>,
<H,B,11-01>, <H,R,07-89>, <H,B,07-89>,
<T,R,12-12>, <T,B,12-12>, <T,R,11-01>,
Количество<T,B,11-01>,
элементов =<T,R,07-89>, <T,B,07-89>}
Найти ошибки в
12
декартовом
произведении
Построить произвольное
отношение на основе
декартова произведения
АxBxСx D
Пример
Домены
A = { 1, 2, 3, 4, 5, 6} B = { H, T } C = { R, B } D = {12-12, 11-01, 07-89 }
Построить декартово BxCxD=
произведение {<H,R,12-12>, <H,B,12-12>, <H,R,11-01>,
<H,B,11-01>, <H,R,07-89>, <H,B,07-89>,
<T,R,12-12>, <T,B,12-12>, <T,R,11-01>,
Количество<T,B,11-01>,
элементов =<T,R,07-89>, <T,B,07-89>}
Найти ошибки в AxBxC=
12
декартовом {<H,R,1>,<1,H,R>,<7,H,R>,<1,H,H>,<T,R>,<4,T,B> ….}
произведении
Построить произвольное
отношение на основе
декартова произведения A B C D
АxBxСx D 2 H B O7-89
2 T B 11-01
6 H R 12-12
Реляционная модель данных
Реляционная модель данных
Реляционная модель данных
Требования:
• может включать английские буквы, цифры и знак
подчеркивания, должно начинаться с буквы;
Имя информационного объекта
Требования:
• может включать английские буквы, цифры и знак
подчеркивания, должно начинаться с буквы;
• имя должно быть уникальным в пределах базы данных.
Имя информационного объекта
Требования:
• может включать английские буквы, цифры и знак
подчеркивания, должно начинаться с буквы;
• имя должно быть уникальным в пределах базы данных.
Рекомендации:
• имя - существительное в единственном числе,
записывается строчными буквами;
Имя информационного объекта
Требования:
• может включать английские буквы, цифры и знак
подчеркивания, должно начинаться с буквы;
• имя должно быть уникальным в пределах базы данных.
Рекомендации:
• имя - существительное в единственном числе,
записывается строчными буквами;
• имя должно быть понятным и соответствовать тому
объекту, который оно описывает;
Имя информационного объекта
Требования:
• может включать английские буквы, цифры и знак
подчеркивания, должно начинаться с буквы;
• имя должно быть уникальным в пределах базы данных.
Рекомендации:
• имя - существительное в единственном числе,
записывается строчными буквами;
• имя должно быть понятным и соответствовать тому
объекту, который оно описывает;
• имя должно быть как можно короче, максимум до 10
символов.
Имя информационного объекта, примеры
Верные имена:
store, book, book_store, books, goods, my_book
Имя информационного объекта, примеры
Верные имена:
store, book, book_store, books, goods, my_book
Неверные имена:
1_book, 123, book store, my.book
Предметная область «Книжный склад»
Требования:
• может включать английские буквы, цифры и знак
подчеркивания, должно начинаться с буквы;
Имя столбца (поля)
Требования:
• может включать английские буквы, цифры и знак
подчеркивания, должно начинаться с буквы;
• имя должно быть уникальным в пределах таблицы.
Имя столбца (поля)
Требования:
• может включать английские буквы, цифры и знак
подчеркивания, должно начинаться с буквы;
• имя должно быть уникальным в пределах таблицы.
Рекомендации:
• имя должно быть понятным и соответствовать тем
данным, которые хранятся в поле;
Имя столбца (поля)
Требования:
• может включать английские буквы, цифры и знак
подчеркивания, должно начинаться с буквы;
• имя должно быть уникальным в пределах таблицы.
Рекомендации:
• имя должно быть понятным и соответствовать тем
данным, которые хранятся в поле;
• имя может состоять из нескольких слов, тогда слова
разделяются подчеркиванием, после подчеркивания
слово пишется с маленькой буквы.
Имена столбцов, примеры
Верные имена:
title, book_name, price, author, author_name, amount,
good_name, book_price
Неверные имена:
2_title, 1_2, book name, author.name
Предметная область «Книжный склад»
Таблица book
Типы данных
Предметная область «Книжный склад»
Таблица book
Сoздание таблицы book
Таблица book
SQL(Structure Query Language)
SELECT
Выборка данных
SELECT что_выбирать
Выборка данных
SELECT что_выбирать
FROM
Выборка данных
SELECT что_выбирать
FROM откуда_выбирать
Выборка данных
SELECT что_выбирать
FROM откуда_выбирать;
Выборка всех данных из таблицы
SELECT
Выборка всех данных из таблицы
SELECT *
Выборка всех данных из таблицы
SELECT *
FROM
Выборка всех данных из таблицы
SELECT *
FROM book
Выборка всех данных из таблицы
SELECT *
FROM book;
Выборка всех данных из таблицы
SELECT *
FROM book;
Выборка отдельных столбцов
SELECT
Выборка отдельных столбцов
SELECT
имя_столбца_1,
Выборка отдельных столбцов
SELECT
имя_столбца_1,
имя_столбца_2,
Выборка отдельных столбцов
SELECT
имя_столбца_1,
имя_столбца_2, …,
Выборка отдельных столбцов
SELECT
имя_столбца_1,
имя_столбца_2, …,
имя столбца_N
Выборка отдельных столбцов
SELECT
имя_столбца_1,
имя_столбца_2, …,
имя столбца_N
FROM
Выборка отдельных столбцов
SELECT
имя_столбца_1,
имя_столбца_2, …,
имя столбца_N
FROM таблица;
Выборка отдельных столбцов
SELECT
Выборка отдельных столбцов
SELECT title,
Выборка отдельных столбцов
FROM book
Как выполняется запрос, шаг 2
SELECT
Выборка отдельных столбцов с именованием
SELECT
имя_столбца_1
Выборка отдельных столбцов с именованием
SELECT
имя_столбца_1 AS имя_1,
Выборка отдельных столбцов с именованием
SELECT
имя_столбца_1 AS имя_1,
имя_столбца_2,
Выборка отдельных столбцов с именованием
SELECT
имя_столбца_1 AS имя_1,
имя_столбца_2, …,
Выборка отдельных столбцов с именованием
SELECT
имя_столбца_1 AS имя_1,
имя_столбца_2, …,
имя столбца_N
Выборка отдельных столбцов с именованием
SELECT
имя_столбца_1 AS имя_1,
имя_столбца_2, …,
имя столбца_N имя_N
Выборка отдельных столбцов с именованием
SELECT
имя_столбца_1 AS имя_1,
имя_столбца_2, …,
имя столбца_N имя_N
FROM
Выборка отдельных столбцов с именованием
SELECT
имя_столбца_1 AS имя_1,
имя_столбца_2, …,
имя столбца_N имя_N
FROM таблица;
Выборка отдельных столбцов
SELECT
Выборка отдельных столбцов
SELECT
title
Выборка отдельных столбцов
SELECT
title AS Книга,
Выборка отдельных столбцов
SELECT
title AS Книга,
price
Выборка отдельных столбцов
SELECT
title AS Книга,
price AS Цена
Выборка отдельных столбцов
SELECT
title AS Книга,
price AS Цена
FROM
Выборка отдельных столбцов
SELECT
title AS Книга,
price AS Цена
FROM book;
Выборка отдельных столбцов
SELECT
title AS Книга,
price AS Цена
FROM book;
Как выполняется запрос, шаг 1
FROM book
Как выполняется запрос, шаг 2
SELECT
Выборка данных с вычислением
SELECT
имя_столбца_1,
Выборка данных с вычислением
SELECT
имя_столбца_1,
выражение_1,
Выборка данных с вычислением
SELECT
имя_столбца_1,
выражение_1, …,
Выборка данных с вычислением
SELECT
имя_столбца_1,
выражение_1, …,
выражение_N AS имя_N
Выборка данных с вычислением
SELECT
имя_столбца_1,
выражение_1, …,
выражение_N AS имя_N
FROM
Выборка данных с вычислением
SELECT
имя_столбца_1,
выражение_1, …,
выражение_N AS имя_N
FROM таблица;
Выборка данных с вычислением
SELECT
Выборка данных с вычислением
SELECT
title,
Выборка данных с вычислением
SELECT
title,
price
Выборка данных с вычислением
SELECT
title,
price *
Выборка данных с вычислением
SELECT
title,
price * amount
Выборка данных с вычислением
SELECT
title,
price * amount AS Стоимость
Выборка данных с вычислением
SELECT
title,
price * amount AS Стоимость
FROM
Выборка данных с вычислением
SELECT
title,
price * amount AS Стоимость
FROM book;
Выборка данных с вычислением
SELECT
title,
price * amount AS Стоимость
FROM book;
Как выполняется запрос, шаг 1
FROM book
Как выполняется запрос, шаг 2
SELECT title,
price * amount AS Стоимость
Как выполняется запрос, результат
SELECT title,
price * amount AS Стоимость
FROM book;
Арифметические выражения
Могут включать:
• имена столбцов;
• константы (3, 4.12, "Пушкин", ‘Пушкин’);
• знаки операций (+, -, *, /, %);
• встроенные функции.
Арифметические выражения
Могут включать:
• имена столбцов;
• константы (3, 4.12, "Пушкин", ‘Пушкин’);
• знаки операций (+, -, *, /, %);
• встроенные функции.
Пример
SELECT
price + price / 2,
amount % 2,
15 / 6
FROM book;
Арифметические выражения
Могут включать:
• имена столбцов;
• константы (3, 4.12, "Пушкин", ‘Пушкин’);
• знаки операций (+, -, *, /, %);
• встроенные функции.
Пример
SELECT
price + price / 2,
amount % 2,
15 / 6
FROM book;
Математические функции
Выборка данных с вычислением
SELECT
Выборка данных с вычислением
SELECT
title,
Выборка данных с вычислением
SELECT
title,
price,
Выборка данных с вычислением
SELECT
title,
price,
ROUND(( (1 + 18/100), 2) AS tax,
Выборка данных с вычислением
SELECT
title,
price,
ROUND(() / (1 + 18/100), 2) AS tax,
Выборка данных с вычислением
SELECT
title,
price,
ROUND((price * 18/100) / (1 + 18/100), 2) AS tax,
Выборка данных с вычислением
SELECT
title,
price,
ROUND((price * 18/100) / (1 + 18/100), 2) AS tax,
Выборка данных с вычислением
SELECT
title,
price,
ROUND((price * 18/100) / (), 2) AS tax,
Выборка данных с вычислением
SELECT
title,
price,
ROUND((price * 18/100) / (1 + 18/100), 2) AS tax,
Выборка данных с вычислением
SELECT
title,
price,
ROUND((price * 18/100) / (1 + 18/100))
Выборка данных с вычислением
SELECT
title,
price,
ROUND((price * 18/100) / (1 + 18/100))
Выборка данных с вычислением
SELECT
title,
price,
ROUND((price * 18/100) / (1 + 18/100), 2)
Выборка данных с вычислением
SELECT
title,
price,
ROUND((price * 18/100) / (1 + 18/100), 2) AS tax,
Выборка данных с вычислением
SELECT
title,
price,
ROUND((price * 18/100) / (1 + 18/100), 2) AS tax,
ROUND(price / (1 + 18 / 100), 2) AS price_tax
Выборка данных с вычислением
SELECT
title,
price,
ROUND((price * 18/100) / (1 + 18/100), 2) AS tax,
ROUND(price / (1 + 18 / 100), 2)
Выборка данных с вычислением
SELECT
title,
price,
ROUND((price * 18/100) / (1 + 18/100), 2) AS tax,
ROUND(price / (1 + 18 / 100), 2) AS price_tax
Выборка данных с вычислением
SELECT
title,
price,
ROUND((price * 18/100) / (1 + 18/100), 2) AS tax,
ROUND(price / (1 + 18 / 100), 2) AS price_tax
FROM
Выборка данных с вычислением
SELECT
title,
price,
ROUND((price * 18/100) / (1 + 18/100), 2) AS tax,
ROUND(price / (1 + 18 / 100), 2) AS price_tax
FROM book;
Выборка данных с вычислением
IF(логическое_выражение,
выражение_1,
выражение_2)
• вычисляется логическое_выражение,
• если оно истина – в поле заносится значение выражение_1,
• в противном случае – выражение_2.
SELECT
Выборка данных с вычислением
SELECT
title,
Выборка данных с вычислением
SELECT
title,
amount,
Выборка данных с вычислением
SELECT
title,
amount,
price,
Выборка данных с вычислением
SELECT
title,
amount,
price,
IF( , , )
Выборка данных с вычислением
SELECT
title,
amount,
price,
IF(amount < 4, , )
Выборка данных с вычислением
SELECT
title,
amount,
price,
IF(amount < 4, price * 0.5, )
Выборка данных с вычислением
SELECT
title,
amount,
price,
IF(amount < 4, price * 0.5, price * 0.7)
Выборка данных с вычислением
SELECT
title,
amount,
price,
IF(amount < 4, price * 0.5, price * 0.7) AS sale
Выборка данных с вычислением
SELECT
title,
amount,
price,
IF(amount < 4, price * 0.5, price * 0.7) AS sale
FROM
Выборка данных с вычислением
SELECT
title,
amount,
price,
IF(amount < 4, price * 0.5, price * 0.7) AS sale
FROM book;
Выборка данных с вычислением
IF(логическое_выражение,
выражение_1,
выражение_2
)
Вложенные логические функции
IF(логическое_выражение,
выражение_1,
выражение_2
)
IF(логическое_выражение,
,
выражение_2
)
Вложенные логические функции
IF(логическое_выражение,
выражение_1,
выражение_2
)
IF(логическое_выражение,
IF(логическое_выражение_1,
выражение_1_1,
выражение_1_2
),
выражение_2
)
Вложенные логические функции
IF(логическое_выражение,
выражение_1,
выражение_2
)
IF(логическое_выражение,
выражение_1,
)
Вложенные логические функции
IF(логическое_выражение,
выражение_1,
выражение_2
)
IF(логическое_выражение,
выражение_1,
IF(логическое_выражение_2,
выражение_2_1,
выражение_2_2
)
)
Вложенные логические функции
IF(логическое_выражение,
выражение_1,
выражение_2
)
IF(логическое_выражение,
,
)
Вложенные логические функции
IF(логическое_выражение,
выражение_1,
выражение_2
)
IF(логическое_выражение,
IF(логическое_выражение_1,
выражение_1_1,
выражение_1_2
),
IF(логическое_выражение_2,
выражение_2_1,
выражение_2_2
)
)
Выборка данных с вычислением
)
), 2) AS sale
FROM book;
Выборка данных с вычислением
)
Выборка данных с вычислением
)
Выборка данных с вычислением
)
)
Выборка данных с вычислением
)
)
Выборка данных с вычислением
)
)
Выборка данных с вычислением
SELECT что_выбирать
FROM откуда_выбирать
WHERE при каком условии;
SELECT
Выборка данных по условию
SELECT
title
Выборка данных по условию
SELECT
title AS Книга,
Выборка данных по условию
SELECT
title AS Книга,
price
Выборка данных по условию
SELECT
title AS Книга,
price AS Цена
Выборка данных по условию
SELECT
title AS Книга,
price AS Цена
FROM
Выборка данных по условию
SELECT
title AS Книга,
price AS Цена
FROM book
Выборка данных по условию
SELECT
title AS Книга,
price AS Цена
FROM book
WHERE
Выборка данных по условию
SELECT
title AS Книга,
price AS Цена
FROM book
WHERE price < 600;
Выборка данных по условию
SELECT
title AS Книга,
price AS Цена
FROM book
WHERE price < 600;
Как выполняется запрос, шаг 1
FROM book
Как выполняется запрос, шаг 2
SELECT
Выборка данных по условию
SELECT
title,
author,
Выборка данных по условию
SELECT
title,
author,
price * amount
Выборка данных по условию
SELECT
title,
author,
price * amount AS total
Выборка данных по условию
SELECT
title,
author,
price * amount AS total
FROM
Выборка данных по условию
SELECT
title,
author,
price * amount AS total
FROM book
Выборка данных по условию
SELECT
title,
author,
price * amount AS total
FROM book
WHERE
Выборка данных по условию
SELECT
title,
author,
price * amount AS total
FROM book
WHERE price * amount > 4000;
Выборка данных по условию
Приоритеты операций:
• круглые скобки;
• умножение (*), деление (/), остаток отделения(%);
• сложение (+), вычитание (-);
• операторы сравнения (>, <, >=, <=, =, != или <>);
• LIKE, BETWEEN, IN;
• NOT;
• AND;
• OR.
Выборка данных по условию
SELECT
Выборка данных по условию
SELECT
title,
Выборка данных по условию
SELECT
title,
author,
Выборка данных по условию
SELECT
title,
author,
price
Выборка данных по условию
SELECT
title,
author,
price
FROM
Выборка данных по условию
SELECT
title,
author,
price
FROM book
Выборка данных по условию
SELECT
title,
author,
price
FROM book
WHERE
Выборка данных по условию
SELECT
title,
author,
price
FROM book
WHERE author = 'Булгаков М.А.'
Выборка данных по условию
SELECT
title,
author,
price
FROM book
WHERE author = 'Булгаков М.А.' AND price > 600;
Выборка данных по условию
SELECT
title,
author,
price
FROM book
WHERE author = 'Булгаков М.А.' AND price > 600;
Выборка данных по условию
Пример:
Пример:
Пример:
Пример:
3 4 5
Пример:
Пример:
Пример:
Пример:
Пример:
Пример:
Пример:
Пример:
Пример:
SELECT что_выбирать
FROM откуда_выбирать
WHERE при_каком_условии
ORDER BY в_каком_порядке;
Сортировка
SELECT что_выбирать
FROM откуда_выбирать
WHERE при_каком_условии
ORDER BY в_каком_порядке;
SELECT что_выбирать
FROM откуда_выбирать
WHERE при_каком_условии
ORDER BY в_каком_порядке;
Сортировка:
• по возрастанию (в алфавитном порядке) – ASC;
• по убыванию (в обратном алфавитном порядке) – DESC.
Сортировка данных
SELECT
Сортировка данных
SELECT
author,
Сортировка данных
SELECT
author,
title,
Сортировка данных
SELECT
author,
title,
amount
Сортировка данных
SELECT
author,
title,
amount AS Количество
Сортировка данных
SELECT
author,
title,
amount AS Количество
FROM book
Сортировка данных
SELECT
author,
title,
amount AS Количество
FROM book
WHERE
Сортировка данных
SELECT
author,
title,
amount AS Количество
FROM book
WHERE price < 750
Сортировка данных
SELECT
author,
title,
amount AS Количество
FROM book
WHERE price < 750
ORDER BY
Сортировка данных
SELECT
author,
title,
amount AS Количество
FROM book
WHERE price < 750
ORDER BY author,
Сортировка данных
SELECT
author,
title,
amount AS Количество
FROM book
WHERE price < 750
ORDER BY author, amount
Сортировка данных
SELECT
author,
title,
amount AS Количество
FROM book
WHERE price < 750
ORDER BY author, amount DESC;
Сортировка данных
SELECT
author,
title,
amount AS Количество
FROM book
WHERE price < 750
ORDER BY 1, 3 DESC;
Сортировка данных
SELECT
author,
title,
amount AS Количество
FROM book
WHERE price < 750
ORDER BY 1, Количество DESC;
Сортировка данных
FROM book
Как выполняется запрос, шаг 2
SELECT
author, title,
amount AS Количество
FROM book
WHERE price < 750
ORDER BY author, amount DESC;
Как выполняется запрос, результат
SELECT
author, title,
amount AS Количество
1 FROM book
WHERE price < 750
ORDER BY author, amount DESC;
Как выполняется запрос, результат
SELECT
author, title,
amount AS Количество
1 FROM book
2 WHERE price < 750
ORDER BY author, amount DESC;
Как выполняется запрос, результат
SELECT
3 author, title,
amount AS Количество
1 FROM book
2 WHERE price < 750
ORDER BY author, amount DESC;
Как выполняется запрос, результат
SELECT
3 author, title,
amount AS Количество
1 FROM book
2 WHERE price < 750
4 ORDER BY author, amount DESC;
Как выполняется запрос, результат
SELECT
3 author, title,
amount AS Количество
1 FROM book
2 WHERE price < 750
4 ORDER BY author, amount DESC;
Резюме