ЛАБОРАТОРНАЯ РАБОТА № 3
Цель: 1. Приобрести практические навыки использования операции соединения нескольких таблиц БД при выполнении сложных списковых запросов. Справочный материал: 1. Конспект курса.
Упражнения: Перед выполнением лабораторной работы необходимо войти в сеть, затем в систему MS SQL Server и SQL Query Analyser, а также установить связь пользователя с базой данных (аналогично описанному сценарию в лабораторной работе № 1). 1) Выполнение запроса по двум таблицам БД с использованием операции соединения, например: выдать фамилии и названия учебных заведений по выпускникам России 1996 года, отсортировав данные по учебным заведениям. Для выполнения этого запроса необходимо использовать три условия, указанных в описании операции Join (соединения таблиц) в конспекте курса. Так как в задании по запросу требуется выдать названия учебных заведений, а в таблице poss такого поля нет (есть только код учебного заведения), то, кроме таблицы poss, необходимо использовать таблицу vuz, где это поле есть. Поэтому в списке выборки имя второго поля должно быть составным, т.е. с именем таблицы vuz (составное имя поля - это <имя табл.>.<имя поля>), в предложении from должны быть записаны два имени таблиц (poss и vuz), а в предложении where должно быть указано условие соединения этих двух таблиц по полю код учебного заведения. Таким образом, в верхней области окна необходимо ввести: select fio, vuz.uch_zavedenie from poss, vuz where gok='96' and vuz_k=vuz.cod order by 2 [F5] или select fio, vuz.uch_zavedenie from poss join vuz on vuz_k=vuz.cod where gok='96' order by 2 [F5] Отчет будет представлен в нижней области окна (см. рис. 16). Рис. 16 2) Выполнение запроса по трем таблицам БД с использованием операции соединения,например: выдать фамилии, даты рождения, названия учебных заведений, пол, специальности, категории обучения, месяцы окончания и годы окончания по учащимся, принятым на учебу в 1991 году; данные отсортировать по учебным заведениям и специальностям. В этом запросе требуется выдать значения двух полей, не принадлежащих структуре таблицы poss, а именно: названия учебных заведений и названия категорий обучения. Поэтому в списке выборки для этих полей должны быть указаны составные имена (т.е. с именем таблицы), в предложении from должны быть записаны три имени таблиц, а в предложении where - два условия соединения таблиц (таблицы poss с таблицей vuz по полю код учебного заведения; таблицы poss с таблицей kat_obuch по полю код категории обучения). Таким образом, в верхней области окна необходимо ввести: select fio, data_rogden, vuz.uch_zavedenie, pol, spec, kat_obuch. kat_obucheniya, mo, gok from poss, vuz, kat_obuch where gp='91' and vuz_k=vuz.cod and kat_obuch_k=kat_obuch.cod order by 3,5 [F5] или select fio, data_rogden, vuz.uch_zavedenie, pol, spec, kat_obuch. kat_obucheniya, mo, gok from poss join vuz on vuz_k=vuz.cod join kat_obuch on kat_obuch_k=kat_obuch.cod where gp='91' order by 3,5 Отчет будет представлен в нижней области окна (см. рис. 17). 3) Выполнение запроса по четырем таблицам БД со сложным условием,например: выдать фамилии, даты рождения, названия учебных заведений, пол, семейные положения, специальности, категории обучения, месяцы приема, годы приема, месяцы окончания и годы окончания по выпускникам России 1993 и 1995 г.г. по специальностям от 0701 до 0705; данные отсортировать по годам окончания, специальностям и учебным заведениям. В этом запросе требуется выдать значения трех полей, не принадлежащих структуре таблицы poss, а именно: названия учебных заведений, названия семейных положений и названия категорий обучения. Поэтому в списке выборки для этих полей должны быть указаны составные Рис. 17 имена (т.е. с именем таблицы), в предложении from должны быть записаны четыре имени таблиц, а в предложении where - три условия соединения таблиц (таблицы poss с таблицей vuz по полю код учебного заведения; таблицы poss с таблицей family по полю код семейного положения; таблицы poss с таблицей kat_obuch по полю код категории обучения). Таким образом, в верхней области окна необходимо ввести: select fio, data_rogden, vuz. uch_zavedenie, pol, family.family_status, spec, kat_obuch. kat_obucheniya, mp, gp, mo, gok from poss, vuz, family, kat_obuch where (gok='93' or gok='95') and spec between '000701' and '000705' and vuz_k=vuz.cod and sem_polog_k=family.cod and kat_obuch_k=kat_obuch.cod order by 11, 6, 3 [F5] или select fio, data_rogden, vuz. uch_zavedenie, pol, family.family_status, spec, kat_obuch. kat_obucheniya, mp, gp, mo, gok from poss join vuz on vuz_k=vuz.cod join family on sem_polog_k=family.cod join kat_obuch on kat_obuch_k=kat_obuch.cod where (gok='93' or gok='95') and spec between '000701' and '000705' order by 11, 6, 3 [F5] Отчет будет представлен в нижней области окна (см. рис. 18). Рис. 18 Варианты заданий на выполнение лабораторной работы № 3 приведены в приложении II.
Популярное: Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ... Как построить свою речь (словесное оформление):
При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою... ![]() ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (377)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |