Инструменты пользователя

Инструменты сайта


create_table

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

create_table [2013/07/17 22:33]
create_table [2020/06/13 13:45] (текущий)
Строка 1: Строка 1:
 +====== Команда CREATE TABLE ======
 +Синтаксис [[SQL]] команды CREATE TABLE:
 +<file>
 +      CREATE TABLE <table name>
 +        ( { <column name> <data type> | <size>]
 +        [<colcnstrnt> ...]} .,.. );
 +        [<tabconstrnt>] .,.. );
 +</file>
 +Элементы, используемые в команде CREATE TABLE
 +<file>
 +ЭЛЕМЕНТ             ОПРЕДЕЛЕНИЕ
 +                    Имя таблицы создаваемой этой командой.
 +<table name>
 +                    Имя столбца таблицы.
 +<column name>
 +                    Тип данных, который может содержаться в столбце. Может быть
 +<data type>
 +                    любым из следующих:
 +                                             (ЦЕЛОЕ ЧИСЛО),
 +                    INTEGER
 +                    CHARACTER                (СИМВОЛЬНОЕ),
 +                    DECIMAL                  (ДЕСЯТИЧНОЕ),
 +                    NUMERIC                  (ЧИСЛОВОЕ),
 +                    SMALLINT                 (НАИМЕНЬШЕЕ)
 +                                             (С ПЛАВАЮЩЕЙ ТОЧКОЙ)
 +                    FLOAT
 +                    REAL                     (РЕАЛЬНОЕ),
 +                                             (УДВОЕННАЯ ТОЧНОСТЬ С ПЛАВАЮЩЕЙ ТОЧКОЙ),
 +                    DOUBLE PRECISION
 +                    LONG *                   (ДЛИННОЕ *),
 +                                             (ПЕРЕМЕННОЕ СИМВОЛЬНОЕ *),
 +                    VARCHAR *
 +                    DATE *                   (ДАТА *),
 +                    TIME *                   (ВРЕМЯ *)
 +                    (* — указывает на нестандартный для SQL тип данных)
 +                    Размер. Его значение зависит от <data type>.
 +<size>
 +                    Может быть любым из следующих:
 +<colconstrnt>
 +                                             (НЕ НУЛЕВОЙ),
 +                    NOT NULL
 +                    UNIQUE                   (УНИКАЛЬНЫЙ),
 +                                             (ПЕРВИЧНЫЙ КЛЮЧ),
 +                    PRIMARY KEY
 +                                             (ПРОВЕРКА предиката),
 +                    CHECK(<predicate>)
 +                                                    (ПО УМОЛЧАНИЮ = значимому выражению)
 +                    DEFAULT = <value expression>
 +                    REFERENCES <table name> [(<column name> .,.. )] (ССЫЛКА НА имя таблицы [(
 +                    имя столбца) ] )
 +                    Может быть любым из следующих:
 +<tabconstrnt>
 +                    UNIQUE (УНИКАЛЬНЫЙ),
 +                    PRIMARY KEY (ПЕРВИЧНЫЙ КЛЮЧ),
 +                    CHECK (ПРОВЕРКА предиката )
 +                    FOREIGN KEY(<column name>) (ВНЕШНИЙ КЛЮЧ)
 +                    REFERENCES <table name> [(<column name> .,.. )] (ССЫЛКА НА имя таблицы [(
 +                    имя столбца) ].
 +
 +</file>
 +====== Таблица с вычисляемым полем ======
 +<note important>Не все базы данных поддерживают таблицы с вычисляемым полем. Например в [[PostgreSQL]] для эмуляции этого нужно использовать view.</note>
 +  * Пример: [[http://citforum.ru/programming/32less/les34.shtml|Таблица с вычисляемым полем]]. Данный пример создает таблицу, где среди других полей имеется вычисляемое (физически не существующее) поле NEW_SALARY, значение которого вычисляется по значениям двух других полей (OLD_SALARY и PERC_CHANGE).<file>
 +CREATE TABLE SALARY_HISTORY (
 + EMP_NO                      EMPNO NOT NULL,
 + CHANGE_DATE       DATE DEFAULT "NOW" NOT NULL,
 + UPDATER_ID            VARCHAR(20) NOT NULL,
 + OLD_SALARY            SALARY NOT NULL,
 + PERC_CHANGE        DOUBLE PRECISION DEFAULT 0 NOT NULL
 +              CHECK (PERC_CHANGE BETWEEN -50 AND 50),
 + NEW_SALARY COMPUTED BY
 +              (OLD_SALARY + OLD_SALARY * PERC_CHANGE / 100),
 +PRIMARY KEY (EMP_NO, CHANGE_DATE, UPDATER_ID),
 +FOREIGN KEY (EMP_NO) REFERENCES EMPLOYEE (EMP_NO));
 +</file>