Для создания, изменения и удаления (эти действия так же обобщено называются управлением объектами) объектов базы данных, называемых далее сокращенно объектами, используются соответственно тройки команд CREATE, ALTER и DROP языка SQL; например CREATE TABLE, ALTER INDEX, DROP VIEW. Эти команды языка SQL получили историческое название команды языка определения данных (Data Definition Language). Для некоторых объектов схемы существуют так же команды CREATE OR REPLACE, с помощью которых можно предварительно удалить существующий одноименный объект и создать новый с тем же именем.
Для создания таблицы используется команда CREATE TABLE.
При создании таблицы указывается:
· имя таблицы и схема, в которой таблица создается (опционально);
· определения полей таблицы;
· определения ограничений;
· дополнительные опции, например, описывающие физическое размещение таблицы, и т.д.
Определение поля таблицы включает:
· имя поля, которое должно быть уникальным в данной таблице и соответствовать общим правилам (см. Часть 1 Пособия);
· тип значения поля;
· значение по умолчанию (опционально);
· список ограничений, накладываемых на это поле.
Численные типы
NUMBER
число в формате целого и вещественного с указанием общей длины значения в количестве значащих символов всего числа и дробной части
NUMBER
NUMBER(10)
NUMBER(10,2)
длина до 22 байт
FLOAT
число в формате вещественного с указанием общей длины значения в количестве значащих символов
FLOAT
FLOAT(10)
длина до 22 байт
BINARY_FLOAT
вещественное число длиной 32 разряда
BINARY_FLOAT
длина 4 байта (5)
BINARY_DOUBLE
вещественное число длиной 64 разряда
BINARY_DOUBLE
длина 8 байт (9)
INTEGER
INT
SMALLINT
ANSY-типы для хранения целочисленных значений (хранятся как значения NUMBER)
длина 22 байта
REAL
DECIMAL
ANSY-типы для хранения вещественных значений (хранятся как значения FLOAT)
Символьные
CHAR
CHARACTER
символьные данные фиксированной длины
CHAR
CHAR(20)
NCHAR
NCHARACTER
символьные данные фиксированной длины с использованием символом национальных алфавитов
VARCHAR2
VARCHAR
символьные данные произвольной длины
NVARCHAR2
символьные данные произвольной длины с использованием символом национальных алфавитов
Типы для представления значений дат и времени
DATE
значение даты
TIMESTAMP
значение даты и времени
Специальные типы
BLOB
бинарные данные очень большого размера
CLOB
NCLOB
текстовые данные очень большого размера
ROWID
представляет адрес записи таблицы
При определении поля таблицы можно указать значение по умолчанию, используя ключевое слово DEFAULT и выражение для этого значения; в выражении можно использовать функции, но нельзя использовать другие поля этой записи и подзапросы.
CREATE TABLE DefaultTest
( name CHAR(20) DEFAULT 'Неизвестно',
datereg TIMESTAMP DEFAULT current_date,
num NUMBER(10) DEFAULT SIN(0.5))
INSERT INTO DefaultTest
VALUES ( 'Ana', DEFAULT, DEFAULT )
Для изменения определения таблицы предназначена команда ALTER TABLE.
· изменение имени таблицы;
· изменение имени существующего поля;
· добавление нового поля;
· удаление существующего поля;
· изменение типа существующего поля;
· изменение выражение для виртуального поля;
· создание нового ограничения;
· удаление существующего ограничения;
· изменение имени существующего ограничения;
· отключение и включение действия ограничений;
· изменение физических параметров размещения таблицы и т.д.