Вы находитесь на странице: 1из 323

Основы реляционной

модели и запросы на
выборку

Преподаватель:
канд. тех. наук, доц. Озерова Г.П.
Реляционная модель данных

Разработана в конце 1960-х годов Е.Ф.Коддом.


Реляционная модель данных

Разработана в конце 1960-х годов Е.Ф.Коддом.

Определяет:
Реляционная модель данных

Разработана в конце 1960-х годов Е.Ф.Коддом.

Определяет:
• способ представления данных (структуру данных);
Реляционная модель данных

Разработана в конце 1960-х годов Е.Ф.Коддом.

Определяет:
• способ представления данных (структуру данных);
• методы защиты данных (целостность данных);
Реляционная модель данных

Разработана в конце 1960-х годов Е.Ф.Коддом.

Определяет:
• способ представления данных (структуру данных);
• методы защиты данных (целостность данных);
• операции, которые можно выполнять с данными
(манипулирование данными).
Реляционная модель данных

Основные принципы:
Реляционная модель данных

Основные принципы:
• все данные на концептуальном уровне
представляются в виде объекта, заданного в виде
строк и столбцов, называемого отношением,
более распространенное название – таблица;
Реляционная модель данных

Основные принципы:
• все данные на концептуальном уровне
представляются в виде объекта, заданного в виде
строк и столбцов, называемого отношением,
более распространенное название – таблица;
• в пересечение строки и столбца таблицы можно
занести только одно значение;
Реляционная модель данных

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

Пусть даны n множеств D1,D2,...,Dn.

Тогда R есть отношение над этими множествами, если R есть множество


упорядоченных наборов вида
<d1,d2,...,dn>,
где d1 - элемент из D1, d2 - элемент из D2, ..., dn - элемент из Dn.

При этом наборы вида <d1,d2,...,dn> называются кортежами, а


множества D1,D2,...,Dn - доменами.

Каждый кортеж состоит из элементов, выбираемых из своих доменов.


Эти элементы называются атрибутами, а их значения - значениями
атрибутов.
Реляционная модель данных

ДОМЕН Множество, состоящее из различных элементов


Примеры:
A = { 1, 2, 3, 4, 5, 6} B = { H, T } C = { R, B }
D = { Машина, Самолет, Поезд }
Декартово Множество, элементами которого являются все
произведение возможные упорядоченные последовательности
элементов исходных множеств.
Пример:
B x C = { <H,R>,<H,B>,<T,R>,<T,B> }
Отношение Любое подмножество элементов декартова
(таблица) произведения
Примеры:
Q = { <H,R>,<H,B> } Q1 = { <H,R>}
Реляционная модель данных

Q= { <H,R>,<H,B>}

Кортеж Каждая строка, содержащая данные


(запись)
Пример: <H,R> - кортеж
Мощность Количество кортежей в отношении
Пример: мощность - 2
Атрибут Совокупность значений, находящихся на
(столбец) определенном месте кортежа
Пример: атрибут – [H, B]
Размерность Количество атрибутов в таблице
Пример: размерность – 2
Пример

Домены
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
Предметная область «Книжный склад»

Имя таблицы: book


Имя столбца (поля)

Требования:
• может включать английские буквы, цифры и знак
подчеркивания, должно начинаться с буквы;
Имя столбца (поля)

Требования:
• может включать английские буквы, цифры и знак
подчеркивания, должно начинаться с буквы;
• имя должно быть уникальным в пределах таблицы.
Имя столбца (поля)

Требования:
• может включать английские буквы, цифры и знак
подчеркивания, должно начинаться с буквы;
• имя должно быть уникальным в пределах таблицы.

Рекомендации:
• имя должно быть понятным и соответствовать тем
данным, которые хранятся в поле;
Имя столбца (поля)

Требования:
• может включать английские буквы, цифры и знак
подчеркивания, должно начинаться с буквы;
• имя должно быть уникальным в пределах таблицы.

Рекомендации:
• имя должно быть понятным и соответствовать тем
данным, которые хранятся в поле;
• имя может состоять из нескольких слов, тогда слова
разделяются подчеркиванием, после подчеркивания
слово пишется с маленькой буквы.
Имена столбцов, примеры

Верные имена:
title, book_name, price, author, author_name, amount,
good_name, book_price

Неверные имена:
2_title, 1_2, book name, author.name
Предметная область «Книжный склад»

Таблица book
Типы данных
Предметная область «Книжный склад»

Имя таблицы: book

• title - строка текста - VARCHAR(50);


• author - строка текста - VARCHAR(30);
• priсe - для описание денежного значения используется
числовой тип данных с двумя знаками после запятой
- DECIMAL(8,2);
• amount - целое число - INT.
Ключевой столбец (поле)

Ключевое поле является ОБЯЗАТЕЛЬНЫМ ЭЛЕМЕНТОМ


каждой реляционной таблицы.
Ключевой столбец (поле)

Ключевое поле является ОБЯЗАТЕЛЬНЫМ ЭЛЕМЕНТОМ


каждой реляционной таблицы.

Ключевое поле является уникальным для каждой записи


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

Ключевое поле является ОБЯЗАТЕЛЬНЫМ ЭЛЕМЕНТОМ


каждой реляционной таблицы.

Ключевое поле является уникальным для каждой записи


таблицы, однозначно определяет запись и в дальнейшем
будет использоваться для связей с другими таблицами.

Рекомендации по именованию ключевых полей:


имя должно состоять из двух частей:
Ключевой столбец (поле)

Ключевое поле является ОБЯЗАТЕЛЬНЫМ ЭЛЕМЕНТОМ


каждой реляционной таблицы.

Ключевое поле является уникальным для каждой записи


таблицы, однозначно определяет запись и в дальнейшем
будет использоваться для связей с другими таблицами.

Рекомендации по именованию ключевых полей:


имя должно состоять из двух частей:
• начинаться с названия таблицы, которой поле
принадлежит; 
Ключевой столбец (поле)

Ключевое поле является ОБЯЗАТЕЛЬНЫМ ЭЛЕМЕНТОМ


каждой реляционной таблицы.

Ключевое поле является уникальным для каждой записи


