|
Программирование >> Руководство по sql
Чтобы предложение REFERENCES работало надлежащим образом, оператор SQL Anywhere CREATE TABLE требует, чтобы столбец sonum в таблице sales являлся либо первичным ключом, либо имел уникальный индекс. Не забудьте сделать это перед выполнением описанной выще команды. В ряде систем имеются специальные команды (не связанные с оператором CREATE TABLE) для обработки значений по умолчанию, правил и Офаничений на целостность. Они обсуждаются в главе 10. Первые СУБД иногда перекладывали вопросы, связанные со значениями по умолчанию и офаничениями на целостность, на приложения и не поддерживали соответствующие команды SQL. ИЗМЕНЕНИЕ И УДАЛЕНИЕ БАЗ ДАННЫХ И ИХ ОБЪЕКТОВ Итак, вы поняли, что базы данных и их объекты создаются с помощью той или иной модификации команды CREATE. Для удаления самой базы данных и объектов базы данных в большинстве систем предусмофена команда DROP. (Как ни сфанно, до 1988 г. эта команда не входила в стандарт ANSI.) Для изменения объектов обычно применяется команда ALTER. Изменение баз данных в некоторые версии SQL включена команда, позволяющая изменять размер базы данных (обычно в большую сторону). Возможность выделения дополнительного просфанства на устройстве базы данных особенно важна для растущих со временем приложений. Не менее важна (но реже реализуема) возможность просмофа базы данных на предмет наличия неиспользуемого просфанства на усфойстве базы данных. Изменение определений таблицы Спроектировав и создав базу данных, через некоторое время вы можете обнаружить, что она недостаточно хороша, или что просто изменились некоторые фс-бования. В некоторых системах с помощью команды ALTER TABLE можно изменять Сфуктуру таблицы (даже если она заполнена данными). В ней могут использоваться ключевые слова для добавления и удаления столбцов, изменения их имени, типа, длины, нулевого статуса и ограничений. Например, чтобы добавить столбец к таблице authors, можно попробовать ввести следующую команду: SQL: alter table authors add birth date datetime null Столбцы, добавленные к таблице с помощью оператора ALTER TABLE, как правило, должны допускать нулевые значения. Это связано с тем, что если новый столбец добавляется к уже заполненной данными таблице, то в нем должны содержаться некоторые значения, и самым естественным выбором при этом являются нулевые (неизвестные) значения. Во многих реляционных системах добавление столбца является единственной командой, позволяющей выполнять структурные изменения в таблицах. В них отсутствуют команды для удаления и переименования столбцов, изменения их типа и нулевого статуса. Однако обычно можно избежать этих офаничений. Например, если не удается физически удалить столбец, можно создать не включающую его виртуальную таблицу и с ее помощью выполнять все операции по выборке и модификации данных. Кроме того, с помощью виртуальной таблицы можно создать иллюзию изменений в названии столбца, просто определив новый заголовок в предложении SELECT оператора CREATE VIEW; в типе данных столбца, используя различные функции преобразования типов данных. Для реструктуризации таблицы имеется и другая возможность. Можно создать новую таблицу с требуемой вам структурой, сохранить данные из старой таблицы в файле операционной системы, а затем зафузить их в новую таблицу. В некоторых системах имеется специальная команда (в Sybase SQL Server - SELECT INTO), позволяющая перемещать данные между таблицами разных сфуктур. Подробности вы узнаете в главе 9. Удаление базы данных При удалении базы данных или объекта базы данных канут в лету все связанные с ними структуры и данные. Поэтому в большинстве систем выполнять команду DROP разрешается только либо владельцу соответствующего объекта, либо лицу, наделенному специальными полномочиями. Синтаксис команды DROP DATABASE обычно имеет следующий вид: DROP DATABASE имя базы данных Это очень опасная команда, так как при ее выполнении уничтожается все содержимое базы данных. Удаление таблиц Для удаления таблицы из базы данных используется команда DROP TABLE. В большинстве диалектов SQL она имеет следующий вид: DROP TABLE имя таблицы При выполнении этой команды из базы данных удаляется заданная таблица со всем ее содержимым. Если же требуется сохранить сфуктуру таблицы, но удалить из нее все данные, можно воспользоваться командой DELETE (читайте о ней дальше в этой главе). Удаление индекса Удаление индекса может пофебоваться в двух ситуациях: вы, или кто-то другой создали индекс по столбцу, но в большинстве запросов он не используется; необходимо серьезным образом модифицировать ключевые значения. Поскольку при каждом таком изменении система будет пересфаивать индекс, имеет смысл сначала удалить его, а после выполнения модификаций создать индекс заново. Хотя повторное создание индекса потребует некоторого времени, это удобнее, чем наблюдать, как система задумывается при выполнении каждого оператора модификации данных. В большинстве систем команда удаления индекса имеет следующий вид: DROP INDEX имя таблицы.имя индекса При выполнении этой команды система удаляет из базы данных заданный индекс. Команда для удаления индекса auidind в таблице authors имеет следующий вид: SQL: drop index authors.auidind ДОБАВЛЕНИЕ, ИЗМЕНЕНИЕ И УДАЛЕНИЕ ДАННЫХ После проектирования и создания базы данных (таблиц и, возможно, индексов) для начала полноценной работы в нее нужно поместить данные, которые впоследствии можно будет в случае необходимости добавлять, изменять и удалять. У вас есть структура. Теперь требуется наполнить ее содержанием. В SQL для изменения данных используются три основные команды (их часто называют операторами модификации данных). Оператор INSERT добавляет новые строки в базу данных. Оператор UPDATE изменяет существующие в базе данных строки. Оператор DELETE удаляет строки из базы данных. В этом разделе описываются команды SQL по модификации данных. В следующем разделе приводится пример использования оператора INSERT. Другой метод добавления данных в таблицу подразумевает их загрузку с помощью специальной команды вставки из файла операционной системы. Этот метод особенно подходит для переноса данных из одной системы управления базами данных в другую. Реляционные системы с графическим интерфейсом пользователя предоставляют для ввода данных специальные формы (form) - они напоминают обычный бумажный бланк, в строки которого вводятся необходимые данные. Формы обычно удобнее использовать, чем операторы модификации данных, так как они позволяют автоматизировать и упростить работу. Однако все действия по модификации в системах реляционных баз данных выполняются на основе команд SQL, так что изучать их надо даже независимо от того, планируете ли вы их использовать в будущем. Выполнять операторы модификации данных обычно позволяется не всем. Владелец базы данных или владельцы отдельных объектов базы данных с помощью операторов GRANT и REVOKE могут разрешить отдельным пользователям выполнять определенные команды модификации. С помощью каждого оператора модификации (INSERT, UPDATE, DELETE) за один раз можно изменять данные только в одной таблице. Однако в ряде систем эти изменения могут касаться данных из других таблиц и даже других баз данных. Используя оператор SELECT в команде модификации данных, можно переместить значения из одной таблицы в другую. Подобные команды описываются дальше в этой главе. С некоторыми офаничениями команды модификации данных работают и на виртуальных таблицах. За подробностями обращайтесь к главе 9. Добавление новой строки Оператор INSERT позволяет добавлять Сфоки в базу данных одним из двух способов: с помощью ключевого слова VALUES или с помощью оператора SELECT. Опишем сначала правила использования ключевого слова VALUES. Ключевое слово VALUES определяет значения некоторых или всех данных в столбцах новой сфоки. Ниже представлена общая форма оператора INSERT, использующего ключевое слово VALUES: INSERT INTO имя таблицы [{столбец! [ , столбец21...)] VALUES (константа! [ , константа2]..,) Следующий оператор INSERT добавляет новую строку в таблицу publishers и задает значения для каждого столбца: SQL: insert into publishers values (1622, Jardin, Inc., 5 5th Ave., Camden, NJ) Обратите внимание, что значения нужно вводить в том порядке, в котором определялись столбцы в соответствующем операторе CREATE TABLE (другими словами, сначала идентификационный номер, затем имя, адрес, город и, наконец,
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |