Глава 9. Создание, изменение и удаление таблиц.
Эта глава вводит нас в область SQL называемую - DDL(Data Definition Language - язык определения данных), где создаются объекты данных SQL. Мы рассмотрим создание, изменение, и удаление таблиц и индексов. Индексы позволяют делать поиск в БД более эффективным и, иногда, устанавливают ограничения на вводимую в базу данных информацию.
9.1. Оператор CREATE TABLE
В самом общем виде синтаксис команды создания таблицы может быть представлен следующим образом:
CREATE TABLE <Имя таблицы>
(<Имя столбца> <Тип данных> <Ограничения на столбец>
[{, <Имя столбца> <Тип данных> <Ограничения на столбец> …}]
[<Ограничения на таблицу>]
)
Где:
<Имя таблицы> складывается из следующих элементов
[ database_name . [ schema_name ] . | schema_name . ] table_name
database_name — Имя базы данных, в которой создается таблица. Если аргумент database_name не указан, по умолчанию таблица создается в текущей базе данных.
schema_name — Имя схемы, которой принадлежит новая таблица.
table_name — Имя новой таблицы. Имена таблиц должны соответствовать правилам для идентификаторов. Аргумент table_name может состоять не более чем из 128 символов, за исключением имен локальных временных таблиц (имена с префиксом номера #), длина которых не должна превышать 116 символов.
<Имя столбца> — Имя столбца в таблице. Имена столбцов должны соответствовать правилам для идентификаторов и быть уникальными в данной таблице. Аргумент column_name может содержать от 1 до 128 символов. При создании столбцов с типом данных timestamp аргумент column_name может быть пропущен. Если аргумент column_name не указан, столбцу типа timestamp по умолчанию присваивается имя timestamp. Если имя столбца состоит из нескольких слов (содержит пробелы), оно заключается в квадратные скобки [ ].
<Тип данных> — Указывает тип данных столбца. Тип данных может быть одним из следующих.
CHAR(n) — символьные строки постоянной длины в n символов (максимальная длина 8000 символов, не UNICODE). При задании данного типа под каждое значение всегда отводится n символов, и если реальное значение занимает менее чем n символов, то СУБД автоматически дополняет недостающие символы пробелами.
NUMERIC[(n,m)] (DECIMAL[(n,m)]) — точные числа, здесь n — общее количество цифр в числе, m — количество цифр слева от десятичной точки.
Диапазон -1038-1 .. 1038-1
BIGINT, INT, SMALLINT, TINYINT — целые числа длиной 8, 4, 2 и 1 байт соответственно. TINYINT — целое без знака.
FLOAT[(n)](REAL) — числа большой точности, хранимые в форме с плавающей точкой. Здесь n — число байтов, резервируемое под хранение одного числа. Диапазон чисел определяется конкретной реализацией.
VARCHAR(n) — строки символов переменной длины символов (максимальная длина 8000 символов, не UNICODE).
TEXT(n) — символьные строки, место выделяется страницами размером 8 Кбайт (не UNICODE)
NCHAR(N), NVARCHAR(n), NTEXT(n) — строки локализованных символов постоянной и переменной длины (4000 символов, UNICODE).
BIT — один бит (допускает NULL-значение).
BINARY(n), VARBINARY(n) — строки битов постоянной и переменной длины (8000).
DATE, TIME, DATETIME, SMALLDATETIME — календарная дата и время.
TIMESTAMP(точность) — временная метка, уникальное внутри БД значение.
IMAGE — двоичные данные переменной длины.
Либо тип может быть создан с помощью инструкции CREATE TYPE. Большинство коммерческих СУБД поддерживают еще дополнительные типы данных, которые не специфицированы в стандарте.
Do'stlaringiz bilan baham: |