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






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