Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОП АИС.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
387 Кб
Скачать
☆

Контрольные задания.

  1. По таблице ‘успеваемость’ определить получал студент с номером ‘01’ оценки. Если получал, то вывести на печать сообщение ‘Студент опрашивался’ в противном случае напечатать ‘Студент не получал оценок’ .

  2. Если вид занятия ‘лек’, то в сформированном столбце записать «лекционное занятие», если вид занятия ‘пр’, то в сформированном столбце записать «практическое занятие»

  3. В индивидуальной базе данных сформулировать и привести пример с использованием оператора LIKE

  4. В индивидуальной базе данных сформулировать и привести пример с использованием оператора Case …..End

Практическая работа №18. Создание запросов на основе нескольких связанных таблиц.

Цель: «Сформировать навыки и умения реализации запроса, построенного на основе данных из нескольких таблиц»

Ход Работы

Одна из наиболее важных особенностей запросов SQL - это их способность определять связи между многочисленными таблицами и выводить информацию из них в терминах этих связей.

Эта особенность часто используется просто для эксплуатации связей встроенных в базу данных.

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

Student. Ns

Student.fio

Predmet.np

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

Когда данные выбираются из таблиц, связанных отношением один ко многим, то кроме условия запроса после ключевого слова WHERE записываются связи по ключевым полям. Например, если данные выбираются из таблиц student, gruppa , то необходимо указать равенство по связующим полям:

student.ng= gruppa.ng

Задание 1. Вывести на экран фамилии студентов, номер группы, в которой учится более 30 человек.

USE uch_proc

select student.fio, gruppa.ng, gruppa.kol

from student, gruppa

where student.ng= gruppa.ng and gruppa.kol>30

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

Задание 2. Вывести на экран фамилии преподавателей математики.

Таблицы ‘преподаватель’ и ‘предмет’ не связаны между собой. Но они имеют общие связующие поля с таблицей ‘изучение’

Рис 5 схема данных запроса

USE uch_proc

select prepodavatel.fio, predmet.np

from prepodavatel, predmet, isuchenie

where prepodavatel.tabn = isuchenie.tabn and

isuchenie.kp= predmet.kp and predmet.np='математика'

Задание 3 Вывести на экран фамилии преподавателей , количество часов, код предмета, номера групп, в которых ведут преподаватели с кафедры ‘информатика’

Рис 6 схема данных запроса

USE uch_proc

select prepodavatel.fio, isuchenie.ng, isuchenie.chas, isuchenie.kp

from prepodavatel, isuchenie, kafedra

where prepodavatel.tabn = isuchenie.tabn and

prepodavatel.kkaf =kafedra.kkaf and kafedra.namekaf='информатика'

Задание 4 Определите номер и фамилию студентов, которые получали оценку 4

Рис 7 схема данных запроса

USE uch_proc

select student.fio, student.ns , uspevaemost.ozenka

from student, uspevaemost

where student.ng= uspevaemost.ng and student.ns= uspevaemost.ns and uspevaemost.ozenka=4

Задание 5 Определите наименования предметов, по которым студенты получали 2

Рис 8 схема данных запроса

USE uch_proc

select uspevaemost.ozenka , predmet.np

from uspevaemost, isuchenie, predmet

where uspevaemost.ng = isuchenie.ng and uspevaemost.kp = isuchenie.kp and

uspevaemost.tabn = isuchenie.tabn and uspevaemost.vidz = isuchenie.vidz and

isuchenie.kp= predmet. kp and uspevaemost.ozenka=2