Типы соединения таблиц при выполнении запроса к БД

Содержание

Слайд 2

Типы соединения таблиц при выполнении запроса к БД Таблица 1 Таблица

Типы соединения таблиц при выполнении запроса к БД

Таблица 1

Таблица

2

Таб. № ФИО

ФИО Предмет

18/01 Иванов Д.Б.

14/02 Козлов А.Ю.

22/03 Петренко С.М.

Иванов Д.Б. Базы данных

Иванов Д.Б. Паскаль

Козлов А.Ю. Пение

Глотов В.В. Физика

Внутреннее соединение Левое внешнее соединение

Таб. № ФИО Предмет

Таб. № ФИО Предмет

18/01 Иванов Д.Б. Базы данных

18/01 Иванов Д.Б. Паскаль

14/02 Козлов А.Ю. Пение

Результат – предметы, ведомые штатными преподавателями

18/01 Иванов Д.Б. Базы данных

14/02 Козлов А.Ю. Пение

18/01 Иванов Д.Б. Паскаль

22/03 Петренко С.М. Null

Результат – список штатных преподавателей с указанием предметов

Слайд 3

Типы соединения таблиц при выполнении запроса к БД Таблица 1 Таблица

Типы соединения таблиц при выполнении запроса к БД

Таблица 1

Таблица

2

Таб. № ФИО

ФИО Предмет

18/01 Иванов Д.Б.

14/02 Козлов А.Ю.

22/03 Петренко С.М.

Иванов Д.Б. Базы данных

Иванов Д.Б. Паскаль

Козлов А.Ю. Пение

Глотов В.В. Физика

Правое внешнее соединение Полное соединение

Таб. № ФИО Предмет

18/01 Иванов Д.Б. Базы данных

14/02 Козлов А.Ю. Пение

18/01 Иванов Д.Б. Паскаль

Null Глотов В.В. Физика

Результат – список всех предметов с указанием преподавателей и их штата

Таб. № ФИО Предмет

18/01 Иванов Д.Б. Базы данных

14/02 Козлов А.Ю. Пение

18/01 Иванов Д.Б. Паскаль

Null Глотов В.В. Физика

22/03 Петренко С.М. Null

Слайд 4

Примеры использования оператора SELECT Список групп, в которых проводятся экзамены SELECT

Примеры использования оператора SELECT

Список групп, в которых проводятся экзамены

SELECT DISTINCT Группы
FROM

Результаты_сессии

SELECT Группы
FROM Результаты_сессии

В списке оператора SELECT перечисляются поля, в которых
осуществляется поиск данных
В списке оператора FROM перечисляются таблицы, в которых
осуществляется поиск данных
Оператор DISTINCT используется для запрета дублирования строк

Слайд 5

Примеры использования оператора SELECT Список студентов, сдавших математику на отлично SELECT

Примеры использования оператора SELECT

Список студентов, сдавших математику на отлично

SELECT ФИО, Группа
FROM

Результаты сессии
WHERE Предмет = ‘Математика’ AND Оценка = ‘5’

SELECT Преподаватели.ФИО, Результаты_сессии.Предмет, Дата
FROM Преподаватели, Результаты_сессии
WHERE Преподаватели.Предмет = Результаты_сессии.Предмет

Расписание экзаменов преподавателей

Слайд 6

Примеры использования оператора SELECT Список студентов, имеющих несколько двоек SELECT ФИО

Примеры использования оператора SELECT

Список студентов, имеющих несколько двоек

SELECT ФИО
FROM Результаты_сессии a,

Результаты_сессии b
WHERE a.Предмет <> b.Предмет AND a.Оценка = ‘2’
AND b.Оценка = ‘2’

a, b – так называемые псевдонимы, которые используются тогда, когда необходимо
проводить вычисления с несколькими экземплярами одной таблицы

Список студентов, не сдававших какие-то предметы с указанием этих предметов

SELECT ФИО, Предмет
FROM Результаты_сессии
WHERE Оценка IS NULL

Слайд 7

Агрегированные функции SQL Количество студентов, сдавших экзамены по каждому предмету SELECT

Агрегированные функции SQL

Количество студентов, сдавших экзамены по каждому предмету

SELECT Предмет,

COUNT(*)
FROM Результаты_сессии
GROUP BY Предмет
Слайд 8

Количество студентов, сдавших экзамены по каждому предмету SELECT Предмет, COUNT(*) FROM

Количество студентов, сдавших экзамены по каждому предмету

SELECT Предмет, COUNT(*)
FROM Результаты_сессии
WHERE

Оценка IS NOT NULL
GROUP BY Предмет

Примеры использования агрегированных функций

Вычисление среднего балла для каждой группы по каждому предмету

SELECT Группа, Предмет, AVG(Предмет)
FROM Результаты_сессии
WHERE Оценка IS NOT NULL
GROUP BY Группа, Предмет

Слайд 9

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

Пример использования агрегированных функций

Список групп, в которых по одному предмету имеется

несколько двоек

SELECT Группа, Предмет
FROM Результаты_сессии
WHERE Оценка = ‘2’
GROUP BY Группа
HAVING COUNT(Группа) > 1

Пример использования предиката BETWEEN

Сведения об экзаменах, состоявшихся в период между 10.01.08 и 14.01.08

SELECT *
FROM Результаты_сессии
WHERE Дата BETWEEN 10.01.08 AND 14.01.08