Published using Google Docs
Лабораторная работа 9
Updated automatically every 5 minutes

Лабораторная работа № 9.

Использование операторов обработки данных СУБД MySQL

Цель работы

Закрепления навыков построения команд в стандарте SQL для различных предметных областей.

Порядок выполнения работы

  1. Используя схему и структуру данных, соответствующих Вашему варианту, создайте в СУБД MySQL новый проект и реализуйте базу данных.

Для проверки правильности работы команд SQL наберите в таблицах по несколько (5 – 10) записей, соответствующих предметной области и с соблюдением правил целостности базы данных.

Далее по Вашему варианту выполните упражнения по составлению команд для обработки данных  в созданном проекте с использованием SQL стандарта.

1.1. База данных «Книжное дело»

Связь между таблицами осуществляется с помощью следующих пар полей с типом связи «один-ко-многим» соответственно:

1. Books.Code_book - Purchases.Code_book;

2. Deliveries.Code_delivery - Purchases.Code_delivery;

3. Authors.Code_author - Books.Code_author;

4. Publising_house.Code_publish - Books.Code_publish.

1.2. Упражнения с использованием операторов обработки данных для БД «Книжное дело»

Сортировка

  1. Выбрать все сведения о книгах из таблицы Books и отсортировать результат по коду книги (поле Code_book).
  2. Выбрать из таблицы Books коды книг, названия и количество страниц (поля Code_book, Title_book и Pages), отсортировать результат по названиям книг (поле Title_book по возрастанию) и по полю Pages (по убыванию).
  3. Выбрать из таблицы Deliveries список поставщиков (поля Name_delivery, Phone и INN), отсортировать результат по полю INN (по убыванию).

Изменение порядка следования полей

  1. Выбрать все поля из таблицы Deliveries таким образом, чтобы в результате порядок столбцов был следующим: Name_delivery, INN, Phone, Address, Code_delivery.
  2. Выбрать все поля из таблицы Publishing_house таким образом, чтобы в результате порядок столбцов был следующим: Publish, City, Code_publish.

Выбор некоторых полей из двух таблиц

  1. Выбрать из таблицы Books названия книг и количество страниц (поля Title_book и Pages), а из таблицы Authors выбрать имя соответствующего автора книги (поле Name_ author).
  2. Выбрать из таблицы Books названия книг и количество страниц (поля Title_book и Pages), а из таблицы Deliveries выбрать имя соответствующего поставщика книги (поле Name_delivery).
  3. Выбрать из таблицы Books названия книг и количество страниц (поля Title_book и Pages), а из таблицы Publishing_house выбрать название соответствующего издательства и места издания (поля Publish и City).


Условие неточного совпадения

  1. Выбрать из справочника поставщиков (таблица Deliveries) названия компаний, телефоны и ИНН (поля Name_company, Phone и INN), у которых название компании (поле Name_company) начинается с ‘ОАО’.
  2. Выбрать из таблицы Books названия книг и количество страниц (поля Title_book и Pages), а из таблицы Authors выбрать имя соответствующего автора книг (поле Name_ author), у которых название книги начинается со слова ‘Мемуары’.
  3. Выбрать из таблицы Authors фамилии, имена, отчества авторов (поле Name_ author), значения которых начинаются с ‘Иванов’. Точное несовпадение значений одного из полей
  4. Вывести список названий издательств (поле Publish) из таблицы Publishing_house, которые не находятся в городе ‘Москва’ (условие по полю City).
  5. Вывести список названий книг (поле Title_book) из таблицы Books, которые выпущены любыми издательствами, кроме издательства ‘Питер-Софт’ (поле Publish из таблицы Publishing_house).

