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