Задачи по SQL Часть 3 из 3

Задачи по SQL

sql

 

Часть 1   Часть 2  Часть 3

Таблицы данных для всех задач

Таблица Salespeople (продавцы)

SQL

snum - уникальный номер, назначенный каждому продавцу ("номер служащего"); sname - имя продавца; city - расположение продавца (город); comm - комиссионные продавцов в десятичной форме.

Таблица Customers (заказчики)

SQL база

cnum - уникальный номер назначенный каждому заказчику; cname - имя заказчика; city - расположение заказчика (город); rating - код, указывающий уровень предпочтения данного заказчика перед другими. Более высокий номер указывают на большее предпочтение (рейтинг); snum - номер продавца, назначенного этому заказчику (из таблицы Продавцов)

Таблица Orders (заказы)

задачи SQL

onum - уникальный номер данный каждому приобретению; amt - значение суммы приобретений; odate - дата приобретения; cnum - номер заказчика делающего приобретение (из таблицы Заказчиков); snum - номер продавца продающего приобретение (из таблицы Продавцов)

Условия задач 

  1. Создайте представление которое бы показывало всех заказчиков которые имеют самые высокие оценки.

  2. Создайте представление которое бы показывало номер продавца в каждом городе.
  3. Создайте представление которое бы показывало усредненый и общий заказы для каждого продавца после его имени. Предполагается, что все имена — уникальны.
  4. Создайте представление которое бы показывало каждого продавца со всеми заказчиками.
  5. Создайте представление таблицы Продавцов с именем Commissions (Комиссионные). Это представление должно включать только поля comm и snum. С помощью этого представления, можно будет вводить или изменять комиссионные, но только для значений между .10 и .20.
  6. Некоторые SQL реализации имеют встроенную константу, представляющую текущую дату, иногда называемую "CURDATE". Слово CURDATE может, следовательно, использоваться в операторе SQL, и заменяться текущей датой, когда его значение станет доступным с помощью таких команд как SELECT или INSERT. Мы будем использовать представление таблицы Порядков с именем Entryorders для вставки строк в таблицу Заказов. Создайте таблицу заказов, так чтобыCURDATE автоматически вставлялась в поле odate, если не указано другого значения. Затем создайте представление Entryorders, так чтобы значения не могли быть указаны.
  7. Передайте Janet право на изменение оценки заказчика.
  8. Передайте Stephan право передавать другим пользователям право делать запросы в таблице Заказов.
  9. Отнимите привилегию INSERT в таблице Продавцов у Claire и у всех пользователей которым она была предоставлена.
  10. Передайте Jerry право вставлять или модифицировать таблицу Заказчиков с сохранением его возможности оценивать значения в диапазоне от 100 до 500.
  11. Разрешите Janet делать запросы в таблице Заказчиков, но запретите ему уменьшать оценки в той же таблице Заказчиков.
  12. Создайте область базы данных с именем Myspace которая выделяет 15 процентов своей области для индексов, и 40 процентов на расширение строк.
  13. Вы получили право SELECT в таблице Заказов продавца Diane. Введите команду так чтобы вы могли ссылаться к этой таблице как к "Orders" не используя имя "Diane" в качестве префикса.
  14. Сделайте запрос системного каталога чтобы вывести, для каждой таблицы имеющей более чем четыре столбца, имя таблицы, имя владельца, а также имя столбцов и тип данных этих столбцов.
  15. Сделайте запрос системного каталога чтобы выяснить, сколько синонимов существует для каждой таблицы в базе данных. Не забудьте, что один и тот же синоним принадлежащий двум различным пользователям — это фактически два разных синонима.
  16. Выясните сколько таблиц имеют индексы в более чем пятидесяти процентов их столбцов

смотрите еще серию задач 43 задачи по SQL