Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
М. ГРУБЕР_SQL.doc
Скачиваний:
22
Добавлен:
18.04.2019
Размер:
1.4 Mб
Скачать

Удаление таблиц

Вы должны быть собственником (т.е. быть создателем) таблицы, чтобы иметь возможность удалить ее. Поэтому не волнуйтесь о случайном разрушении ваших данных, SQL сначала потребует, чтобы вы очистили таблицу прежде, чем удалит ее из базы данных. Таблица с находящимися в ней строками, не может быть удалена. Обратитесь к Главе 15 за подробностями относительно того, как удалять строки из таблицы. Синтаксис для удаления вашей таблицы, если конечно она является пустой, следующая:

DROP TABLE <table name>;

При подаче этой команды, имя таблицы больше не распознается, и нет такой команды, которая могла бы быть дана этому объекту. Вы должны убедиться, что эта таблица не ссылается внешним ключом к другой таблице (внешние ключи обсуждаются в Главе 19), и что она не используется в определении Представления (Глава 20).

Эта команда фактически не является частью стандарта ANSI, но она имеется во многих реализациях SQL, поддерживаема и полезна. К счастью, она более проста, и, следовательно, более непротиворечива, чем ALTER TABLE. ANSI просто не имеет способа для определения разрушенных или неправильных таблиц.

Примечание. Не все SQL-серверы требуют очистки таблицы перед ее удалением. Здесь нужно обратиться к документации по Вашей системе.

Резюме

Теперь Вы уже бегло ориентируетесь в основах определений данных. Вы можете создавать, изменять, и удалять таблицы. В то время как только первая из этих функций — часть официального стандарта SQL, другие будут время от времени меняться, особенно — ALTER TABLE. DROP TABLE позволяет вам избавиться от таблиц, которые бесполезны. Она уничтожает только пустые таблицы, и, следовательно, не разрушает данные.

Вы теперь знаете об индексах, а также как их создавать и удалять. SQL не дает вам большого управления ими, так как реализация, которую вы используете, довольно удачно определяет, как быстро выполняются различные команды. Индексы — это один из инструментов дающий Вам возможность воздействовать непосредственно на эффективность ваших команд в SQL. Мы рассмотрели индексы здесь, чтобы отличать их от ограничений, с которыми их нельзя путать. Ограничения — это тема Главы 18 и Главы 19.

Работа с sql

  1. Напишите предложение CREATE TABLE, которое бы вывело нашу таблицу Заказчиков.

  2. Напишите команду, которая бы давала возможность пользователю быстро извлекать Заказы, сгруппированные по датам из таблицы Заказов.

  3. Если таблица Заказов уже создана, как Вы можете заставить поле onum быть уникальным (если допустить что все текущие значения уникальны) ?

  4. Создайте индекс, который бы разрешал каждому продавцу быстро отыскивать его Заказы, сгруппированные по датам.

  5. Предположим, что каждый продавец имеет только одного заказчика с данной оценкой, введите команду, которая его извлечет.

(См. Приложение A для ответов.)

18

Ограничение значений ваших данных

В ГЛАВЕ 17 ВЫ УЗНАЛИ, КАК СОЗДАЮТСЯ ТАБЛИЦЫ. Теперь более тщательно с этого места мы покажем вам, как вы можете устанавливать ограничения в таблицах.

Ограничения — это часть определения таблицы, которое ограничивает значения, которые вы можете вводить в столбцы.

До этого места в книге единственным ограничением на значения, которые вы могли вводить, были тип данных и размер вводимых значений, которые должны быть совместимы с теми столбцами, в которые эти значения помещаются (как и определено в команде CREATE TABLE или команде ALTER TABLE). Ограничения дают вам значительно большие возможности, и скоро вы это увидите. Вы также узнаете в этой главе, как определять значения по умолчанию.

Значение по умолчанию — это значение, которое вставляется автоматически в любой столбец таблицы, когда значение для этого столбца отсутствует в команде INSERT для этой таблицы. NULL — это наиболее широко используемое значение по умолчанию, но в этой главе будет показано, как определять другие.