Упражнения и задачи

Вопросы на повторение

 

1) Объясните своими словами смысл терминов:

· Комментарий

· Алфавит

· Идентификаторы

· Выражения

· Ключевые слова

· Арифметические операции

· Логические операции

· Типы данных

· Агрегатные функции

· Выборка данных

· Внутреннее объединение таблиц

· Внешнее объединение таблиц

· DISTINCT

· Фраза GROUP BY

· INSERT

· DELETE

· EXISTS

· UPDATE

· Ассоциативный поиск данных

· Символы маски

· Хранимые процедуры

· Триггеры

2) Какая фирма первой предложила коммерческую реализацию SQL?

3) Опишите, что может стоять в каждом из следующих предложений, входящих в состав команд SQL:

· SELECT

· FROM

· INTO

· WHERE

· GROUP BY

· HAVING

· ORDER BY

4) Опишите действие каждой из операций:

· UNION

· INNER JOIN

· LEFT OUTER JOIN

· RIGHT OUTER JOIN

· FULL JOIN

 

 

1) Установите соответствие между терминами и объяснениями к ним:

 

Псевдоним а Содержит основные или действительные данные
LEFT OUTER JOIN б Альтернативное имя, данное таблице
Фраза FROM в Перечисляет существующие таблицы, на которые ссылается запрос
Декартово произведение г Специальные символы, замещающие неопределенные строки символов
Подзапрос д Спаривает каждую строку одной таблицы с каждой строкой другой таблицы
Оператор EXISTS е Левое внешнее объединение таблиц
Фраза HAVING ж Служит для создания теоретико-множественного пересечения двух таблиц
Команда SELECT з Запрос внутри запроса
Оператор NOT EXISTS и Команда удаления данных
Таблица к Условие для отбора строк в выборке
Фраза WHERE л Объединение нескольких команд SELECT
Символы шаблона м Условия отбора данных в группы
UPDATE н Выборка данных из таблиц
UNION о Денежный тип данных
COMPUTE п Полное объединение таблиц
DELETE р Данные не определены
NULL с Служит для определения теоретико-множественной разности таблиц
MONEY т Команда модификации данных
FULL JOIN у Получение итоговых значений в группах

 

2) Напишите команды SQL для работы с таблицами базы данных ГОСТИНИЦА.

Простые запросы:

· Фамилия и имя клиента, код которого равен 10.

· Фамилии клиентов из Рязани.

· Цена проживания в одноместных номерах.

· Выдать список номеров пятого этажа гостиницы.

· Выдать список двухместных номеров.

· Каков код клиента Иванова из Пензы?

· Выдать список клиентов, Фамилии которых начинаются с буквы «К».

· Выдать список клиентов, третья буква фамилии которых «и».

· Выдать названия всех городов, из которых клиенты прибывали в гостиницу.

Объединение таблиц

· Какова цена проживания в номере 55?

· Фамилии клиентов, прибывших в гостиницу 23 февраля 2001 года.

· Список номеров, в которых останавливался Суворов из Владимир.

· Фамилии клиентов, проживающих в настоящее время в гостинице.

· Список номеров гостиницы, в которых в настоящее время проживают клиенты, с указанием стоимости проживания в сутки.

Подзапросы

· Перечислить города, клиенты из которых останавливались в номерах 15 и 66.

· Перечислить фамилии клиентов, которые в текущем году останавливались в одноместных номерах.

· Перечислить номера, цена проживания в которых не превышает 500 рублей.

Встроенные функции

· Какова максимальная цена проживания в гостинице?

· Каково среднее количество мест в номерах гостиницы?

· Из скольких городов приезжали в гостиницу клиенты?

· Сколько всего мест в гостинице?

· Сколько в гостинице одноместных номеров?

GROUP BY и HAVING

· Сколько номеров имеется на каждом этаже гостиницы?

· Каково максимальное количество мест на каждом этаже гостиницы?

· Каково среднее число клиентов, приезжающих в гостиницу ежемесячно?

· Количество клиентов из каждого города, приезжавших в гостиницу.

· Кто из клиентов проживал в 2001 году в гостинице более двух раз?

Операции изменения данных

· Добавьте клиента Курочкина Афанасия Егоровича, прибывшего из Калуги, в таблицу КЛИЕНТЫ.

· Увеличьте цену проживания в гостинице на 15%.

· Удалите из базы данных клиента Иванова Ивана Ивановича ил Костромы. Не забудьте при этом удалить все записи других таблиц, связанные с ним.

 

3) Дана реляционная схема базы данных для работников ГИБДД:

ВОДИТЕЛЬ (номер удостоверения, ФИО, адрес), АВТОМОБИЛЬ (регистрационный №, марка, цвет, № водительского удостоверения), НАРУШЕНИЕ (код нарушения, № водительского удостоверения, тип нарушения, дата), ОБСТОЯТЕЛЬСТВА (дата, время, место, погода). Необходимо разработать select-запросы, позволяющие получить ответ на поставленные вопросы:

· Кто из водителей имеет более одного автомобиля?

· Кто из водителей в течение 2006 года нарушал правила дорожного движения более трех раз?