Выбор записей по диапазону значений (Between)

  1. Вывести фамилии, имена, отчества авторов (поле Name_author) из таблицы Authors, у которых дата рождения (поле Birthday) находится в диапазоне 01.01.1840 – 01.06.1860.
  1. Вывести список названий книг (поле Title_book из таблицы Books) и количество экземпляров (поле Amount из таблицы Purchases), которые были закуплены в период с 12.03.2003 по 15.06.2003 (условие по полю Date_order из таблицы Purchases).
  2. Вывести список названий книг (поле Title_book) и количество страниц (поле Pages) из таблицы Books, у которых объем в страницах укладывается в диапазон 200 – 300 (условие по полю Pages).
  3. Вывести список фамилий, имен, отчеств авторов (поле Name_author) из таблицы Authors, у которых фамилия начинается на одну из букв диапазона ‘В’ – ‘Г’ (условие по полю Name_author).

Выбор записей по диапазону значений (In)

  1. Вывести список названий книг (поле Title_book из таблицы Books) и количество (поле Amount из таблицы Purchases), которые были поставлены поставщиками с кодами 3, 7, 9, 11 (условие по полю Code_delivery из таблицы Purchases).
  2. 19. Вывести список названий книг (поле Title_book) из таблицы Books, которые выпущены следующими издательствами: ‘Питер-Софт’, ‘Альфа’, ‘Наука’ (условие по полю Publish из таблицы Publishing_house).
  3. Вывести список названий книг (поле Title_book) из таблицы Books, которые написаны следующими авторами: ‘Толстой Л.Н.’, ‘Достоевский Ф.М.’, ‘Пушкин А.С.’ (условие по полю Name_author из таблицы Authors).

Выбор записей с использованием Like

  1. Вывести список авторов (поле Name_author) из таблицы Authors, которые начинаются на букву ‘К’.
  2. Вывести названия издательств (поле Publish) из таблицы Publishing_house, которые содержат в названии сочетание ‘софт’.
  3. Выбрать названия компаний (поле Name_company) из таблицы Deliveries, у которых значение оканчивается на ‘ский’.

Выбор записей по нескольким условиям

  1. 24. Выбрать коды поставщиков (поле Code_delivery), даты заказов (поле Date_order) и названия книг (поле Title_book), если количество книг (поле Amount) в заказе больше 100 или цена (поле Cost) за книгу находится в диапазоне от 200 до 500.
  2. Выбрать коды авторов (поле Code_author), имена авторов (поле Name_author), названия соответствующих книг (поле Title_book), если код издательства (поле Code_Publish) находится в диапазоне от 10 до 25 и количество страниц (поле Pages) в книге больше 120.
  3. Вывести список издательств (поле Publish) из таблицы Publishing_house, в которых выпущены книги, названия которых (поле Title_book) начинаются со слова ‘Труды’ и город издания (поле City) – ‘Новосибирск’.

Многотабличные запросы (выборка из двух таблиц, выборка из трех таблиц с использованием JOIN)

  1. Вывести список названий компаний-поставщиков (поле Name_company) и названия книг (поле Title_book), которые они поставили в период с 01.01.2002 по 31.12.2003 (условие по полю Date_order).
  2. Вывести список авторов (поле Name_author), книги которых были выпущены в издательстве ‘Мир’ (условие по полю Publish).
  3. Вывести список поставщиков (поле Name_company), которые поставляют книги издательства ‘Питер’ (условие по полю Publish).
  4. Вывести список авторов (поле Name_author) и названия книг (поле Title_book), которые были поставлены поставщиком ‘ОАО Книготорг’ (условие по полю Name_company).

Вычисления

  1. Вывести суммарную стоимость партии одноименных книг (использовать поля Amount и Cost) и название книги (поле Title_book) в каждой поставке.
  2. Вывести стоимость одной печатной страницы каждой книги (использовать поля Cost и Pages) и названия соответствующих книг (поле Title_book).
  3. Вывести количество лет с момента рождения авторов (использовать поле Birthday) и имена соответствующих авторов (поле Name_author).

Вычисление итоговых значений с использованием агрегатных функций

  1. Вывести общую сумму поставок книг (использовать поле Cost), выполненных ‘ЗАО Оптторг’ (условие по полю Name_company).
  2. Вывести общее количество всех поставок (использовать любое поле из таблицы Purchases), выполненных в период с 01.01.2003 по 01.02.2003 (условие по полю Date_order).
  3. Вывести среднюю стоимость (использовать поле Cost) и среднее количество экземпляров книг (использовать поле Amount) в одной поставке, где автором книги является ‘Акунин’ (условие по полю Name_author).
  4. Вывести все сведения о поставке (все поля таблицы Purchases), а также название книги (поле Title_book) с минимальной общей стоимостью (использовать поля Cost и Amount).
  5. Вывести все сведения о поставке (все поля таблицы Purchases), а также название книги (поле Title_book) с максимальной общей стоимостью (использовать поля Cost и Amount).

