Лабораторная работа №3. Создание запросов и модификация таблиц базы данных.

Вводная

Цель работы

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

Задание

  1. Подготовить 3 запроса с использованием различных функций работа с полем дата, со строковыми данными (в том числе групповых).
  2. Определить свой вариант для выполнения последующих заданий при помощи SQL запроса:
    SELECT MOD(ORD("?"),5)+1
    Где "?" - это первая буква вашей фамилии кириллицей.
  3. Подготовить и выполнить согласно своему варианту средствами СУБД MySQL 4 запроса по выборке информации из таблиц базы данных с использованием агрегатных функций.
  4. Подготовить и выполнить согласно своему варианту средствами СУБД MySQL 2 запроса по модификации информации (вставка, удаление, замещение) из таблиц базы данных для решения нижеприведенных задач. При этом в тех заданиях, где речь идет о создании таблиц, предполагается формировании постоянной таблицы базы данных.

Варианты

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

Вариант 1.
  1. Для каждой поставляемой для некоторого изделия детали выдать ее номер, номер изделия и соответствующее общее поставляемое количество деталей.
  2. Выдать все триплеты "номер поставщика, номер детали и номер изделия", такие, что в каждом триплете указанные поставщик, деталь и изделие не яв-ляются попарно соразмещенными в одном городе.
  3. Выдать номера изделий, для которых детали полностью поставляет поставщик 1. Т.е. поставляемых поставщиком 1 деталей достаточно для полного комплектования изделия. Состав деталей изделия можно оценить на основе ба-зового набора данных таблицы поставка, имея в виду что в базовом наборе данных отражен полный состав всех изделий.
  4. Выдать номера и фамилии поставщиков, поставляющих детали для какого-либо изделия с деталью 1 в количестве, большем, чем средний объем поставок детали 1 для этого изделия.
Вариант 2.
  1. Выдать общее количество деталей P1, поставляемых поставщиком 1.
  2. Выдать все пары названий городов, таких, что какой-либо поставщик из первого города поставляет детали для некоторого изделия, изготовляемого во втором городе.
  3. Выдать номера изделий, использующих только детали, поставляемые поставщиком 1.
  4. Выдать номера деталей, поставляемых каким-либо поставщиком из Лондона, для изделия, изготавливаемого также в Лондоне.
Вариант 3.
  1. Выдать номера и фамилии поставщиков, поставляющих одну и ту же деталь для всех перечисленных изделий. Перечень изделий согласовать с преподавателем.
  2. Выдать общее число изделий (не деталей), для которых поставляет детали поставщик 1.
  3. Выдать номера изделий, детали для которых поставляет каждый поставщик, поставляющий какую-либо красную деталь. Т.е. необходимо получить такие номера изделий, детали для которой поставляются всеми поставщиками, среди поставляемых деталей которого есть детали красного цвета.
  4. Выдать все триплеты "номер поставщика, номер детали и номер изделия", такие, что в каждом триплете указанные поставщик, деталь и изделие являются попарно соразмещенными в одном городе.
Вариант 4.
  1. Выдать номера и фамилии поставщиков, поставляющих по крайней мере одну деталь, поставляемую по крайней мере одним поставщиком, который поставляет по крайней мере одну красную деталь. Т.е. необходимо выдать полные сведения о всех поставщиках которые поставляют такие детали, которые есть в поставках поставщиков, поставляющих красные детали.
  2. Выдать список деталей, поставляющихся для всех изделий, изготавливаемых в Лондоне.
  3. Выдать номера деталей, поставляемых каким-либо поставщиком из Лондона.
  4. Выдать номера деталей, поставляемых для какого-либо изделия из Лондона.
Вариант 5.
  1. Выдать номера изделий, для которых детали поставляются по крайней мере одним поставщиком не из того же самого города, что и изделие.
  2. Выдать список всех поставок, в которых количество деталей находится в диапазоне от 300 до 750 включительно.
  3. Выдать номера изделий, использующих, по крайней мере, одну деталь, по-ставляемую поставщиком S1. Т.е. показать такие изделия, для производства которых пригодились бы детали, поставляемые поставщиком S1.
  4. Выдать номера и названия деталей, поставляемых для какого-либо изделия в Лондоне.

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

Вариант 1.
  1. Увеличить на 10 рейтинг всех поставщиков, рейтинг которых в настоящее время меньше, чем рейтинг поставщика S4.
  2. Постройте таблицу, содержащую список номеров изделий, которые либо находятся в Лондоне, либо для них поставляются детали каким-нибудь поставщиком из Лондона.
Вариант 2.
  1. Удалить все изделия, для которых нет поставок деталей.
  2. Построить таблицу с номерами поставщиков и парами номеров деталей, таких, что некоторый поставщик поставляет обе указанные детали. При этом пары вида 1 и 2, а также 2 и 1 считать одинаковыми.
Вариант 3.
  1. Увеличить размер поставки на 10 процентов для всех поставок тех постав-щиков, которые поставляют какую-либо красную деталь.
  2. Построить таблицу с комбинациями "цвет детали-город, где хранится деталь", исключая дубликаты пар (цвет-город).
Вариант 4.
  1. Построить таблицу, содержащую список номеров деталей, которые постав-ляются либо каким-нибудь поставщиком из Лондона, либо для какого-либо изделия в Лондон.
  2. Вставить в таблицу shoppers нового поставщика с номером 10 с фамилией Уайт из города Нью-Йорк с неизвестным рейтингом.
Вариант 5.
  1. Удалить все изделия из Рима и все соответствующие поставки.
  2. Построить таблицу с упорядоченным списком всех городов, в которых размещаются по крайней мере один поставщик, деталь или изделие.

Вопросы

  1. Каким образом сохранить результаты запроса в таблице?
  2. В каких случаях вместо фразы IN можно использовать операцию сравнения?
  3. Какие существуют средства группирования в SQL? Как они используются?