Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
!!!Итоговая контрольная работа SELECT.doc
Скачиваний:
7
Добавлен:
16.11.2019
Размер:
137.73 Кб
Скачать
  1. Goods (Товары)

Атрибут

Ключ

Семантика

Тип данных

Ограничение целостности

1

goodsid

PK

Уникальный код товара

serial

PRIMARY KEY

2

model

FK (model. model)

Название модели

Varchar(40)

NOT NULL, FOREIGN KEY

3

cost

Цена закупки

Numeric(6.2)

NOT NULL, >0

4

number

Поставлено всего

integer

NOT NULL, >0

5

remain

Количество в наличии

integer

>0

5

customid

FK (custom. customid)

Уникальный код заказа

serial

NOT NULL, FOREIGN KEY

6

shopid

FK (shop.shopid)

Уникальный код магазина

serial

FOREIGN KEY

7

costplus

Цена для покупателя

Numeric(6.2)

NOT NULL, CostPlus>Cost

  1. Model (Модели)

    Атрибут

    Ключ

    Семантика

    Тип данных

    Ограничение целостности

    1

    model

    PK

    Название модели

    Varchar(40)

    PRIMARY KEY

    2

    descripti on

    Описание

    text

  2. Custom (Заказ)

Атрибут

Ключ

Семантика

Тип данных

Ограничение целостности

1

customid

PK

Уникальный код заказа

serial

PRIMARY KEY

2

nom

Номер заказа

integer

NOT NULL, >0

3

datecust

Дата заказа

date

NOT NULL

4

supid

FK (supplier. supid)

Уникальный код поставщика

serial

NOT NULL, FOREIGN KEY

5

period

Время выполнения заказа (дни)

integer

NOT NULL, >=0

4

datedel

Дата поставки

date

DEFAULT NULL

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

  1. Выбрать всю информацию по поставщикам. Отсортировать по названию.

  2. Выбрать информацию по поставщикам, включающую название, адрес, рейтинг. Отсортировать по убыванию рейтинга.

  3. Выбрать всех поставщиков из города Челябинск

  4. Выбрать всех поставщиков из города Челябинск и Москва. Информация о поставщике должна включать название поставщика, рейтинг, город.

  5. Выбрать всех поставщиков с рейтингом менее 0. Отсортировать по убыванию рейтинга.

  6. Выбрать всех поставщиков с рейтингом больше 0. Отсортировать по возрастанию рейтинга.

  7. Выбрать всех поставщиков в названии которых присутствует сочетание букв «ЗАО»

  8. Выбрать информацию о тех поставщиках, для которых заполнено поле «note» (примечание). Информация должна включать название, адрес, примечание. Список нужно отсортировать по названию в алфавитном порядке.

  9. Вывести список всех продавцов, отсортированный по алфавиту.

  10. Вывести всю информацию по всем заказам с начала года. Отсортировать по номерам.

  11. Вывести информацию по неисполненным заказам (заказам, у которых отсутствует дата поставки).

  12. Вывести информацию по неисполненным просроченным заказам (заказам, у которых отсутствует дата поставки и время исполнения заказа истекло).

  13. Вывести информацию по заказам, включающую № заказа, дату заказа, за последнюю неделю.

  14. Вывести информацию по заказам, на выполнение которых задан срок более 30 дней

  15. Выдать информацию по товарам с ценой для покупателя более 300 рублей.

  16. Выдать информацию о товаре, у которого разница между ценой закупки и ценой для покупателя >300 рублей.

  17. Информация о товаре, заказанном в единичном экземпляре.

  18. Информацию о товаре, которая включает в себя название модели, общую стоимость заказа (количество*цена закупки). Отсортировать по названию модели.

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

  1. Определить среднюю торговую площадь в каждом городе.

  2. Определить максимальную торговую площадь в каждом городе.

  3. Определить минимальную торговую площадь в каждом городе.

  4. Определить суммарную торговую площадь во всех городах, кроме Челябинска.

  5. Определить количество магазинов в каждом городе.

  6. Определить количество поставщиков в каждом городе.

  7. Определить для каждой модели минимальную и максимальную цену закупки.

  8. Определить для каждой модели минимальную и максимальную цену для покупателя.

  9. Определить по каждому коду магазина количество в наличии товара модели 'N12345BLACK'.

  10. Определить для каждого кода магазина количество представленных моделей.

  11. Для каждого кода поставщика количество выполненных заказов с Датой заказа = от 01.01.2007 по 01.06.2007.

  12. Для каждого кода поставщика количество невыполненных и просроченных заказов с Датой заказа = от 01.01.2007 по сегодняшний день.

  13. Определить минимальную и максимальную цену для покупателя по модели 'Q76859RED'.

  14. По каждому городу определить максимальный, минимальный и средний рейтинг поставщика.

  15. Определить среднюю цену для покупателя по каждому коду магазина.

  16. Определить по каждой модели количество проданных.

  17. Определить по каждому коду продавца максимальную выручку за товар с Датой продажи = от 01.09.2007 по 01.10.2007.

  18. Определить по каждому коду продавца суммарную выручку за товар с Датой продажи = от 01.09.2007 по 01.10.2007.

Подзапросы и многотабличные запросы

  1. Определить в каком городе максимальная торговая площадь.

  2. Определить в каком городе максимальное количество магазинов.

  3. Определить у какого поставщика максимальный рейтинг.

  4. Определить у какого поставщика минимальный рейтинг.

  5. Определить всю информацию о поставщиках, неисполнивших заказ и просрочивших поставку.

  6. Определить ФИО продавца с максимальными продажами за прошедший месяц.

  7. Выбрать информацию о продавцах и определить для каждого суммарную выручку за товар за прошедший месяц. Отсортировать по убыванию выручки.

  8. Определить суммарную выручку за товар у каждого магазина за прошедший месяц.

  9. Определить по каждому поставщику суммарную выручку за товар за прошедший месяц.

  10. Определить количество проданных сумок каждой модели, поставленных начиная с 1 числа прошедшего месяца. В результирующую таблицу включить номер модели, описание модели, количество проданных, количество закупленных, отсортировать по убыванию количества проданных.

  11. Определить информацию о товаре, которая должна включать в себя код товара, описание модели, название поставщика, адрес поставщика, дату поставки, количество поставленного товара, количество в наличии, цену для покупателя, название магазина, адрес магазина.

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

  13. Определить товары, имеющиеся в наличии, в описании которых встречаются слова «пряжка» или «фурнитура». Выбранная информация должна включать в себя код товара, модель, описание модели, № магазина, адрес магазина, сколько осталось в наличии.

  14. Определить для проданных товаров разницу между датой продажи и датой поставки в днях. Отсортировать по возрастанию этой величины. Выбранная информация должна включать код товара, описание модели, разница между датой продажи и датой поставки.

  15. Определить товары, которые не продаются в течении срока большего, чем один месяц (т.е. количество закупленных = количеству оставшихся в наличии и поставка была за 1 месяц от сегодняшней даты). Выбранная информация должна включать в себя код товара, модель, описание модели, название поставщика, адрес поставщика, № магазина, адрес магазина.

  16. Определить товар, который был распродан в течении 3-х дней с момента поставки. В выбранной информации указать код товара, модель, описание модели, код поставщика, код магазина, количество поставленного товара, дата поставки.

  17. Определить наличие товара в магазине «№ 123» (код магазина = 1). Выбранная информация должна включать код товара, модель, описание модели, название поставщика, цена для покупателя, количество в наличии. Отсортировать по названию модели.

  18. Выбрать поставщиков, которые находятся в том же городе, что и магазин № 123 (код магазина = 1). Выбранная информация должна включать название поставщиков, адрес.

Контрольные вопросы

  1. Какие основные конструкции входят в оператор SELECT?

  2. Можно ли менять порядок конструкций в операторе SELECT?

  3. Укажите ключевое слово, предназначенное для исключения повторяющихся строк из результата запроса?

  4. В чем отличие конструкций WHERE и HAVING?

  5. С помощью какой конструкции выполняется сортировка результата запроса?

  6. Какое ключевое слово используется для выполнения сортировки по убыванию?

  7. Какие конструкции являются обязательными для оператора SELECT?

  8. Какие агрегатные (агрегирующие, групповые) функции вы знаете?

  9. Какие типы условий поиска (предикаты) вы знаете? Какие ключевые слова используются для их задания?

  10. С помощью каких ключевых слов можно соединить столбцы нескольких таблиц?

  11. Как можно соединить столбцы нескольких таблиц без использования специальных ключевых слов?

  12. С помощью каких ключевых слов можно объединить строки нескольких таблиц?

  13. С помощью каких ключевых слов задается декартово произведение таблиц?

Литература

  1. Документация по PostgreSQL 8.2. http://www.postgresql.org/docs/8.2/interactive/index.html.

  2. Уорсли, Д. PostgreSQl. Для профессионалов/ Джон Уорсли, Джейк Дрейк, перевод М. Матвеева. - Спб.: Питер, 2003. - 496 с.

  3. Перевод документации по PostgreSQL 8.2 devel. http://www.linuxshare.ru/postgresql/manual/preface.html.

  4. Коннолли, Т. Базы Данных. Проектирование, реализация и сопровождение. Теория и практика/Томас Конноли, Каролин Бегг, пер. с англ. –М.: Издательский дом «Вильямс», 2003. – 1440 с.

  5. Полякова, Л.Н. Учебный курс. Основы SQL. http://www.intuit.ru/department/database/sql/