- •Практика по созданию бд.
- •Часть 2. Язык sql
- •Простейшая инструкция select для одной таблицы
- •Простейшая инструкция select для нескольких таблиц. Inner join
- •Полная инструкция select. Предложения
- •Предложение order by (Сортировка)
- •Предикаты Top n, distinct
- •Занятие 3. Инструкция select
- •Фильтрация. Операторы or, and, in, is null.
- •Фильтрация. Логический оператор like
- •Условным оператором iif
- •Запрос с параметром
Простейшая инструкция select для нескольких таблиц. Inner join
SELECT поле1, поле2, …, полеN
FROM таблица1 INNER JOIN таблица2 ON таблица1.ID = таблица2.ID_M
SELECT
* FROM
Преподаватели
INNER
JOIN
Должности ON
Преподаватели.ID_Д
= Должности.ID
SELECT
Фамилия,
Должность FROM
Преподаватели
INNER
JOIN
Должности ON
Преподаватели.ID_Д
= Должности.ID
Преподаватели.ID
Фамилия
ID_Д
Должности.ID
Должности
1
Романов
3
3
профессор
2
Никонов
2
2
доцент
3
Абрамова
3
3
профессор
4
Семенов
1
1
доцент
5
Миронов
2
2
ассистент
6
Туманова
3
3
Доцент
Фамилия
Должности
Романов
профессор
Никонов
доцент
Абрамова
профессор
Семенов
доцент
Миронов
ассистент
Туманова
доцент
Дисциплины
Дисциплина
ID
Информатика
1
Микроэкономика
2
Иностранный
3
Должности
ID
Должность
1
доцент
2
ассистент
3
профессор
Связь
ID_С
ID_Д
ID_П
1
1
1
1
2
3
1
3
4
2
1
1
2
2
3
2
3
4
3
1
6
3
2
6
3
3
5
4
1
6
4
2
6
4
3
5
5
1
6
5
2
1
5
3
5
УЧЕБНЫЙ ПРОЦЕСС
Студенты
Фамилия
Ак
Группа
ID
Васильева
103
1
Тюрин
103
2
Паневкина
101
3
Пахомов
101
4
Маркова
102
5
Преподаватели
ID
Фамилия
ID_Д
1
Романов
3
2
Никонов
1
3
Абрамова
3
4
Семенов
1
5
Миронов
2
6
Туманова
1
SELECT
* FROM
(( Связь
INNER
JOIN
Студенты
ON
Связь.ID_C
= Студенты.ID)
INNER
JOIN
Дисциплины
ON
Связь.ID_Д
= Дисциплины.ID)
INNER
JOIN
Преподаватели ON
Связь.ID_П
= Преподаватели.ID
SELECT
Студенты.Фамилия,
[Ак Группа], Оценка, Дисциплина,
Преподаватели.Фамилия FROM
((
Связь
INNER
JOIN
Студенты
ON
Связь.ID_C
= Студенты.ID)
INNER
JOIN
Дисциплины ON
Связь.ID_Д
= Дисциплины.ID)
INNER
JOIN
Преподаватели ON
Связь.ID_П
= Преподаватели.ID
Связь
Студенты
Дисциплины
Преподаватели
ID_C
ID_Д
ID_П
Студенты.Фамилия
Ак
Группа
Студенты.ID
Дисциплина
Дисциплины.ID
Преподаватели.ID
Преподаватели.Фамилия
ID_Длж
1
1
3
Васильева
103
1
Информатика
1
3
Абрамова
3
1
2
2
Васильева
103
1
Микроэкономика
2
2
Никонов
1
1
3
1
Васильева
103
1
Иностранный
3
1
Романов
3
2
1
3
Тюрин
103
2
Информатика
1
3
Абрамова
3
…
…
…
………….
…
…
……………..
…
…
……………
4
3
4
Пахомов
101
4
Иностранный
3
4
Семенов
1
5
1
3
Маркова
102
5
Информатика
1
3
Абрамова
3
5
2
6
Маркова
102
5
Микроэкономика
2
6
Туманова
1
5
3
1
Маркова
102
5
Иностранный
3
1
Романов
3
Студенты.Фамилия
Ак
Группа
Дисциплина
Преподаватели.Фамилия
Васильева
103
Информатика
Абрамова
Васильева
103
Микроэкономика
Никонов
Васильева
103
Иностранный
Романов
Тюрин
103
Информатика
Абрамова
…………..
…
……………………
…………….
Пахомов
101
Иностранный
Семенов
Маркова
102
Информатика
Абрамова
Маркова
102
Микроэкономика
Туманова
Маркова
102
Иностранный
Романов
Пример:
Терапевты – Пациенты
Пациенты
ID_Т
Фамилия
Имя
Отчество
ID
Мышкин
Лев
Николаевич
1
6
Вербий
Ипполит
2
Мюнгхаузен
Карл
Фридрихович
3
Дали
Сальвадор
Сальвадорович
4
2
Понырев
Иван
Николаевич
5
Германн
6
2
Мастер
Михаил
Афанасьевич
7
5
Шариков
Полиграф
Полиграфович
8
Терапевты
Фамилия
ID
Гиппократ
1
Стравинский
2
Парацельс
3
Авицена
4
Преображенский
5
Асклепий
6
SELECT * FROM
Терапевты
INNER
JOIN
Пациенты ON
Терапевта.ID=Пациенты.ID_T
Терапевты.Фамилия
ID
ID_T
Пациенты.Фамилия
Имя
Отчество
ID
Асклепий
6
6
Вербий
Ипполит
2
Стравинский
2
2
Понырев
Иван
Николаевич
5
Стравинский
2
2
Мастер
Михаил
Афанасьевич
7
Преображенский
5
5
Шариков
Полиграф
Полиграфович
8
SELECT
Терапевты.Фамилия
as
Врач,
Пациенты.Фамилия
as
[Фамилия пациента],
Имя, Отчество FROM
Терапевты
INNER
JOIN
Пациенты ON
Терапевта.ID=Пациенты.ID_T
Врач
Фамилия
пациента
Имя
Отчество
Асклепий
Вербий
Ипполит
Стравинский
Понырев
Иван
Николаевич
Стравинский
Мастер
Михаил
Афанасьевич
Преображенский
Шариков
Полиграф
Полиграфович
SELECT
Терапевты.Фамилия
as
Врач,
Пациенты.Фамилия
&
“ “ & Имя &” “ & Отчество as
Пациент FROM
Терапевты
INNER
JOIN
Пациенты
ON
Терапевта.ID=Пациенты.ID_T
Врач
Пациент
Асклепий
Вербий
Ипполит
Стравинский
Понырев
Иван Николаевич
Стравинский
Мастер
Михаил Афанасьевич
Преображенский
Шариков
Полиграф Полиграфович