Изменение наименований полей

  1. Вывести название книги (поле Title_book), суммарную стоимость партии одноименных книг (использовать поля Amount и Cost), поместив в результат в поле с названием Itogo, в поставках за период с 01.01.2002 по 01.06.2002 (условие по полю Date_order).
  2. Вывести стоимость одной печатной страницы каждой книги (использовать поля Cost и Pages), поместив результат в поле с названием One_page, и названия соответствующих книг (поле Title_book).
  3. Вывести общую сумму поставок книг (использовать поле Cost) и поместить результат в поле с названием Sum_cost, выполненных ‘ОАО Луч’ (условие по полю Name_company).

Использование переменных в условии

  1. Вывести список сделок (все поля из таблицы Purchases) за последний месяц (условие с использованием поля Date_order).
  2. Вывести список авторов (поле Name_author), возраст которых меньше заданного пользователем (условие с использованием поля Birthday).
  3. Вывести список книг (поле Title_book), которых закуплено меньше, чем указано в запросе пользователя (условие с использованием поля Amount).

Использование переменных вместо названий таблиц

  1. Вывести список названий компаний-поставщиков (поле Name_company) и названия книг (поле Title_book), которые они поставили.
  2. Вывести список авторов (поле Name_author), книги которых были выпущены в издательствах ‘Мир’, ‘Питер Софт’, ‘Наука’ (условие по полю Publish).
  3. Вывести список издательств (поле Name_company), книги которых были поставлены по цене 150 руб. (поле Cost).

Выбор результата в представление

  1. Вывести список названий книг (поле Title_book) и количества страниц (поле Pages) в каждой книге и поместить результат в представление с названием Temp1.
  2. Вывести список названий компаний-поставщиков (поле Name_company) и поместить результат в представление с названием Temp2.
  3. Вывести список авторов (поле Name_author) и поместить результат в представление с названием Temp3.

Использование функций совместно с подзапросом

  1. Вывести список книг (поле Title_book), у которых количество страниц (поле Pages) больше среднего количества страниц всех книг в таблице.
  2. Вывести список авторов (поле Name_author), возраст которых меньше среднего возраста всех авторов в таблице (условие по полю Birthday).
  3. Вывести список книг (поле Title_book), у которых количество страниц (поле Pages) равно минимальному количеству страниц книг, представленных в таблице.

Использование квантора существования в запросах

  1. Вывести список издательств (поле Publish), книги которых были приобретены оптом (‘опт’ из поля Type_Purchase).
  2. Вывести список авторов (поле Name_author), книг которых нет в таблице Books.
  3. Вывести список книг (поле Title_book), которые были поставлены поставщиком ‘ЗАО Квантор’ (условие по полю Name_company).

Оператор обработки данных Update

  1. Изменить в таблице Books содержимое поля Pages на 300, если код автора (поле Code_author) =56 и название книги (поле Title_book) =’Мемуары’.
  2. Изменить в таблице Deliveries содержимое поля Address на ‘нет сведений’, если значение поля является пустым.
  3. Увеличить в таблице Purchases цену (поле Cost) на 20 процентов, если заказы были оформлены в течение последнего месяца (условие по полю Date_order).

Оператор обработки данных Insert

  1. Добавить в таблицу Purchases новую запись, причем так, чтобы код покупки (поле Code_purchase) был автоматически увеличен на единицу, а в тип закупки (поле Type_purchase) внести значение ‘опт’.
  2. Добавить в таблицу Books новую запись, причем вместо ключевого поля поставить код (поле Code_book), автоматически увеличенный на единицу от максимального кода в таблице, вместо названия книги (поле Title_book) написать ‘Наука. Техника. Инновации’.
  3. Добавить в таблицу Publish_house новую запись, причем вместо ключевого поля поставить код (поле Code_publish), автоматически увеличенный на единицу от максимального кода в таблице, вместо названия города – ‘Москва’ (поле City), вместо издательства – ‘Наука’ (поле Publish).

