Задачи по SQL
Таблицы данных для всех задач
Таблица Salespeople (продавцы)
snum - уникальный номер, назначенный каждому продавцу ("номер служащего"); sname - имя продавца; city - расположение продавца (город); comm - комиссионные продавцов в десятичной форме.
Таблица Customers (заказчики)
cnum - уникальный номер назначенный каждому заказчику; cname - имя заказчика; city - расположение заказчика (город); rating - код, указывающий уровень предпочтения данного заказчика перед другими. Более высокий номер указывают на большее предпочтение (рейтинг); snum - номер продавца, назначенного этому заказчику (из таблицы Продавцов)
Таблица Orders (заказы)
onum - уникальный номер данный каждому приобретению; amt - значение суммы приобретений; odate - дата приобретения; cnum - номер заказчика делающего приобретение (из таблицы Заказчиков); snum - номер продавца продающего приобретение (из таблицы Продавцов)
Условия задач
-
Создайте представление которое бы показывало всех заказчиков которые имеют самые высокие оценки.
- Создайте представление которое бы показывало номер продавца в каждом городе.
- Создайте представление которое бы показывало усредненый и общий заказы для каждого продавца после его имени. Предполагается, что все имена — уникальны.
- Создайте представление которое бы показывало каждого продавца со всеми заказчиками.
- Создайте представление таблицы Продавцов с именем Commissions (Комиссионные). Это представление должно включать только поля comm и snum. С помощью этого представления, можно будет вводить или изменять комиссионные, но только для значений между .10 и .20.
- Некоторые SQL реализации имеют встроенную константу, представляющую текущую дату, иногда называемую "CURDATE". Слово CURDATE может, следовательно, использоваться в операторе SQL, и заменяться текущей датой, когда его значение станет доступным с помощью таких команд как SELECT или INSERT. Мы будем использовать представление таблицы Порядков с именем Entryorders для вставки строк в таблицу Заказов. Создайте таблицу заказов, так чтобыCURDATE автоматически вставлялась в поле odate, если не указано другого значения. Затем создайте представление Entryorders, так чтобы значения не могли быть указаны.
- Передайте Janet право на изменение оценки заказчика.
- Передайте Stephan право передавать другим пользователям право делать запросы в таблице Заказов.
- Отнимите привилегию INSERT в таблице Продавцов у Claire и у всех пользователей которым она была предоставлена.
- Передайте Jerry право вставлять или модифицировать таблицу Заказчиков с сохранением его возможности оценивать значения в диапазоне от 100 до 500.
- Разрешите Janet делать запросы в таблице Заказчиков, но запретите ему уменьшать оценки в той же таблице Заказчиков.
- Создайте область базы данных с именем Myspace которая выделяет 15 процентов своей области для индексов, и 40 процентов на расширение строк.
- Вы получили право SELECT в таблице Заказов продавца Diane. Введите команду так чтобы вы могли ссылаться к этой таблице как к "Orders" не используя имя "Diane" в качестве префикса.
- Сделайте запрос системного каталога чтобы вывести, для каждой таблицы имеющей более чем четыре столбца, имя таблицы, имя владельца, а также имя столбцов и тип данных этих столбцов.
- Сделайте запрос системного каталога чтобы выяснить, сколько синонимов существует для каждой таблицы в базе данных. Не забудьте, что один и тот же синоним принадлежащий двум различным пользователям — это фактически два разных синонима.
- Выясните сколько таблиц имеют индексы в более чем пятидесяти процентов их столбцов
смотрите еще серию задач 43 задачи по SQL