таблицы, однозначно определяет запись и в дальнейшем
будет использоваться для связей с другими таблицами.

Рекомендации по именованию ключевых полей:


имя должно состоять из двух частей:
• начинаться с названия таблицы, которой поле
принадлежит; 
• затем через подчеркивание необходимо указать id.
Тип данных, ключевое поле

Описание ключевого поля:

 INT PRIMARY KEY AUTO_INCREMENT

Это означает, что


• в поле будут заноситься различные целые числа,
• при этом они будут автоматически генерироваться
(каждая следующая строка будет иметь значение
ключа на 1 больше предыдущего).
Предметная область «Книжный склад»

Таблица book
Сoздание таблицы book

CREATE TABLE book(


book_id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(50),
author VARCHAR(30),
price DECIMAL(8, 2),
amount INT
);
Наполнение таблицы book

INSERT INTO book (title, author, price, amount)


VALUES
('Мастер и Маргарита','Булгаков М.А.', 670.99, 3),
('Белая гвардия','Булгаков М.А.', 540.50, 5),
('Идиот','Достоевский Ф.М.',460, 10),
('Братья Карамазовы','Достоевский Ф.М.', 799.01, 2),
('Стихотворения и поэмы','Есенин С.А.', 650.00, 15);
Предметная область «Книжный склад»

Таблица book
SQL(Structure Query Language)

SQL – это язык программирования структурированных


запросов, используется для обработки информации,
хранящейся в реляционной базе данных.

Язык универсален и обладает четко определенной


структурой.

Взаимодействие с базами данных происходит быстро, даже


для больших объемов данных.

Почти все реляционные базы данных (MySQL, PostgreSQL,


Oracle и др) используют SQL.
Выборка данных

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,
Выборка отдельных столбцов

Задание. Вывести название и цену всех книг на складе.

SELECT title, price


Выборка отдельных столбцов

Задание. Вывести название и цену всех книг на складе.

SELECT title, price


FROM
Выборка отдельных столбцов

Задание. Вывести название и цену всех книг на складе.

SELECT title, price


FROM book;
Выборка отдельных столбцов

Задание. Вывести название и цену всех книг на складе.

SELECT title, price


FROM book;
Как выполняется запрос, шаг 1

FROM book
Как выполняется запрос, шаг 2

SELECT title, price


Как выполняется запрос, шаг 3

SELECT title, price


Как выполняется запрос, результат

SELECT title, price


FROM book;
Выборка отдельных столбцов с именованием

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 title, price


Как выполняется запрос, шаг 3

SELECT title, price


Как выполняется запрос, шаг 4

SELECT title AS Книга,


price AS Цена
Как выполняется запрос, результат

SELECT title AS Книга,


price AS Цена
FROM book;
Выборка данных с вычислением

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


Как выполняется запрос, шаг 3

SELECT title, price * amount


Как выполняется запрос, шаг 4

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;
Математические функции
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book вычислим


налог на добавленную стоимость (имя столбца tax) ,
который включен в цену и составляет k = 18%,  а также
цену книги (price_tax) без него.

Формулы для вычисления:


Выборка данных с вычислением

Задание. Для каждой книги из таблицы book вычислим


налог на добавленную стоимость (имя столбца tax) ,
который включен в цену и составляет k = 18%,  а также
цену книги (price_tax) без него.

SELECT
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book вычислим


налог на добавленную стоимость (имя столбца tax) ,
который включен в цену и составляет k = 18%,  а также
цену книги (price_tax) без него.

SELECT
title,
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book вычислим


налог на добавленную стоимость (имя столбца tax) ,
который включен в цену и составляет k = 18%,  а также
цену книги (price_tax) без него.

SELECT
title,
price,
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book вычислим


налог на добавленную стоимость (имя столбца tax) ,
который включен в цену и составляет k = 18%,  а также
цену книги (price_tax) без него.