Оператор обработки данных Delete

  1. Удалить из таблицы Purchases все записи, у которых количество книг в заказе (поле Amount) = 0.
  2. Удалить из таблицы Authors все записи, у которых нет имени автора в поле Name_Author.
  3. Удалить из таблицы Deliveries все записи, у которых не указан ИНН (поле INN пустое).

1.3. База данных «Успеваемость студентов»

Связь между таблицами осуществляется с помощью следующих пар полей с типом связи «один-ко-многим» соответственно:

1. Groups.Code_group - Students.Code_group;

2. Students.Code_stud - Progress.Code_stud;

3. Subjects.Code_subject - Progress.Code_subject;

4. Lectors.Code_lector - Progress.Code_lector.

1.4. Упражнения с использованием операторов обработки данных для БД «Успеваемость студентов»

Сортировка

  1. Вывести все сведения о студентах из таблицы Students и отсортировать результат по коду студента (поле Code_stud).
  2. Вывести список фамилий, имен, отчеств преподавателей (поле Name_lector), их должности (поле Post) и ученые степени (поле Science) из таблицы Lectors, отсортировать результат по названиям должностей по возрастанию (использовать поле Post) и по ученым степеням по убыванию (использовать поле Science).
  3. Выбрать из таблицы Groups названия групп и номера курсов (поля Name_group, Name_course) и отсортировать результат по полю Name_course по убыванию.

Изменение порядка следования полей

  1. Вывести все сведения о студентах из таблицы Students таким образом, чтобы в результате порядок столбцов был следующим: Code_group, Name, Surname, Lastname, Phone, Birthday.
  2. Выбрать все поля из таблицы Subjects таким образом, чтобы в результате порядок столбцов был следующим: Name_subject, Code_subject.

Выбор некоторых полей из двух таблиц

  1. Вывести список фамилий (поле Surname), имен (поле Name), отчеств (поле Lastname) студентов из таблицы Students и названий групп (поле Name_group) из таблицы Groups, в которых они обучаются.
  2. Вывести даты экзаменов (поле Date_exam) из таблицы Progress и фамилии, имена, отчества преподавателей (поле Name_lector) из таблицы Lectors, принимавших в эти даты экзамены.
  3. Вывести даты экзаменов (поле Date_exam) из таблицы Progress и названия дисциплин (поле Name_subject) из таблицы Subjects, по которым сдавали экзамены в указанные даты.

Условие неточного совпадения

  1. Вывести список преподавателей (поле Name_lector) из таблицы Lectors с ученой степенью кандидат каких-либо наук, т.е. у которых значение поля Science начинается с ‘к’.
  2. Вывести список студентов (поля Surname, Name, Lastname) из таблицы Students и названия групп (поле Name_group) из таблицы Groups, значения которых начинаются с сочетания ‘АС’.
  3. Вывести список дисциплин (поле Name_subject) из таблицы Subjects, значение которых начинается с ‘математ’.

Точное несовпадение значений одного из полей

  1. Вывести список преподавателей (поле Name_lector) из таблицы Lectors и их должности (поле Post), которые не являются докторами технических наук, т.е. значение поля Science не равно ‘д.т.н.’.
  2. Вывести список групп (поле Name_group) из таблицы Groups, которые не относятся к специальности ‘электротехника’ (условие по полю Name_speciality).
  3. Вывести все сведения о всех предметах из таблицы Subjects, кроме предмета ‘высшая математика’ (условие по полю Name_subject).

