Perl для системного администрирования

Создание/удаление баз данных и таблиц



Создание/удаление баз данных и таблиц

В самом начале сервер пуст и в нем нет объектов, которые могут быть нам полезны. Давайте построим свою базу данных:

CREATE DATABASE sysadm ON userdev=10 LOG ON userlog=5 GO

Данная команда создает 10-мегабайтную базу данных на устройстве jserdev с 5-мегабайтным файлом журнала на устройстве userlog. Эта команда специфична для серверов Sybase/Microsoft SQL Server, т. к. создание баз данных (если оно вообще выполняется) на разных серверах производится поразному.

Команда GO применяется с интерактивными клиентами баз данных и служит указанием на то, что необходимо выполнить предыдущую команду. Но это не SQL-оператор. В следующих примерах будем считать, что команду GO необходимо выполнять после каждого SQL-оператора, если используется один из таких клиентов. Кроме того, комментарии в SQL будут обозначаться при помощи «- -».

Чтобы удалить эту базу данных, необходимо выполнить команду DROP:

DROP DATABASE sysadm

Теперь создадим пустую таблицу, в которой будет храниться информация из табл. D.I.

USE sysadm

-- Последнее напоминание: перед тем как выполнить следующую

-- команду, необходимо набрать GO (если вы используете

-- интерактивный клиент)

CREATE TABLE hosts (



name characterise) NOT NULL,
ipaddr character(15) NOT NULL,
aliases character(SO) NULL,
owner character(40) NULL,
dept character(15) NULL,
bldg character(IO) NULL,
room character(4) NULL,
manuf character(IO) NULL,
model

) character(IO) NULL

Сначала мы указываем, какая база данных (sysadm) будет использоваться. Оператор USE оказывает действие только в том случае, когда он выполняется отдельно до запуска других команд, поэтому ему нужен собственный оператор GO.

Затем мы создаем таблицу, указывая ее имя, тип и длину данных, а также настройки NULL/NOT NULL для каждого столбца. Теперь немного поговорим о типах данных.

В таблице можно хранить различные типы данных, включая числа, даты, текст и даже изображения и другие двоичные данные. Столбцы в ней создаются для хранения данных определенного типа. У нас
скромные потребности, поэтому таблица состоит из столбцов, хранящих простые строки characters (символов). В SQL можно строить определяемые пользователями псевдонимы типов данных, такие как ip_address или employeeid. Определяемые пользователями типы данных применяются при создании таблиц для поддержки читаемости ее структуры, а также для форматов данных, которые не должны меняться от столбца к столбцу в разных таблицах.

Последний набор параметров в предыдущей команде определяет, обязательным ли является поле. Если параметр равен NOT NULL, то новую строку нельзя добавить в случае, если в этом поле у нее нет данных. В нашем примере важны имя машины и ее IP-адрес, так что следует объявить эти поля как NOT NULL. Все остальные поля необязательны (хоть и желательны). Помимо NULL/NOT NULL существуют и другие ограничения, накладываемые на поля для согласованности данных. Например, чтобы убедиться, что две машины не называются одинаково, можно изменить строку

name character(30) NOT NULL

на:

name character(30) NOT NULL CONSTRAINT unique_name UNIQUE

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

Удалить таблицу из базы данных значительно проще, чем создать ее:

USE sysadm

DROP TABLE hosts



Содержание раздела