SELECT
title,
price,
ROUND(( (1 + 18/100), 2) AS tax,
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book вычислим


налог на добавленную стоимость (имя столбца tax) ,
который включен в цену и составляет k = 18%,  а также
цену книги (price_tax) без него.

SELECT
title,
price,
ROUND(() / (1 + 18/100), 2) AS tax,
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book вычислим


налог на добавленную стоимость (имя столбца tax) ,
который включен в цену и составляет k = 18%,  а также
цену книги (price_tax) без него.

SELECT
title,
price,
ROUND((price * 18/100) / (1 + 18/100), 2) AS tax,
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book вычислим


налог на добавленную стоимость (имя столбца tax) ,
который включен в цену и составляет k = 18%,  а также
цену книги (price_tax) без него.

SELECT
title,
price,
ROUND((price * 18/100) / (1 + 18/100), 2) AS tax,
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book вычислим


налог на добавленную стоимость (имя столбца tax) ,
который включен в цену и составляет k = 18%,  а также
цену книги (price_tax) без него.

SELECT
title,
price,
ROUND((price * 18/100) / (), 2) AS tax,
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book вычислим


налог на добавленную стоимость (имя столбца tax) ,
который включен в цену и составляет k = 18%,  а также
цену книги (price_tax) без него.

SELECT
title,
price,
ROUND((price * 18/100) / (1 + 18/100), 2) AS tax,
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book вычислим


налог на добавленную стоимость (имя столбца tax) ,
который включен в цену и составляет k = 18%,  а также
цену книги (price_tax) без него.

SELECT
title,
price,
ROUND((price * 18/100) / (1 + 18/100))
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book вычислим


налог на добавленную стоимость (имя столбца tax) ,
который включен в цену и составляет k = 18%,  а также
цену книги (price_tax) без него.

SELECT
title,
price,
ROUND((price * 18/100) / (1 + 18/100))
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book вычислим


налог на добавленную стоимость (имя столбца tax) ,
который включен в цену и составляет k = 18%,  а также
цену книги (price_tax) без него.

SELECT
title,
price,
ROUND((price * 18/100) / (1 + 18/100), 2)
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book вычислим


налог на добавленную стоимость (имя столбца tax) ,
который включен в цену и составляет k = 18%,  а также
цену книги (price_tax) без него.

SELECT
title,
price,
ROUND((price * 18/100) / (1 + 18/100), 2) AS tax,
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book вычислим


налог на добавленную стоимость (имя столбца tax) ,
который включен в цену и составляет k = 18%,  а также
цену книги (price_tax) без него.

SELECT
title,
price,
ROUND((price * 18/100) / (1 + 18/100), 2) AS tax,
ROUND(price / (1 + 18 / 100), 2) AS price_tax
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book вычислим


налог на добавленную стоимость (имя столбца tax) ,
который включен в цену и составляет k = 18%,  а также
цену книги (price_tax) без него.

SELECT
title,
price,
ROUND((price * 18/100) / (1 + 18/100), 2) AS tax,
ROUND(price / (1 + 18 / 100), 2)
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book вычислим


налог на добавленную стоимость (имя столбца tax) ,
который включен в цену и составляет k = 18%,  а также
цену книги (price_tax) без него.

SELECT
title,
price,
ROUND((price * 18/100) / (1 + 18/100), 2) AS tax,
ROUND(price / (1 + 18 / 100), 2) AS price_tax
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book вычислим


налог на добавленную стоимость (имя столбца tax) ,
который включен в цену и составляет k = 18%,  а также
цену книги (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
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book вычислим


налог на добавленную стоимость (имя столбца tax) ,
который включен в цену и составляет k = 18%,  а также
цену книги (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 book;
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book вычислим


налог на добавленную стоимость (имя столбца tax) ,
который включен в цену и составляет k = 18%,  а также
цену книги (price_tax) без него.
Логическая функция IF()

IF(логическое_выражение,
выражение_1,
выражение_2)

• вычисляется логическое_выражение,
• если оно истина – в поле заносится значение выражение_1,
• в противном случае –  выражение_2.

Все три параметра IF() являются ОБЯЗАТЕЛЬНЫМИ.


Выборка данных с вычислением

Задание. Для каждой книги из таблицы book установим


новую цену следующим образом: если количество книг
меньше 4, то скидка будет составлять 50% от цены, в
противном случае 30%. Последний столбец назвать sale.
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book установим


новую цену следующим образом: если количество книг
меньше 4, то скидка будет составлять 50% от цены, в
противном случае 30%. Последний столбец назвать sale.

SELECT
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book установим


новую цену следующим образом: если количество книг
меньше 4, то скидка будет составлять 50% от цены, в
противном случае 30%. Последний столбец назвать sale.

SELECT
title,
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book установим


новую цену следующим образом: если количество книг
меньше 4, то скидка будет составлять 50% от цены, в
противном случае 30%. Последний столбец назвать sale.

SELECT
title,
amount,
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book установим


новую цену следующим образом: если количество книг
меньше 4, то скидка будет составлять 50% от цены, в
противном случае 30%. Последний столбец назвать sale.

SELECT
title,
amount,
price,
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book установим


новую цену следующим образом: если количество книг
меньше 4, то скидка будет составлять 50% от цены, в
противном случае 30%. Последний столбец назвать sale.

SELECT
title,
amount,
price,
IF( , , )
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book установим


новую цену следующим образом: если количество книг
меньше 4, то скидка будет составлять 50% от цены, в
противном случае 30%. Последний столбец назвать sale.

SELECT
title,
amount,
price,
IF(amount < 4, , )
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book установим


новую цену следующим образом: если количество книг
меньше 4, то скидка будет составлять 50% от цены, в
противном случае 30%. Последний столбец назвать sale.

SELECT
title,
amount,
price,
IF(amount < 4, price * 0.5, )
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book установим


новую цену следующим образом: если количество книг
меньше 4, то скидка будет составлять 50% от цены, в
противном случае 30%. Последний столбец назвать sale.

SELECT
title,
amount,
price,
IF(amount < 4, price * 0.5, price * 0.7)
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book установим


новую цену следующим образом: если количество книг
меньше 4, то скидка будет составлять 50% от цены, в
противном случае 30%. Последний столбец назвать sale.

SELECT
title,
amount,
price,
IF(amount < 4, price * 0.5, price * 0.7) AS sale
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book установим


новую цену следующим образом: если количество книг
меньше 4, то скидка будет составлять 50% от цены, в
противном случае 30%. Последний столбец назвать sale.

SELECT
title,
amount,
price,
IF(amount < 4, price * 0.5, price * 0.7) AS sale
FROM
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book установим


новую цену следующим образом: если количество книг
меньше 4, то скидка будет составлять 50% от цены, в
противном случае 30%. Последний столбец назвать sale.

SELECT
title,
amount,
price,
IF(amount < 4, price * 0.5, price * 0.7) AS sale
FROM book;
Выборка данных с вычислением

Задание. Для каждой книги из таблицы book установим


новую цену следующим образом: если количество книг
меньше 4, то скидка будет составлять 50% от цены, в
противном случае 30%. Последний столбец назвать sale.
Вложенные логические функции

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
)
)
Выборка данных с вычислением

Задание. Усложним вычисление цены книги по скидке.


Если количество книг меньше 4 – то скидка 50%, меньше
11 – 30%, в остальных случаях – 10%.
Выборка данных с вычислением

Задание. Усложним вычисление цены книги по скидке.


Если количество книг меньше 4 – то скидка 50%, меньше
11 – 30%, в остальных случаях – 10%.
SELECT
Выборка данных с вычислением

Задание. Усложним вычисление цены книги по скидке.


Если количество книг меньше 4 – то скидка 50%, меньше
11 – 30%, в остальных случаях – 10%.
SELECT
title,
amount,
price,
Выборка данных с вычислением

Задание. Усложним вычисление цены книги по скидке.


Если количество книг меньше 4 – то скидка 50%, меньше
11 – 30%, в остальных случаях – 10%.
SELECT
title,
amount,
price,
ROUND(IF( , rice * 0.9
,

)
), 2) AS sale
FROM book;
Выборка данных с вычислением

Задание. Усложним вычисление цены книги по скидке.


Если количество книг меньше 4 – то скидка 50%, меньше
11 – 30%, в остальных случаях – 10%.
SELECT
title,
amount,
price,
ROUND(IF(amount < 4,
,

)
Выборка данных с вычислением

Задание. Усложним вычисление цены книги по скидке.


Если количество книг меньше 4 – то скидка 50%, меньше
11 – 30%, в остальных случаях – 10%.
SELECT
title,
amount,
price,
ROUND(IF(amount < 4,
price * 0.5,

)
Выборка данных с вычислением

Задание. Усложним вычисление цены книги по скидке.


Если количество книг меньше 4 – то скидка 50%, меньше
11 – 30%, в остальных случаях – 10%.
SELECT
title,
amount,
price,
ROUND(IF(amount < 4,
price * 0.5,
IF( ,
,

)
)
Выборка данных с вычислением

Задание. Усложним вычисление цены книги по скидке.


Если количество книг меньше 4 – то скидка 50%, меньше
11 – 30%, в остальных случаях – 10%.
SELECT
title,
amount,
price,
ROUND(IF(amount < 4,
price * 0.5,
IF(amount < 11,
,

)
)
Выборка данных с вычислением

Задание. Усложним вычисление цены книги по скидке.


Если количество книг меньше 4 – то скидка 50%, меньше
11 – 30%, в остальных случаях – 10%.
SELECT
title,
amount,
price,
ROUND(IF(amount < 4,
price * 0.5,
IF(amount < 11,
price * 0.7,

)
)
Выборка данных с вычислением

Задание. Усложним вычисление цены книги по скидке.


Если количество книг меньше 4 – то скидка 50%, меньше
11 – 30%, в остальных случаях – 10%.
SELECT
title,
amount,
price,
ROUND(IF(amount < 4,
price * 0.5,
IF(amount < 11,
price * 0.7,
price * 0.9
)
))
Выборка данных с вычислением

Задание. Усложним вычисление цены книги по скидке.


Если количество книг меньше 4 – то скидка 50%, меньше
11 – 30%, в остальных случаях – 10%.
SELECT
title,
amount,
price,
ROUND(IF(amount < 4,
price * 0.5,
IF(amount < 11,
price * 0.7,
price * 0.9
)
))
Выборка данных с вычислением

Задание. Усложним вычисление цены книги по скидке.


Если количество книг меньше 4 – то скидка 50%, меньше
11 – 30%, в остальных случаях – 10%.
SELECT
title,
amount,
price,
ROUND(IF(amount < 4,
price * 0.5,
IF(amount < 11,
price * 0.7,
price * 0.9
)
), 2)
Выборка данных с вычислением

Задание. Усложним вычисление цены книги по скидке.


Если количество книг меньше 4 – то скидка 50%, меньше
11 – 30%, в остальных случаях – 10%.
SELECT
title,
amount,
price,
ROUND(IF(amount < 4,
price * 0.5,
IF(amount < 11,
price * 0.7,
price * 0.9
)
), 2) AS sale
Выборка данных с вычислением

Задание. Усложним вычисление цены книги по скидке.


Если количество книг меньше 4 – то скидка 50%, меньше
11 – 30%, в остальных случаях – 10%.
SELECT
title,
amount,
price,
ROUND(IF(amount < 4,
price * 0.5,
IF(amount < 11,
price * 0.7,
price * 0.9
)
), 2) AS sale
FROM
Выборка данных с вычислением

Задание. Усложним вычисление цены книги по скидке.


Если количество книг меньше 4 – то скидка 50%, меньше
11 – 30%, в остальных случаях – 10%.
SELECT
title,
amount,
price,
ROUND(IF(amount < 4,
price * 0.5,
IF(amount < 11,
price * 0.7,
price * 0.9
)
), 2) AS sale
FROM book;
Выборка данных с вычислением

Задание. Усложним вычисление цены книги по скидке.


Если количество книг меньше 4 – то скидка 50%, меньше
11 – 30%, в остальных случаях – 10%.
Выборка по условию

SELECT что_выбирать
FROM откуда_выбирать
WHERE при каком условии;

Условие может включать:


• имена столбцов;
• арифметические выражения;
• знаки отношения (>, <, >=, <=, =, != или <>);
• логические операции (AND, OR, NOT).
Выборка данных по условию

Задание. Вывести название и цену тех книг, цены которых


меньше 600 рублей. Столбцы назвать Книга и Цена.
Выборка данных по условию

Задание. Вывести название и цену тех книг, цены которых


меньше 600 рублей. Столбцы назвать Книга и Цена.

SELECT
Выборка данных по условию

Задание. Вывести название и цену тех книг, цены которых


меньше 600 рублей. Столбцы назвать Книга и Цена.

SELECT
title
Выборка данных по условию

Задание. Вывести название и цену тех книг, цены которых


меньше 600 рублей. Столбцы назвать Книга и Цена.

SELECT
title AS Книга,
Выборка данных по условию

Задание. Вывести название и цену тех книг, цены которых


меньше 600 рублей. Столбцы назвать Книга и Цена.

SELECT
title AS Книга,
price
Выборка данных по условию

Задание. Вывести название и цену тех книг, цены которых


меньше 600 рублей. Столбцы назвать Книга и Цена.

SELECT
title AS Книга,
price AS Цена
Выборка данных по условию

Задание. Вывести название и цену тех книг, цены которых


меньше 600 рублей. Столбцы назвать Книга и Цена.

SELECT
title AS Книга,
price AS Цена
FROM
Выборка данных по условию

Задание. Вывести название и цену тех книг, цены которых


меньше 600 рублей. Столбцы назвать Книга и Цена.

SELECT
title AS Книга,
price AS Цена
FROM book
Выборка данных по условию

Задание. Вывести название и цену тех книг, цены которых


меньше 600 рублей. Столбцы назвать Книга и Цена.

SELECT
title AS Книга,
price AS Цена
FROM book
WHERE
Выборка данных по условию

Задание. Вывести название и цену тех книг, цены которых


меньше 600 рублей. Столбцы назвать Книга и Цена.

SELECT
title AS Книга,
price AS Цена
FROM book
WHERE price < 600;
Выборка данных по условию

Задание. Вывести название и цену тех книг, цены которых


меньше 600 рублей. Столбцы назвать Книга и Цена.

SELECT
title AS Книга,
price AS Цена
FROM book
WHERE price < 600;
Как выполняется запрос, шаг 1

FROM book
Как выполняется запрос, шаг 2

WHERE price < 600


Как выполняется запрос, шаг 2

WHERE price < 600


Как выполняется запрос, шаг 3

SELECT title, price


Как выполняется запрос, шаг 3

SELECT title, price


Как выполняется запрос, шаг 4

SELECT title AS Книга,


price AS Цена
Как выполняется запрос, результат

SELECT title AS Книга,


price AS Цена
FROM book
WHERE price < 600
Выборка данных по условию

Задание. Вывести название, автора и стоимость (цена


умножить на количество) тех книг, стоимость
которых больше 4000 рублей. Последний столбец назвать
total.
Выборка данных по условию

Задание. Вывести название, автора и стоимость (цена


умножить на количество) тех книг, стоимость
которых больше 4000 рублей. Последний столбец назвать
total.

SELECT
Выборка данных по условию

Задание. Вывести название, автора и стоимость (цена


умножить на количество) тех книг, стоимость
которых больше 4000 рублей. Последний столбец назвать
total.

SELECT
title,
author,
Выборка данных по условию

Задание. Вывести название, автора и стоимость (цена


умножить на количество) тех книг, стоимость
которых больше 4000 рублей. Последний столбец назвать
total.

SELECT
title,
author,
price * amount
Выборка данных по условию

Задание. Вывести название, автора и стоимость (цена


умножить на количество) тех книг, стоимость
которых больше 4000 рублей. Последний столбец назвать
total.

SELECT
title,
author,
price * amount AS total
Выборка данных по условию

Задание. Вывести название, автора и стоимость (цена


умножить на количество) тех книг, стоимость
которых больше 4000 рублей. Последний столбец назвать
total.

SELECT
title,
author,
price * amount AS total
FROM
Выборка данных по условию

Задание. Вывести название, автора и стоимость (цена


умножить на количество) тех книг, стоимость
которых больше 4000 рублей. Последний столбец назвать
total.

SELECT
title,
author,
price * amount AS total
FROM book
Выборка данных по условию

Задание. Вывести название, автора и стоимость (цена


умножить на количество) тех книг, стоимость
которых больше 4000 рублей. Последний столбец назвать
total.

SELECT
title,
author,
price * amount AS total
FROM book
WHERE
Выборка данных по условию

Задание. Вывести название, автора и стоимость (цена


умножить на количество) тех книг, стоимость
которых больше 4000 рублей. Последний столбец назвать
total.

SELECT
title,
author,
price * amount AS total
FROM book
WHERE price * amount > 4000;
Выборка данных по условию

Задание. Вывести название, автора и стоимость (цена


умножить на количество) тех книг, стоимость
которых больше 4000 рублей. Последний столбец назвать
total.
Логические выражения

Приоритеты операций:
• круглые скобки;
• умножение  (*),  деление (/), остаток отделения(%);
• сложение  (+), вычитание (-);
• операторы сравнения (>, <, >=, <=, =, != или <>);
• LIKE, BETWEEN, IN;
• NOT;
• AND;
• OR.
Выборка данных по условию

Задание. Вывести название, автора и цену тех книг,


которые написал Булгаков, ценой больше 600 рублей.
Выборка данных по условию

Задание. Вывести название, автора и цену тех книг,


которые написал Булгаков, ценой больше 600 рублей.

SELECT
Выборка данных по условию

Задание. Вывести название, автора и цену тех книг,


которые написал Булгаков, ценой больше 600 рублей.

SELECT
title,
Выборка данных по условию

Задание. Вывести название, автора и цену тех книг,


которые написал Булгаков, ценой больше 600 рублей.

SELECT
title,
author,
Выборка данных по условию

Задание. Вывести название, автора и цену тех книг,


которые написал Булгаков, ценой больше 600 рублей.

SELECT
title,
author,
price
Выборка данных по условию

Задание. Вывести название, автора и цену тех книг,


которые написал Булгаков, ценой больше 600 рублей.

SELECT
title,
author,
price
FROM
Выборка данных по условию

Задание. Вывести название, автора и цену тех книг,


которые написал Булгаков, ценой больше 600 рублей.

SELECT
title,
author,
price
FROM book
Выборка данных по условию

Задание. Вывести название, автора и цену тех книг,


которые написал Булгаков, ценой больше 600 рублей.

SELECT
title,
author,
price
FROM book
WHERE
Выборка данных по условию

Задание. Вывести название, автора и цену тех книг,


которые написал Булгаков, ценой больше 600 рублей.

SELECT
title,
author,
price
FROM book
WHERE author = 'Булгаков М.А.'
Выборка данных по условию

Задание. Вывести название, автора и цену тех книг,


которые написал Булгаков, ценой больше 600 рублей.

SELECT
title,
author,
price
FROM book
WHERE author = 'Булгаков М.А.' AND price > 600;
Выборка данных по условию

Задание. Вывести название, автора и цену тех книг,


которые написал Булгаков, ценой больше 600 рублей.

SELECT
title,
author,
price
FROM book
WHERE author = 'Булгаков М.А.' AND price > 600;
Выборка данных по условию

Задание. Вывести название, автора и цену тех книг,


которые написали Булгаков или Есенин, ценой больше 600
рублей.
Выборка данных по условию

Задание. Вывести название, автора и цену тех книг,


которые написали Булгаков или Есенин, ценой больше 600
рублей.
SELECT
title,
author,
price
FROM book
WHERE
Выборка данных по условию

Задание. Вывести название, автора и цену тех книг,


которые написали Булгаков или Есенин, ценой больше 600
рублей.
SELECT
title,
author,
price
FROM book
WHERE
author ='Булгаков М.А.'
Выборка данных по условию

Задание. Вывести название, автора и цену тех книг,


которые написали Булгаков или Есенин, ценой больше 600
рублей.
SELECT
title,
author,
price
FROM book
WHERE
author ='Булгаков М.А.' OR author ='Есенин С.А.'
Выборка данных по условию

Задание. Вывести название, автора и цену тех книг,


которые написали Булгаков или Есенин, ценой больше 600
рублей.
SELECT
title,
author,
price
FROM book
WHERE
author ='Булгаков М.А.' OR author ='Есенин С.А.'
AND price > 600;
Выборка данных по условию

Задание. Вывести название, автора и цену тех книг,


которые написали Булгаков или Есенин, ценой больше 600
рублей.
SELECT
title,
author,
price
FROM book
WHERE
author ='Булгаков М.А.' OR author ='Есенин С.А.'
AND price > 600;
Выборка данных по условию

Задание. Вывести название, автора и цену тех книг,


которые написали Булгаков или Есенин, ценой больше 600
рублей.
SELECT
title,
author,
price
FROM book
WHERE
(author='Булгаков М.А.' OR author='Есенин С.А.‘)

AND price > 600;


Выборка данных по условию

Задание. Вывести название, автора и цену тех книг,


которые написали Булгаков или Есенин, ценой больше 600
рублей.
SELECT
title,
author,
price
FROM book
WHERE
(author='Булгаков М.А.' OR author='Есенин С.А.')

AND price > 600;


Оператор BETWEEN

BETWEEN выбирает данные, относящиеся к


некоторому интервалу, включая его границы.

Пример:

amount BETWEEN 3 AND 5


Оператор BETWEEN

BETWEEN выбирает данные, относящиеся к


некоторому интервалу, включая его границы.

Пример:

amount BETWEEN 3 AND 5 3 4 5


Оператор BETWEEN

BETWEEN выбирает данные, относящиеся к


некоторому интервалу, включая его границы.

Пример:

amount BETWEEN 3 AND 5

amount >= 3 AND amount <= 5


Оператор BETWEEN

BETWEEN выбирает данные, относящиеся к


некоторому интервалу, включая его границы.

Пример:

amount BETWEEN 3 AND 5

3 4 5

amount >= 3 AND amount <= 5


Оператор IN

IN выбирает данные, соответствующие значениям из


списка. Список заключается в круглые скобки
Оператор IN

IN выбирает данные, соответствующие значениям из


списка. Список заключается в круглые скобки

Пример:

author IN ('Булгаков М.А.', 'Есенин С.А.')


Оператор IN

IN выбирает данные, соответствующие значениям из


списка. Список заключается в круглые скобки

Пример:

author IN ('Булгаков М.А.', 'Есенин С.А.')

author = 'Булгаков М.А.'


OR author = 'Есенин С.А.'
Оператор LIKE

LIKE используется для сравнения строк. Позволяет


сравнивать строки не на полное совпадение (не
совпадение), а в соответствии с шаблоном.
Шаблон может включать обычные символы и
символы-шаблоны. 
Причем обычные символы должны в точности
совпадать с символами, указанными в
строке. Символы-шаблоны могут совпадать с
произвольными элементами символьной строки.
Оператор LIKE

LIKE используется для сравнения строк. Позволяет


сравнивать строки не на полное совпадение (не
совпадение), а в соответствии с шаблоном.
Шаблон может включать обычные символы и
специальные символы. 
Причем обычные символы должны в точности
совпадать с символами, указанными в
строке. Специальные символы могут совпадать с
произвольными элементами символьной строки.
Специальные символы
Оператор LIKE

Пример:

title LIKE "Б%" – первая буква названия Б


Оператор LIKE

Пример:

title LIKE "Б%" – первая буква названия Б


title LIKE "%Б" – последняя буква названия Б
Оператор LIKE

Пример:

title LIKE "Б%" – первая буква названия Б


title LIKE "%Б" – последняя буква названия Б
title LIKE "%Б%" – Б в любом месте
Оператор LIKE

Пример:

title LIKE "Б%" – первая буква названия Б


title LIKE "%Б" – последняя буква названия Б
title LIKE "%Б%" – Б в любом месте
title LIKE "___" – название состоит ровно из 3 символо
Оператор LIKE

Пример:

title LIKE "Б%" – первая буква названия Б


title LIKE "%Б" – последняя буква названия Б
title LIKE "%Б%" – Б в любом месте
title LIKE "___" – название состоит ровно из 3 символо
title LIKE "___%", title LIKE "%___%",
Оператор LIKE

Пример:

title LIKE "Б%" – первая буква названия Б


title LIKE "%Б" – последняя буква названия Б
title LIKE "%Б%" – Б в любом месте
title LIKE "___" – название состоит ровно из 3 символо
title LIKE "___%", title LIKE "%___%",
title LIKE "%___" - состоит как минимум из 3 символов
Оператор LIKE

Пример:

title LIKE "Б%" – первая буква названия Б


title LIKE "%Б" – последняя буква названия Б
title LIKE "%Б%" – Б в любом месте
title LIKE "___" – название состоит ровно из 3 символо
title LIKE "___%", title LIKE "%___%",
title LIKE "%___" - состоит как минимум из 3 символов
title NOT LIKE "% %" - название – одно слово
Логические операторы

Задание. Вывести название, автора и количество тех книг,


в инициалах авторов которых есть буква М, а количество
принадлежит интервалу от 3 до 20 включительно.
Логические операторы

Задание. Вывести название, автора и количество тех книг,


в инициалах авторов которых есть буква М, а количество
принадлежит интервалу от 3 до 20 включительно.
SELECT
Логические операторы

Задание. Вывести название, автора и количество тех книг,


в инициалах авторов которых есть буква М, а количество
принадлежит интервалу от 3 до 20 включительно.
SELECT
title,
Логические операторы

Задание. Вывести название, автора и количество тех книг,


в инициалах авторов которых есть буква М, а количество
принадлежит интервалу от 3 до 20 включительно.
SELECT
title,
author,
Логические операторы

Задание. Вывести название, автора и количество тех книг,


в инициалах авторов которых есть буква М, а количество
принадлежит интервалу от 3 до 20 включительно.
SELECT
title,
author,
amount
Логические операторы

Задание. Вывести название, автора и количество тех книг,


в инициалах авторов которых есть буква М, а количество
принадлежит интервалу от 3 до 20 включительно.
SELECT
title,
author,
amount
FROM
Логические операторы

Задание. Вывести название, автора и количество тех книг,


в инициалах авторов которых есть буква М, а количество
принадлежит интервалу от 3 до 20 включительно.
SELECT
title,
author,
amount
FROM book
Логические операторы

Задание. Вывести название, автора и количество тех книг,


в инициалах авторов которых есть буква М, а количество
принадлежит интервалу от 3 до 20 включительно.
SELECT
title,
author,
amount
FROM book
WHERE
Логические операторы

Задание. Вывести название, автора и количество тех книг,


в инициалах авторов которых есть буква М, а количество
принадлежит интервалу от 3 до 20 включительно.
SELECT
title,
author,
amount
FROM book
WHERE
author LIKE '%М.%' AND amount BETWEEN 3 and 20;
Логические операторы

Задание. Вывести название, автора и количество тех книг,


в инициалах авторов которых есть буква М, а количество
принадлежит интервалу от 3 до 20 включительно.
Сортировка

SELECT что_выбирать
FROM откуда_выбирать
WHERE при_каком_условии
ORDER BY в_каком_порядке;
Сортировка

SELECT что_выбирать
FROM откуда_выбирать
WHERE при_каком_условии
ORDER BY в_каком_порядке;

После ORDER BY можно указать


• названия столбцов или их алиасы;
• номера столбцов в SELECT;
• выражения.
Сортировка

SELECT что_выбирать
FROM откуда_выбирать
WHERE при_каком_условии
ORDER BY в_каком_порядке;

После ORDER BY можно указать:


• названия столбцов или их алиасы;
• номера столбцов в SELECT;
• выражения.

Сортировка:
• по возрастанию (в алфавитном порядке) – ASC;
• по убыванию (в обратном алфавитном порядке) – DESC.
Сортировка данных

Задание. Вывести автора, название и


количество экземпляров книг, цены которых меньше 750
рублей. Информацию отсортировать сначала по автору в
алфавитном порядке, а затем по убыванию количества.
Сортировка данных

Задание. Вывести автора, название и


количество экземпляров книг, цены которых меньше 750
рублей. Информацию отсортировать сначала по автору в
алфавитном порядке, а затем по убыванию количества.

SELECT
Сортировка данных

Задание. Вывести автора, название и


количество экземпляров книг, цены которых меньше 750
рублей. Информацию отсортировать сначала по автору в
алфавитном порядке, а затем по убыванию количества.

SELECT
author,
Сортировка данных

Задание. Вывести автора, название и


количество экземпляров книг, цены которых меньше 750
рублей. Информацию отсортировать сначала по автору в
алфавитном порядке, а затем по убыванию количества.

SELECT
author,
title,
Сортировка данных

Задание. Вывести автора, название и


количество экземпляров книг, цены которых меньше 750
рублей. Информацию отсортировать сначала по автору в
алфавитном порядке, а затем по убыванию количества.

SELECT
author,
title,
amount
Сортировка данных

Задание. Вывести автора, название и


количество экземпляров книг, цены которых меньше 750
рублей. Информацию отсортировать сначала по автору в
алфавитном порядке, а затем по убыванию количества.

SELECT
author,
title,
amount AS Количество
Сортировка данных

Задание. Вывести автора, название и


количество экземпляров книг, цены которых меньше 750
рублей. Информацию отсортировать сначала по автору в
алфавитном порядке, а затем по убыванию количества.

SELECT
author,
title,
amount AS Количество
FROM book
Сортировка данных

Задание. Вывести автора, название и


количество экземпляров книг, цены которых меньше 750
рублей. Информацию отсортировать сначала по автору в
алфавитном порядке, а затем по убыванию количества.

SELECT
author,
title,
amount AS Количество
FROM book
WHERE
Сортировка данных

Задание. Вывести автора, название и


количество экземпляров книг, цены которых меньше 750
рублей. Информацию отсортировать сначала по автору в
алфавитном порядке, а затем по убыванию количества.

SELECT
author,
title,
amount AS Количество
FROM book
WHERE price < 750
Сортировка данных

Задание. Вывести автора, название и


количество экземпляров книг, цены которых меньше 750
рублей. Информацию отсортировать сначала по автору в
алфавитном порядке, а затем по убыванию количества.

SELECT
author,
title,
amount AS Количество
FROM book
WHERE price < 750
ORDER BY
Сортировка данных

Задание. Вывести автора, название и


количество экземпляров книг, цены которых меньше 750
рублей. Информацию отсортировать сначала по автору в
алфавитном порядке, а затем по убыванию количества.

SELECT
author,
title,
amount AS Количество
FROM book
WHERE price < 750
ORDER BY author,
Сортировка данных

Задание. Вывести автора, название и


количество экземпляров книг, цены которых меньше 750
рублей. Информацию отсортировать сначала по автору в
алфавитном порядке, а затем по убыванию количества.

SELECT
author,
title,
amount AS Количество
FROM book
WHERE price < 750
ORDER BY author, amount
Сортировка данных

Задание. Вывести автора, название и


количество экземпляров книг, цены которых меньше 750
рублей. Информацию отсортировать сначала по автору в
алфавитном порядке, а затем по убыванию количества.

SELECT
author,
title,
amount AS Количество
FROM book
WHERE price < 750
ORDER BY author, amount DESC;
Сортировка данных

Задание. Вывести автора, название и


количество экземпляров книг, цены которых меньше 750
рублей. Информацию отсортировать сначала по автору в
алфавитном порядке, а затем по убыванию количества.

SELECT
author,
title,
amount AS Количество
FROM book
WHERE price < 750
ORDER BY 1, 3 DESC;
Сортировка данных

Задание. Вывести автора, название и


количество экземпляров книг, цены которых меньше 750
рублей. Информацию отсортировать сначала по автору в
алфавитном порядке, а затем по убыванию количества.

SELECT
author,
title,
amount AS Количество
FROM book
WHERE price < 750
ORDER BY 1, Количество DESC;
Сортировка данных

Задание. Вывести автора, название и


количество экземпляров книг, цены которых меньше 750
рублей. Информацию отсортировать сначала по автору в
алфавитном порядке, а затем по убыванию количества.
Как выполняется запрос, шаг 1

FROM book
Как выполняется запрос, шаг 2

WHERE price < 750


Как выполняется запрос, шаг 2

WHERE price < 750


Как выполняется запрос, шаг 3

SELECT author, title, amount


Как выполняется запрос, шаг 3

SELECT author, title, amount


Как выполняется запрос, шаг 4

SELECT author, title,


amount AS Количество
Как выполняется запрос, шаг 5

ORDER BY author, amount DESC


Как выполняется запрос, шаг 5

ORDER BY author, amount DESC


Как выполняется запрос, результат

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;
Резюме

Реляционная модель - модель, основанная на табличных методах и


средствах представления и обработки информации.
Резюме

Реляционная модель - модель, основанная на табличных методах и


средствах представления и обработки информации.
Основные понятия реляционной модели:
Резюме

Реляционная модель - модель, основанная на табличных методах и


средствах представления и обработки информации.
Основные понятия реляционной модели:
 Отношение – таблица;
 Атрибуты – столбцы таблицы;
 Кортежи – записи (строки) таблицы.
Резюме

Реляционная модель - модель, основанная на табличных методах и


средствах представления и обработки информации.
Основные понятия реляционной модели:
 Отношение – таблица;
 Атрибуты – столбцы таблицы;
 Кортежи – записи (строки) таблицы.
Информационный объект – это таблица базы данных.
Резюме

Реляционная модель - модель, основанная на табличных методах и


средствах представления и обработки информации.
Основные понятия реляционной модели:
 Отношение – таблица;
 Атрибуты – столбцы таблицы;
 Кортежи – записи (строки) таблицы.
Информационный объект – это таблица базы данных.
При проектировании информационного объекта необходимо:
• количество столбцов и их назначение;
• название каждого столбца;
• тип данных каждого столбца.
 Добавить ключевой столбец.
Резюме

Реляционная модель - модель, основанная на табличных методах и


средствах представления и обработки информации.
Основные понятия реляционной модели:
 Отношение – таблица;
 Атрибуты – столбцы таблицы;
 Кортежи – записи (строки) таблицы.
Информационный объект – это таблица базы данных.
При проектировании информационного объекта необходимо:
 Выбрать имя таблицы.
• количество столбцов и их назначение;
• название каждого столбца;
• тип данных каждого столбца.
 Добавить ключевой столбец.
Резюме

Реляционная модель - модель, основанная на табличных методах и


средствах представления и обработки информации.
Основные понятия реляционной модели:
 Отношение – таблица;
 Атрибуты – столбцы таблицы;
 Кортежи – записи (строки) таблицы.
Информационный объект – это таблица базы данных.
При проектировании информационного объекта необходимо:
 Выбрать имя таблицы.
 Определить структуру:
• количество столбцов и их назначение;
• название каждого столбца;
• тип данных каждого столбца.
 Добавить ключевой столбец.
Резюме

Реляционная модель - модель, основанная на табличных методах и


средствах представления и обработки информации.
Основные понятия реляционной модели:
 Отношение – таблица;
 Атрибуты – столбцы таблицы;
 Кортежи – записи (строки) таблицы.
Информационный объект – это таблица базы данных.
При проектировании информационного объекта необходимо:
 Выбрать имя таблицы.
 Определить структуру:
• количество столбцов и их назначение;
• название каждого столбца;
• тип данных каждого столбца.
 Добавить ключевой столбец.
Резюме

Реляционная модель - модель, основанная на табличных методах и


средствах представления и обработки информации.
Основные понятия реляционной модели:
 Отношение – таблица;
 Атрибуты – столбцы таблицы;
 Кортежи – записи (строки) таблицы.
Информационный объект – это таблица базы данных.
При проектировании информационного объекта необходимо:
 Выбрать имя таблицы.
 Определить структуру:
• количество столбцов и их назначение;
• название каждого столбца;
• тип данных каждого столбца.
 Добавить ключевой столбец.
Резюме

SQL – это язык программирования структурированных запросов,


используется для обработки информации, хранящейся в
реляционной базе данных.
Резюме

SQL – это язык программирования структурированных запросов,


используется для обработки информации, хранящейся в
реляционной базе данных.

Его используют для:


Резюме

SQL – это язык программирования структурированных запросов,


используется для обработки информации, хранящейся в
реляционной базе данных.

Его используют для:


 создания таблиц;
 наполнения таблиц информацией;
 выборки данных из таблицы.
Резюме

Структура SQL запроса на выборку:


Резюме

Структура SQL запроса на выборку:

SELECT поля_таблицы, выражения


Резюме

Структура SQL запроса на выборку:

SELECT поля_таблицы, выражения


FROM таблица
Резюме

Структура SQL запроса на выборку:

SELECT поля_таблицы, выражения


FROM таблица
[WHERE условие_отбора]
Резюме

Структура SQL запроса на выборку:

SELECT поля_таблицы, выражения


FROM таблица
[WHERE условие_отбора]
[ORDER BY поля_таблицы];
Резюме

Структура SQL запроса на выборку:

SELECT поля_таблицы, выражения


FROM таблица
[WHERE условие_отбора]
[ORDER BY поля_таблицы];

Результат запроса – новая таблица (в базе не сохраняется).


Резюме

С помощью запроса на выборку можно:


Резюме

С помощью запроса на выборку можно:

 Выбрать столбцы таблицы, дать им имена.


Резюме

С помощью запроса на выборку можно:

 Выбрать столбцы таблицы, дать им имена.


 Провести вычисления над столбцами таблицы, результат
сохранить в виде нового столбца;
Резюме

С помощью запроса на выборку можно:

 Выбрать столбцы таблицы, дать им имена.


 Провести вычисления над столбцами таблицы, результат
сохранить в виде нового столбца;
 Выбрать строки из таблицы базы данных по некоторому условию;
Резюме

С помощью запроса на выборку можно:

 Выбрать столбцы таблицы, дать им имена.


 Провести вычисления над столбцами таблицы, результат
сохранить в виде нового столбца;
 Выбрать строки из таблицы базы данных по некоторому условию;
 Отсортировать данные в результирующей таблице по одному или
нескольким критериям.
Задание

«Интерактивный тренажер по SQL»:


• модуль 1, урок 1
• модуль 1, урок 2

«Расширенные возможности SQL»:


• модуль 1, урок 1
• модуль 1, урок 2
Спасибо за внимание!

Вам также может понравиться