Вариант решения задания4

advertisement
З а д а н и е № 4.
Домашнее задание (20 баллов):
1. Пусть есть база данных с отношениями:
Компания (№ отделения, улица, район, Город, Индекс, Тел, Факс)
Сотрудник (Таб.№, ФИО, Адрес, Зарплата, ИНН, № отделения, должность)
Арендатор (№ арендатора, ФИО, адрес, Тел., № отделения)
Объект (№ объекта, улица, город, площадь, Таб.№, № отделения, плата, тип)
Просмотр(№ объекта, № арендатора, Дата, Комментарии)
Напишите запросы на языке SQL:
1. Выбрать адреса всех отделений в Москве и Казани. (1).
SELECT № отделения, Город, улица, район FROM company WHERE Город=
‘Москва’or Город=‘Казань’;
2. Список сотрудников, у которых, зарплата выше средней зарплаты. (1).
SELECT Таб.№, фио FROM Сотрудник WHERE Зарплата>( SELECT
avg(Зарплата) FROM Сотрудник)
3. Список сотрудников, которые живут и работают в одном и том же
городе.(2).
SELECT ФИО FROM Компания, Сотрудник WHERE Адрес LIKE Город AND
Компания.№ отделения= Сотрудник.№ отделения
4. Количество сдаваемых в аренду объектов в каждом городе, где арендная
плата меньше 300 (1).
SELECT COUNT(№ объекта) FROM Объект WHERE плата<300 GROUP BY
город
5. Список сдаваемых объектов, упорядоченный по типу и арендой плате.(1)
SELECT * FROM Объект ORDER BY тип, плата;
6. Список всех посещенных объектов в Казани, по которым не было
комментариев (2).
SELECT Объект. город, Объект.улица, Объект.№ объекта
FROM Просмотр,Объект
WHERE Объект.№ объекта = Просмотр.№ объекта
AND Объект. город =’KAZAN’ AND Комментарии =’NULL’;
2. Пусть есть база данных с отношениями:
Поставщики(№п, Город, ФИО)
Детали (№_д, Название, цвет, вес, Город где хранится деталь )
Поставки (№_д, №_п, кол-во, №_пр)
Проекты (№_пр, Название, город, result)
Напишите запросы на языке SQL:
1. Получить номера деталей поставляемых поставщиком из Казани или для
Казанского проекта (2).
SELECT distinct №_д FROM Поставки WHERE (SELECT Город FROM Поставщики
WHERE Поставщики.№_п = Поставки.№_п) =’KAZAN’ OR (SELECT Город FROM
Проекты WHERE Проекты.№_пр = Поставки.№_пр) =’KAZAN’
2. Для каждой детали получить № детали, № проекта, и общее количество (2).
SELECT №_д, .№_пр,sum(кол-во) FROM Поставки GROUP BY №_д, .№_пр
3. Получить названия проектов, обеспечиваемые поставщиком c номером S1(1).
SELECT DISTINCT(Проекты.Название) FROM Проекты, Поставки
WHERE Поставки.№_п=’s1’
AND Проекты.№_пр= Поставки.№_пр
4. Получить сочетание цвет детали - город детали(1).
SELECT DICTINCT цвет, Город FROM Детали
5. Получить кол-во деталей поставляемых поставщиком S1 (1).
SELECT sum(№_д) FROM Поставки WHERE №_п=’s1’
3.
Пусть есть база данных с отношениями:
МУЗЫКАНТЫ (муз_номер, муз_имя, муз_дата_рождения, муз_страна_рождения)
СОЧИНЕНИЯ (соч_номер, соч_название, муз_номер, соч_дата_сочинения)
АНСАМБЛИ (анс_номер, анс_название, анс_страна, муз_номер)
ИСПОЛНЕНИЯ (соч_номер, исп_дата, исп_город, исп_страна, муз_номер, анс_номер)
ИСПОЛНИТЕЛИ (испл_номер, муз_номер, испл_инструмент, испл_оценка_качества)
УЧАСТНИКИ_АНСАМБЛЕЙ (анс_номер, испл_номер)
Напишите запросы на языке SQL:
1. перечислить названия всех музыкальных произведений, созданных после
того, как родился П.И.Чайковский. (1)
SELECT соч_название
FROM сочинения
WHERE соч_дата_сочинения > (SELECT муз_дата_рождения
FROM музыканты
WHERE муз_имя=’П.И. Чайковский’)
2. назвать имена всех музыкантов, не сочиняющих произведений. (1)
SELECT муз_имя
FROM музыканты
WHERE муз_номер NOT IN (SELECT муз_номер FROM сочинения)
3. перечислить названия всех канадских ансамблей, среди участников которых
есть саксофонисты. (1)
SELECT DISTINCT анс_название
FROM ансамбли, участники_ансамблей, исполнители
WHERE ансамбли.анс_номер=участники_ансамблей.анс_номер AND
участники_ансамблей.испл_номер=исполнители.испл_номер AND
испл_ниструмент=’Саксофон’ AND анс_страна=’Канада’
4. перечислить страны, города и даты концертов, на которых композиторы
дирижировали исполнением собственных сочинений. (1)
SELECT испл_страна, испл_город, испл_дата
FROM исполнения, сочинения
WHERE исполнения.соч_номер=сочинения.соч_номер AND
исполнения.муз_номер=сочинения.муз_номер
5. указать даты исполнения произведений, созданными композиторами –
уроженцами России
SELECT испл_дата
FROM исполнения, сочинения
WHERE исполнения.соч_номер=сочинения.соч_номер AND
сочинения.муз_номер IN (SELECT муз_номер
FROM музыканты
WHERE муз_страна_рождения=’Россия’)
Download