Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab2_6_-БД_ПИ.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
6.5 Mб
Скачать

1.3. Создание таблиц

Для создания таблицы применяется команда CREATE TABLE, синтаксис которой определен ниже:

CREATE TABLE Table [EXTERNAL [FILE] 'filespec']

(<col_def> [, <col_def> | <tconstraint>… ]);

В параметре Table указывается имя создаваемой таблицы. В параметре EXTERNAL [FILE] указывается файл, содержащий внешнюю таблицу с данными.

Параметр <col_def> предназначен для описания поля таблицы. Синтаксис описания поля приведен ниже:

<col_def> = col {datatype | COMPUTED [BY] (< ехрr>) | domain}

[DEFAULT { literal | NULL | USER}]

[NOT NULL] [ <col_constraint>]

[COLLATE collation]

< col constraint = [CONSTRAINT constraint] <constraint def>

[ <col_constraint>...]

<constraint_def> = {UNIQUE | PRIMARY KEY |

CHECK ( <search _condition>) |

REFERENCES other _table [( other_col [, other_col ...])]

[ON DELETE {NO ACTION|CASCADE|SET DEFAULT|SET NULL}]

[ON UPDATE {NO ACTION|CASCADE|SET DEFAULT|SET NULL}]

Описание поля практически не отличается от описания домена. Поле может описываться самостоятельно на базе домена или являться вычисляемым. Простая таблица базы данных задается небольшим SQL-запросом:

CREATE TABLE MYTABLE (

MyFieldl CHAR(6),

MyField2 CHAR(50) CHARACTER SET WIN1251,

MyField3 INTEGER);

Для определения вычисляемого поля следует использовать другой синтаксис:

<co1_name> computed [by] (<expr>)

В параметре (<ехрr>) могут быть указаны любое арифметическое выражение или строковая операция. В следующем примере показано, как задается вычисляемое поле:

CREATE TABLE EMPLOYEE

(FIRST_NAME VARCHAR(10) NOT NULL,

LAST_NAME VARCHAR(50) NOT NULL,

FULL_NAME COMPUTED BY (LAST_NAME || ' . ' || FIRST_NAME));

Поле FULL_NAME является вычисляемым. В нем будет храниться результат объединения двух строк из предыдущих полей. Если тип возвращаемого выражением значения не указан, Firebird самостоятельно определяет его тип в процессе вычислений.

1.3.1. Ограничения в таблицах

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

СУБД Firebird предоставляет два вида ограничений:

Ограничение целостности на уровне столбца за счет первичного ключа PRIMARY KEY;

Ссылочное ограничение за счет использования вторичного ключа FOREIGN KEY.

Ограничение PRIMARY KEY – это столбец или группа столбцов, который является уникальным идентификатором для каждой строки (записи) в таблице. Таблица может иметь только один первичный ключ.

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

Атрибут NOT NULL должен быть объявлен для всех столбцов в группе из одного или более столбцов. Целостность ключа может быть осуществлена только сравнением значений, а NULL не является значением.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]