Язык определения данных

Страницы работы

Содержание работы

Язык определения данных

После того, как модель системы спроектирована, можно приступать к созданию таблиц в базе данных. Для создания объектов и изменения структуры объектов в базе данных используется язык определения данных (DDL). Команды языка определения данных воздействуют на базу данных и заносят информацию об изменениях структуры в словарь базы данных. Действие любой из команд DDL необратимо (отменить изменения нельзя), поэтому будьте особенно осторожны при использовании этих команд:

§  CREATE TABLE – используется для создания таблиц

§  ALTER TABLE – позволяет изменить структуру существующей таблицы

§  DROP TABLE – удаляет таблицу из базы данных

§  RENAME – позволяет переименовать таблицу

§  TRUNCATE TABLE – удаляет все строки из таблицы

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

Для создания таблицы используется команда языка определения данных CREATE TABLE. Чтобы иметь возможность создавать таблицы, пользователь должен иметь привилегию CREATE TABLE.

CREATE TABLE [схема.]таблица

(столбец тип_данных [DEFAULT выражение] [ограничение_столбца],

...

[ограничение_таблицы]);

схема – имя владельца таблицы

таблица – имя таблицы

столбец – имя столбца

тип_данных – тип данных и длина столбца

DEFAULT выражение – значение по умолчанию

ограничение_столбца – правило целостности на уровне столбца

ограничение_таблицы – правило целостности на уровне таблицы

Схема

Когда Вы создаете объекты в базе данных, Вы создаете их в определенной схеме (по умолчанию в своей). Имя схемы совпадает с именем пользователя и используется в качестве префикса при ссылке на объекты другого пользователя. Схема содержит набор объектов конкретного пользователя, причем объекты другого пользователя в ней не содержатся:

§  Таблицы

§  Представления

§  Синонимы

§  Индексы

§  Хранимые процедуры и т.д.

Чтобы обращаться к объектам, содержащимся в другой схеме, необходимо

§  Указать имя схемы перед именем объекта, который в ней находится

§  Иметь привилегию на этот объект. Привилегию должен дать владелец объекта

Рассмотрим пример. Пользователь instructor создал таблицу tt и дал пользователю is_301 привилегию на чтение этой таблицы. Пользователь is_301 должен указать имя схемы при обращении к таблице tt, т.к. таблица tt находится в схеме пользователя instructor.

SQL> CONNECT is_301/tbd@student

Connected.

SQL> SELECT * FROM tt;

SELECT * FROM tt

              *

ERROR at line 1:

ORA-00942: table or view does not exist

SQL> SELECT * FROM instructor.tt;

    FIRST NAME

--------- --------------------

        1 One

        2 Two

Имена таблиц и столбцов

Имена таблиц и столбцов должны начинаться с буквы и могут включать до 30 символов. Допустимы только символы алфавита, цифры, символ подчеркивания, знаки $ и #. Вы можете присваивать русские имена таблицам и столбцам, но в этом случае они могут быть не более 15 символов. Имена таблиц и столбцов не должны повторять имена других объектов в пределах одной схемы и не могут совпадать с зарезервированными словами сервера Oracle (TABLE, INDEX, COLUMN и т.д.).

Типы данных

Тип данных

Описание

CHAR (размер)

Символьные данные фиксированной длины, равной размеру. Размер можно опустить, длина по умолчанию равна одному символу, максимальная длина – 255 байт

NCHAR (размер)

Символьные данные фиксированной длины. Размер равен количеству символов. Максимальный размер зависит от количества байт, необходимых для хранения одного символа и не должен превышать 2000 байт. Размер можно опустить. Длина по умолчанию равна одному символу или одному байту, в зависимости от кодировки

VARCHAR2 (размер)

Символьные данные переменной длины, не превышающей размер. Максимальный размер равен 4000 байт, минимальный – 1 символ. Размер должен быть определен

NVARCHAR2 (размер)

Символьные данные переменной длины, не превышающей размер. Максимальный размер зависит от количества байт, необходимых для хранения одного символа и не должен превышать 4000 байт. Размер должен быть определен

NUMBER (p, s)

Численные значения, имеющее точность (p) и масштаб (s). Точность – общее количество значащих цифр (от 1 до 38), масштаб – количество десятичных цифр (от –84 до 127)

NUMBER

Числа с плавающей точкой с точностью до 38 значащих цифр

DATE

Значения даты и времени в промежутке от 1 января 4712 года до нашей эры до 31 декабря 9999 нашей эры

LONG

Символьные данные переменной длины до 2 гигабайт. В таблице допускается только один столбец LONG

RAW (размер)

Двоичные данные, длина которых равна размеру. Размер должен быть определен. Максимальная длина – 2000 байт

LONG RAW

Двоичные данные переменной длины до 2 гигабайт

ROWID

Шестнадатиричное строковое представление адреса строки в таблице. Значение можно просмотреть с помощью псевдоколонки ROWID

CLOB

Символьный большой объект, содержащий однобайтовые символы, размером до 4 гигабайт

NCLOB

Символьный большой объект, содержащий многобайтовые символы, размером до 4 гигабайт

BLOB

Двоичный большой объект, размером до 4 гигабайт

BFILE

Указатель на большой двоичный файл, хранящийся в операционной системе вне базы данных. Размер файла должен быть не более 4 гигабайт

Параметр DEFAULT

Параметр DEFAULT позволяет задать значение столбца по умолчанию. Это гарантирует отсутствие неопределенных значений в столбце, даже если Вы не указываете значение столбца при вставке новой строки. Значением по умолчанию может быть литерал, выражение, функции SQL SYSDATE и USER. Не допускается имя другого столбца или псевдостолбца в качестве значения по умолчанию. Тип данных значения по умолчанию должен совпадать с типом данных столбца.

Ограничения

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

§  NOT NULL – обязательность (столбец не может содержать неопределенных значений)

§  UNIQUE – уникальность (значение столбца или комбинация значений столбцов должна быть уникальна)

§  PRIMARY KEY – первичный ключ (уникально идентифицирует строку)

§  FOREIGN KEY – внешний ключ (поддерживает отношение между значениями столбца и значениями столбца таблицы, на которую ссылается)

§  CHECK – бизнес-правила (задает условие, которое должно выполняться)

Ограничения можно задавать при создании таблицы или добавить к уже существующей таблице. Рекомендуется присваивать осмысленные имена ограничениям, иначе Oracle создаст имя сам: SYS_Cn, что затруднит дальнейшие ссылки на эти ограничения. Ограничения могут быть заданы на уровне столбцов или на уровне таблиц.

Ограничение на уровне столбца

столбец тип_данных[CONSTRAINT имя_ограничения] тип_ограничения

§  Ссылается на единственный столбец

§  Описывается в пределах характеристик столбца

§  Позволяет задать ограничение любого типа

SQL> CREATE TABLE sample

  2  (first NUMBER CONSTRAINT sample_first_uk UNIQUE,

  3  second NUMBER);

Table created.

Ограничение на уровне таблицы

столбец, ...

[CONSTRAINT имя_ограничения] тип_ограничения (столбец, ...),

§  Ссылается на один или несколько столбцов

§  Описывается независимо от определений столбцов

§  Позволяет задать ограничение любого типа, кроме NOT NULL

Похожие материалы

Информация о работе