З а д а н и е № 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.  Количество сдаваемых в аренду объектов в каждом городе, где арендная плата меньше

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 муз_страна_рождения=’Россия’)