Создание/удаление баз данных и таблиц
В самом начале сервер пуст и в нем нет объектов, которые могут быть нам полезны. Давайте построим свою базу данных:
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