Выбор записей по диапазону значений (Between)

  1. Вывести даты экзаменов (поле Date_exam) из таблицы Progress и список дисциплин (поле Name_subject) из таблицы Subjects, по которым сдавали экзамены в период с 01.01.2003 по 01.02.2003 (условие по полю Date_exam).
  2. Вывести список преподавателей (поле Name_lector) из таблицы Lectors и их должности (поле Post), которые были устроены на работу в период с 12.03.2000 по 15.06.2000 (условие по полю Date_).
  3. Вывести список студентов (поля Surname, Name, Lastname) и их телефоны (поле Phone) из таблицы Students, если значения телефонов находятся в диапазоне от 220000 до 226666 (условие по полю Phone).
  4. Вывести список дисциплин (поле Name_subject) из таблицы Subjects, у которых название начинается на одну из букв диапазона ‘В’–‘Г’ (условие по полю Name_subject).

Выбор записей по диапазону значений (In)

  1. Вывести список групп и названия специальностей (поля Name_group и Name_speciality из таблицы Groups), в которых учатся студенты со следующими номерами зачетной книжки ‘АС-12-02’, ‘ПИ-14-03’, ‘АС-21-03’, ‘БИ-12-02’ (условие по полю Code_stud из таблицы Students).
  2. Вывести список преподавателей (поле Name_lector) из таблицы Lectors и их должности (поле Post), у которых есть одна из следующих ученых степеней: ‘к.т.н.’, ‘к.э.н.’, ‘д.т.н.’ (условие по полю Science).
  3. Вывести список студентов (поля Surname, Name, Lastname) из таблицы Students, которые сдавали экзамены по дисциплинам со следующими кодами 5, 8, 12, 25 (условие по полю Code_subject).

Выбор записей с использованием Like

  1. Вывести список дисциплин (поле Name_subject) из таблицы Subjects, которые начинаются на букву ‘М’.
  2. Вывести список студентов (поля Surname, Name, Lastname) и даты рождения (поле Birthday) из таблицы Students, которые содержат в фамилии сочетание букв ‘нова’ (условие по полю Surname).
  3. Выбрать список групп (поле Name_group) из таблицы Groups, у которых значение оканчивается на ‘0’ (ноль).


Выбор записей по нескольким условиям

  1. Вывести всех студентов (поля Surname, Name, Code_group) из таблицы Students, которые сдавали экзамен по дисциплине (поле Name_subject из таблицы Subjects) ‘математический анализ’.
  2. Вывести список преподавателей (поле Name_lector) из таблицы Lectors, которые принимали экзамены по дисциплинам с кодами (условие по полю Code_subject из таблицы Progress) 5 – 12 и в период с 01.01.2003 по 01.02.2003 (условие по полю Date_exam из таблицы Progress).
  3. Вывести список групп (поле Name_group) и номера курсов (поле Num_course) из таблицы Groups, в которых учатся студенты с датами рождения с 01.01.1976 по 01.01.1978 (условие по полю Birthday из таблицы Students) и кодами из диапазона 10 – 150 (условие по полю Code_stud из таблицы Students).

Многотабличные запросы (выборка из двух таблиц, выборка из трех таблиц с использованием JOIN)

  1. Вывести список названий дисциплин (поле Name_subject из таблицы Subjects) и имен преподавателей (поле Name_lector из таблицы Lectors), которые принимали по этим дисциплинам экзамены.
  2. Вывести список студентов (поля Surname, Name из таблицы Students) и номер курса (поле Num_course из таблицы Groups), учащихся в группе ‘Ас-31’ (условие по полю Name_group).
  3. Вывести список имен преподавателей (поле Name_lector из таблицы Lectors), которые принимали экзамены у студентов с кодами групп 10, 12, 15 (условие по полю Code_group из таблицы Students).
  4. Вывести список названий дисциплин (поле Name_subject из таблицы Subjects) и имен преподавателей (поле Name_lector из таблицы Lectors), которые принимали по этим дисциплинам экзамены в период с 15.01.2003 по 16.02.2003 (условие по полю Date_exam из таблицы Progress).

Вычисления

  1. Вывести список всех преподавателей (Name_lector), их ученые степени (поле Science) и срок их работы в годах (использовать поле Date_ из таблицы Lectors).
  2. Вывести список всех студентов (поля Surname, Name, Lastname) и их возраст в годах (использовать поле Birthday из таблицы Students).
  3. Вывести список всех студентов (поля Surname, Name, Lastname из таблицы Students) и номер курса, на котором они занимаются, а также количество лет оставшейся учебы (использовать поле Num_course из таблицы Groups).

