Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практика по созданию БД.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
556.41 Кб
Скачать
  1. Простейшая инструкция 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

Запрос 1

Терапевты.Фамилия

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

Запрос 2 ( as)

Врач

Фамилия пациента

Имя

Отчество

Асклепий

Вербий

Ипполит

Стравинский

Понырев

Иван

Николаевич

Стравинский

Мастер

Михаил

Афанасьевич

Преображенский

Шариков

Полиграф

Полиграфович

SELECT Терапевты.Фамилия as Врач, Пациенты.Фамилия & “ “ & Имя &” “ & Отчество as Пациент

FROM Терапевты INNER JOIN Пациенты ON Терапевта.ID=Пациенты.ID_T

Врач

Пациент

Асклепий

Вербий Ипполит

Стравинский

Понырев Иван Николаевич

Стравинский

Мастер Михаил Афанасьевич

Преображенский

Шариков Полиграф Полиграфович