Читаем Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ полностью

Когда создается таблица, Firebird автоматически применяет к ним безопасность схемы по умолчанию. Человеку, который создает таблицу (ее владелец), назначаются к ней все привилегии SQL, включая право передавать привилегии другим пользователям, триггерам и хранимым процедурам. Ни один другой пользователь, за исключением SYSDBA, не будет иметь никакого доступа к этой таблице, пока явно не получит привилегии.

! ! !

ВНИМАНИЕ! Эта защита будет столь же хороша (или плоха), сколь и защита доступа к вашему серверу. Любой, кто может соединиться с вашим сервером, сможет создать базу данных. Любой, кто может соединиться с вашей базой данных, сможет создавать в ней таблицы. Firebird 1.5 несколько улучшает эту печальную ситуацию, позволяя вам ограничивать размещения, где могут создаваться базы данных. См. параметр DatabaseAccess в файле firebird.conf.

. ! .

Информацию о привилегиях SQL см. в главе 35.

<p>Оператор CREATE TABLE</p>

В DDL для создания таблиц используется оператор CREATE TABLE. Его синтаксис:

CREATE TABLE таблица

[EXTERNAL [FILE] 'спецификация-файла']

(<определение-столбца>

[, <определение столбца>

| <ограничение-таблицы> ...]);

Самый первый основной аргумент в CREATE TABLE- идентификатор таблицы[41]. Он является обязательным и должен быть уникальным среди всех имен таблиц, просмотров и процедур базы данных, иначе вы не сможете создать таблицу. Вы также должны предоставить определение, по крайней мере, одного столбца.

Определение столбцов

Когда вы создаете таблицу в базе данных, ваша основная задача - определить различные атрибуты и ограничения для каждого столбца в этой таблице.

Синтаксис определения столбца:

<определение-столбца> = столбец

{тип-данных | COMPUTED [BY] (<выражение>) | домен}

[DEFAULT {литерал | NULL | USER} ]

[NOT NULL] [<ограничение-столбца>]

[COLLATE порядок-сортировки]

В следующем разделе описываются требуемые и необязательные атрибуты, которые вы можете определить для столбца.

Требуемые атрибуты

Приведем требуемые атрибуты.

* Идентификатор столбца (имя), уникальный среди столбцов этой таблицы.

* Одно из следующих:

• тип данных SQL;

• выражение для вычисляемого столбца;

• имя домена для столбцов, основанных на доменах. Столбцы разделяются запятыми, например:

CREATE TABLE PERSON (

PERSON_ID BIGINT NOT NULL,

FIRST_NAME VARCHAR (35),

LAST_NAMES VARCHAR (80),

FULL_NAME COMPUTED BY FIRST_NAME ||' '|| LAST_NAMES,

PHONE_NUMBER TEL_NUMBER) ;

Столбец FULL_NAME является вычисляемым столбцом, который вычисляется конкатенацией двух других описанных столбцов: FIRST_NAME и LAST_NAME. Мы вернемся к вычисляемым столбцам несколько позже. Ограничение NOT NULL применяется к PERSON ID, потому что мы хотим сделать его первичным ключом (детали рассмотрим позже).

Для столбца PHONE_NUMBER мы используем домен, который был определен в нашем примере в главе 13:

CREATE DOMAIN TEL_NUMBER

AS VARCHAR(18)

CHECK(VALUE LIKE ' (0%)%');

Столбцы, основанные на доменах

Если определение столбца основано на домене, оно может включать новое значение по умолчанию, дополнительные ограничения CHECK, предложение COLLATE, которые перекрывают значения, уже определенные в определении домена. Оно также может включать дополнительные атрибуты или ограничения столбца. Например, вы можете добавить ограничение NOT NULL для столбца, если домен его еще не содержит.

! ! !

ВНИМАНИЕ! Домен, который был определен как NOT NULL, не может быть переопределен на уровне столбца, как допускающий пустое значение.

. ! .

Например, следующий оператор создает таблицу COUNTRY, ссылающуюся на домен с именем COUNTRYNAME, который не имеет ограничения NOT NULL:

CREATE TABLE COUNTRY (

COUNTRY COUNTRYNAME NOT NULL PRIMARY KEY,

CURRENCY VARCHAR(10) NOT NULL);

Мы добавили ограничение NOT NULL в определение столбца COUNTRYNAME, потому что он будет первичным ключом таблицы COUNTRY.

Необязательные атрибуты

Следующие разделы описывают необязательные атрибуты столбца.

Значение DEFAULT

Определение значения по умолчанию может сэкономить время ввода данных и предотвратить ошибки ввода данных, когда новая строка добавляется в таблицу. Если строка добавляется без включения этого столбца в список столбцов, то значение по умолчанию - если определено - может быть автоматически записано в столбец. Основанный на домене столбец может включать значение по умолчанию, которое локально перекрывает значение по умолчанию, определенное для домена.

Например, возможным значением по умолчанию для столбца TIMESTAMP может быть контекстная переменная CURRENT_TIMESTAMP (серверная дата и время). В символьном столбце логического стиля (True/False) значение по умолчанию может быть установлено в ' F' , чтобы гарантировать, что допустимое, непустое значение будет записано в каждую новую строку.

Значение по умолчанию должно быть совместимым с типом данных столбца и должно согласовываться с любыми другими ограничениями этого столбца или лежащего в основе домена. Значение по умолчанию, соответствующее типу данных, может быть:

* константой (например, строкой, числом или датой);

Перейти на страницу:

Похожие книги

Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript

Данная книга посвящена программированию игр с помощью ActionScript. Здесь вы найдете подробные указания, необходимые для создания самых разных игр – аркад, головоломок, загадок и даже игровых автоматов. В тексте приведены исходные коды программ и детальные, доступно изложенные инструкции. Базовые принципы программирования ActionScript рассматриваются на примере игр, однако вы без труда сможете применить полученные знания и для разработки неигровых проектов, таких как Web-дизайн и реклама. Рекомендации Гэри Розенцвейга помогут вам не только придумывать занимательные игры и размещать их на Web-сайте, но и оптимизировать скорость их работы, а также защищать свои творения от несанкционированного копирования. Представленный в книге код несложно изменить для использования в других программах.Книга предназначена для широкого круга читателей – создателей анимационных роликов, художников-оформителей, программистов и разработчиков Web-сайтов. Издание может также выступать в качестве практического пособия по изучению ActionScript.

Гэри Розенцвейг

Программирование, программы, базы данных / Программирование / Книги по IT
Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ
Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ

Эта книга представляет собой перевод третьего издания американского бестселлера Effective C++ и является руководством по грамотному использованию языка C++. Она поможет сделать ваши программы более понятными, простыми в сопровождении и эффективными. Помимо материала, описывающего общую стратегию проектирования, книга включает в себя главы по программированию с применением шаблонов и по управлению ресурсами, а также множество советов, которые позволят усовершенствовать ваши программы и сделать работу более интересной и творческой. Книга также включает новый материал по принципам обработки исключений, паттернам проектирования и библиотечным средствам.Издание ориентировано на программистов, знакомых с основами C++ и имеющих навыки его практического применения.

Скотт Майерс , Скотт Мейерс

Программирование, программы, базы данных / Программирование / Книги по IT