Вычисление итоговых значений с использованием агрегатных функций

  1. Вывести список всех групп (поле Name_group из таблицы Groups) и количество студентов в каждой группе (по любому полю из таблицы

Students).

  1. Вывести средний балл (использовать поле Estimate из таблицы Progress) по результатам экзаменов каждого студента и имена студентов (поля Surname, Name из таблицы Students) за период сдачи экзаменов с 05.01.2003 по 25.01.2003 (условие по полю Date_exam из таблицы Progress).
  2. ывести фамилии и имена студентов (поля Surname, Name из таблицы Students) с максимальным средним баллом за весь период обучения (условие по полю Estimate из таблицы Progress).
  3. Вывести все сведения о преподавателях (все поля таблицы Lectors) с максимальным общим стажем работы (использовать поле Date_).

Изменение наименований полей

  1. Вывести список групп (поле Name_group из таблицы Groups) и количество студентов в каждой группе (по любому полю из таблицы Students), поместив результат в новое поле Count_Students.
  2. Вывести средний балл (использовать поле Estimate из таблицы Progress) по результатам экзаменов каждого студента, поместив результат в поле Avg_estimate, и имена студентов (поля Surname, Name из таблицы Students) за период сдачи экзаменов 05.01.2003 по 25.01.2003 (условие по полю Date_exam из таблицы Progress).
  3. Вывести список преподавателей (Name_lector), их ученые степени (поле Science) и срок их работы в годах (использовать поле Date_ из таблицы Lectors), поместив резльтат в поле Old_years.

Использование переменных в условии

  1. Вывести список студентов (поля Surname, Name, Lastname) и их телефоны (поле Phone) из таблицы Students, если значения телефонов находятся в диапазоне, хранящемся в переменных Phone_begin и Phone_end. Например, пусть Phone_begin = 125478, а Phone_end = 352456.
  2. Вывести все сведения о студентах и их даты рождения (поле Birthday) из таблицы Students, значения которых находятся в диапазоне, хранящемся в переменных Birthday_begin и Birthday_end. Например, пусть Birthday_begin = 12.03.1978, а Birthday_end = 12.03.1980.
  3. Вывести список студентов (поля Surname, Name, Lastname) и названия их групп (поле Name_group) для значений кодов групп (поле Code_group), находящихся в диапазоне, хранящемся в переменных Group_begin и Group_end. Например, пусть Group_begin = 12, а Group_end = 35.

Использование переменных вместо названий таблиц

  1. Вывести коды студентов (поле Code_stud) и имена (поля Surname, Name), названия и коды групп (поля Name_group, Code_group из таблицы Groups), причем таблица Students будет использоваться с именем ‘A’, а таблица Groups будет использоваться с именем ‘B’.
  2. Вывести имена студентов (поля Surname, Name), названия и коды предметов (поля Name_subject, Code_subject из таблицы Subjects), которые сдавали студенты, а также оценки за предметы (поле Estimate), причем таблица Students будет использоваться с именем ‘A’, таблица Progress будет использоваться с именем ‘B’, а таблица Subjects будет использоваться с именем ‘C’.
  3. Вывести имена студентов (поля Surname, Name), названия и коды преподавателей (поля Name_lector, Code_lector из таблицы Lectors), которым сдавали студенты экзамены, а также оценки за предметы (поле Estimate), причем таблица Students будет использоваться с именем ‘A’, таблица Progress будет использоваться с именем ‘B’, а таблица Lectors будет использоваться с именем ‘C’.

Создание представлений

  1. Вывести все сведения о сданных экзаменах (все поля из таблицы Progress) для студента с фамилией ‘Васьков’ и именем ‘Павел’ (условия по полям Surname, Name из таблицы Students) с помощью представления Temp1.
  2. Создать представление с названием Temp2, выводящее список групп и специальности (поля Name_group, Name_speciality из таблицы Groups), у которых номер курса = 2 (условие  по полю Num_course).
  3. Создать представление с названием Temp3 выводящее список всех изучаемых дисциплин (поле Name_subject из таблицы Subjects).


