Добавил:
больше работ здесь: https://github.com/alisadex Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
15
Добавлен:
11.02.2024
Размер:
43.92 Кб
Скачать

Естественное соединение

Пример 37. Вывести эквисоединение таблиц «Кафедра» и «Специальность».

SELECT Кафедра.*, Специальность.*

FROM Кафедра, Специальность

WHERE Кафедра.шифр=Специальность.шифр;

Пример 38. Вывести данные о том, на каких кафедрах готовят специалистов по тем или иным направлениям (специальностям). Запрос выполнить на основе естественного соединения таблиц «Кафедра» и «Специальность».

SELECT факультет, Кафедра.шифр, название, номер, направление

FROM Кафедра, Специальность

WHERE Кафедра.шифр=Специальность.шифр;

Пример 39. Вывести данные о том, на каких кафедрах готовят специалистов по тем или иным направлениям (специальностям). Запрос выполнить на основе естественного соединения таблиц «Кафедра» и «Специальность» при помощи INNER JOIN.

SELECT факультет, Кафедра.шифр, название, номер, направление FROM Кафедра INNER JOIN Специальность ON Кафедра.шифр=Специальность.шифр;

Пример 40. Вывести из таблиц «Кафедра» и «Сотрудник» данные о факультетах, кафедрах, должностях и фамилиях заведующих кафедрами

SELECT факультет, Кафедра.шифр, должность, фамилия

FROM Кафедра, Сотрудник

WHERE Кафедра.шифр=Сотрудник.шифр AND должность = ‘зав. кафедрой’;

Пример 41. Вывести из таблиц «Кафедра», «Специальность» и «Студент» данные о студентах, которые обучаются на данном факультете (например, «ит»).

SELECT факультет, Кафедра.шифр, Специальность.номер, рег_но- мер, фамилия

FROM Кафедра, Специальность, Студент WHERE Кафедра.шифр=Специальность.шифр AND Специальность.номер=Студент.номер AND факультет= [Введите аббревиатуру факультета];

Пример 42. Вывести из таблиц «Кафедра», «Специальность» и «Сотрудник» данные о выпускающих кафедрах (факультет, шифр, название, фамилию заведующего). Выпускающей считается та кафедра, на которую есть ссылки в таблице «Специальность».

SELECT DISTINCTROW факультет, Кафедра.шифр AS [выпускающая кафедра], название, фамилия AS [заведующий кафедрой]

FROM Кафедра, Специальность, Сотрудник WHERE Кафедра.шифр=Сотрудник.шифр AND Кафедра.шифр=Специальность.шифр AND должность=’зав. кафедрой’;

Пример 43. Вывести в запросе для каждого сотрудника номер и фамилию его непосредственного руководителя.

SELECT Сотрудник.шифр, Сотрудник.таб_номер, Сотрудник.фа- милия, Сотрудник!..таб_номер, Сотрудник!..фамилия

FROM Сотрудник, Сотрудник Сотрудник!.

WHERE Сотрудник!..таб_номер = Сотрудник.шеф;

Пример 44. Вывести список студентов, сдавших хотя бы один экзамен. По правилам соединения студенты, не сдававшие экзамены, в выборке представлены не будут.

SELECT Студент.рег_номер, Студент.фамилия

FROM Студент INNER JOIN Экзамен

ON Студент.рег_номер = Экзамен.рег_номер;

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

SELECT DISTINCTROW Студент.рег_номер, Студент.фамилия FROM Студент INNER JOIN Экзамен ON Студент.рег_номер = Экзамен.рег_номер;

Пример 46. Вывести (из таблиц «Студент» и «Экзамен») учетные номера («рег_номер»), фамилии («фамилия») студентов, а также количество сданных экзаменов (поле с именем «количество экзаменов» на основе функции COUNT (оценка)) и средний балл для каждого студента (поле с именем «средний балл» на основе функции AVG (оценка)) только для тех студентов, у которых средний балл не меньше заданного (например, 4).

SELECT Студент.рег_номер, фамилия, COUNT (оценка) AS [количество экзаменов], ROUND (AVG (оценка),2) AS [средний балл] FROM Студент INNER JOIN Экзамен ON Студент.рег_ номер=Экзамен.рег_номер

GROUP BY Студент.рег_номер, фамилия

HAVING AVG (оценка) > = [Введите граничную оценку];

ЗАДАНИЯ

ОТВЕТЫ МОГУТ БЫТЬ НЕ ВЕРНЫ

Я писала сама

Принимаю предложения по исправлению

Соседние файлы в папке Материалы для экзамена