· Предоставить регистрационные номера автомобилей, нарушивших правила дорожного движения с 20.11.2006 г. по 20.12.2006г.

· Сколько нарушений правил дорожного движения было зарегистрировано сотрудниками ГАИ в течение 25 ноября 2006г.

 

4) Дана реляционная схема базы данных фирмы, осуществляющей междугородные грузовые перевозки: КЛИЕНТ (код клиента, тип (производитель, оптовый продавец, торговая компания), название, годовой доход), ОТГРУЗКА (номер отгрузки, код клиента, вес груза, номер грузовика, пункт назначения, дата отправки груза, дата прибытия груза), ВОДИТЕЛЬ (ФИО водителя, номер отгрузки), ПУНКТ НАЗНАЧЕНИЯ (название города, адрес, число жителей). ). Необходимо разработать select-запросы, позволяющие получить ответ на поставленные вопросы:

 

· Для каждого города с населением свыше 1 млн. человек выяснить минимальный вес отправленного груза.

· Для каждого города, в который было отправлено не менее 15 грузов, выяснить средний вес отправленных грузов.

· Каков общий вес всех грузов, перевозимых машиной с регистрационным номером М234РА?

· Каков средний вес грузов каждого клиента фирмы?

· Какие города в БД имеют наименьшую и наибольшую численность населения?

· Каков средний вес грузов, отправленных в Санкт-Петербург?

· Кто из водителей доставлял грузы клиентам с годовым доходом более 5 млн. рублей?

· Выдать названия и средний годовой доход всех клиентов, отправлявших грузы в города, названия которых заканчиваются на «ва».

· Получить перечень клиентов фирмы, чей средний месячный доход превышает 500 тысяч рублей.

· Получить названия клиентов, отправлявших грузы в Казань и
Москву.

· Предоставить список названий всех торговых компаний, который воспользовались услугами данной фирмы для доставки собственных грузов.

· Перечислить имена водителей, доставлявших грузы весом более 1 тонны.

· Перечислить названия городов с населением свыше 500 тысяч человек, в которые водитель Иванов доставлял грузы весом более 1 центнера.

· Необходимо предоставить все данные о грузах весом свыше 20 кг.

· Создать алфавитный список клиентов с годовым доходом более 1 млн. рублей.

· Получить список клиентов, грузы которых имеют вес мене 100 кг.

· Напишите операции изменения БД: удалите из БД все города с населением до 5 тысяч человек. Не забудьте обновить таблицу «ОТГРУЗКА».

· Напишите операции изменения БД: преобразуйте вес каждого груза из кг в тонны.

· Напишите операции изменения БД: введите грузовик с регистрационным номеров К352РА и закрепите его за водителем с фамилией Иванов.

 

5) Дано описание базы данных (перечень таблиц с указанием соответствующих полей). Необходимо установить отношения между таблицами и разработать SQL-скрипты создания базы данных и таблиц в конкретной СУБД.

· База данных университета должна состоять из таблиц, позволяющих хранить следующие данные: сведения о факультетах (код факультета, название, адрес, телефон), сведения обо всех кафедрах каждого факультета (код кафедры, название, телефон, аудитория), о преподавателях (табельный номер, ФИО, должность, ученая степень), о дисциплинах (название, объем часов, категория занятия).

· База данных фирмы, занимающейся доставкой грузов, должна состоять из таблиц, позволяющих хранить следующие данные: сведения о клиенте (тип заказчика (производитель, оптовый продавец, торговая компания), название юридического лица/ФИО физического лица), данные о доставке груза (номер отгрузки, вес, номер грузовика, город, дата), личные данные водителя (ФИО, номер автомобиля), сведения о месте назначения груза (город, адрес, число жителей).

· База данных предназначена для хранения информации, специфичной для товарищества собственников жилья. БД должна обеспечивать хранение следующих сведений о собственниках жилья в многоквартирных домах (ФИО владельца лицевого счета на квартиру, паспортные данные, количество собственников, номер квартиры, номер договора управления), о праве собственности (номер свидетельства о государственной регистрации права собственности, номер договора на передачу квартиры в собственность) а также сведения о собственности (адрес (номер дома, номер квартиры), общая площадь, жилая площадь, количество комнат).

· База данных менеджера по персоналу крупной организации (предприятия) должна состоять из таблиц, позволяющих хранить следующие данные: сведения о том, из каких отделов (подразделений) состоит организация (код, название, количество сотрудников), сведения о сотрудниках каждого отдела (табельный номер, ФИО, занимаемая должность), а также данные о договорах, заключенных с сотрудниками при приеме на работу (номер, дата заключения, дата прекращения договора, тип договора (трудовой, договор подряда и т.д.))

· База данных, предназначенная для сотрудников туристической фирмы, должна состоять из таблиц, позволяющих хранить следующие данные: сведения о клиенте (ФИО, паспортные данные, телефон, адрес), сведения о менеджерах турфирмы (код сотрудника, ФИО, телефон e-mail), основную информацию о предлагаемых турах (тип, страна, дата начала, дата окончания, стоимость) и условиях переезда (вид транспорта, номер транспортного средства, пункт отправления, пункт назначения).