Использование функций совместно с подзапросом

  1. Вывести список преподавателей (все поля из таблицы Lectors), дата устройства которых меньше средней даты устройства всех преподавателей в таблице (условие по полю Date_).
  2. Вывести все сведения о сдачах экзаменов (все поля из таблицы Progress) и список студентов (поля Surname, Name из таблицы Students), которые по таблице Progress сдавали экзамены самыми последними (дата сдачи экзаменов Date_exam максимальна).
  3. Вывести список групп (поле Name_group), в которых студентов больше 25.

Использование квантора существования (EXIST) в запросах

  1. Вывести список студентов (поля Surname, Name, Lastname из таблицы Students), которые сдали все экзамены без двоек (подзапрос по таблице Progress).
  2. Вывести список студентов (поля Surname, Name, Lastname из таблицы Students), которые не сдавали ни одного экзамена (подзапрос по таблице Progress).
  3. Вывести список студентов (поля Surname, Name, Lastname из таблицы Students), которые сдали все экзамены на "отлично" (подзапрос по таблице Progress).

Оператор обработки данных Update

  1. Увеличить номер курса (поле Num_course) у всех групп на единицу в таблице Groups, если системная дата равна значению «первое сентября нового учебного года».
  2. Изменить в таблице Students содержимое поля Lastname на ‘нет сведений’, если значение поля является пустым.
  3. Изменить в таблице Subjects значение поля Name_subject на ‘математический анализ’, если название дисциплины – ‘высшая математика’.

Оператор обработки данных Insert

  1. Добавить в таблицу Student новую запись, причем так, чтобы код студента (по полю Code_stud) был автоматически увеличен на единицу, а ФИО = ‘Иванов’ ‘Павел’ ‘Сергеевич’ (поля Surname, Name, LastName).
  2. Добавить в таблицу успеваемости Progress новую запись, вместо кода студента (поле Code_stud) поставить 45, вместо кода предмета (поле Code_subject) – 12, вместо кода лектора (поле Code_lector) – 11, вместо даты экзамена (поле Date_exam) –’12.03.2003’.
  3. Добавить в таблицу преподавателей Lectors новую запись, причем вместо ключевого поля поставить код (по полю Code_lector), автоматически увеличенный на единицу от максимального кода в таблице, вместо имени (поле Name_lector) – ‘Петров Савелий Яковлевич’, вместо ученой степени (поле Science) – ‘к.т.н.’.

Оператор обработки данных Delete

  1. Удалить из таблицы Students все записи, код группы которых равен 35, или 15, или 19 (условие по полю Code_group).
  2. Удалить из таблицы Subjects все записи, в которых в поле Name_subject нет данных или в поле содержится пустое значение.
  3. Удалить из таблицы Progress все записи, в которых не указана дата экзамена (поле Date_exam пустое).

              ВАРИАНТЫ ЗАДАНИЙ

  № варианта                        Список упражнений

1

1

14

27

40

53

2

2

15

28

41

54

3

3

16

29

42

55

4

4

17

30

43

56

5

5

18

31

44

57

6

6

19

32

45

58

7

7

20

33

46

59

8

8

21

34

47

60

9

9

22

35

48

61

10

10

23

36

49

62

11

11

24

37

50

63

12

12

25

38

51

64

13

13

26

39

52

65

14

66

79

92

105

118

15

67

80

93

106

119

16

68

81

94

107

120

17

69

82

95

108

121

18

70

83

96

109

122

19

71

84

97

110

123

20

72

85

98

111

124

21

73

86

99

112

125

22

74

87

100

113

126

23

75

88

101

114

127

24

76

89

102

115

128

25

77

90

103

116

129

26

78

91

104

117

130

1.5. Составление отчета

Отчет о проделанной работе должен включать  

Ссылки на файлы отчета разместить в своем блоге в разделе “Лабораторные работы”.

Источник:

Семёнова И.И. - Сборник упражнений по стандарту SQL. Омск: Изд.  СибАДИ, 2005.