Л. Партыка, И. И. Попов системы управления базами данных


Создание и модификация таблиц



бет122/215
Дата29.01.2022
өлшемі4,64 Mb.
#115817
1   ...   118   119   120   121   122   123   124   125   ...   215
Байланысты:
Голицына О Л Партыка Т Л Попов И И Системы

4.3. Создание и модификация таблиц


Создание таблицы (CREATE  TABLE)

Создание таблицы выполняется с помощью команды create table. Обобщенный синтаксис команды следующий:

CREATE   TABLE   имя_таблицы

({<определение_столбца>|<определение_ограничения_таблицы>}

[,...,{<определение  столбца>| <определение_ограничения_таблицы  >}])

Тем самым после задания имени таблицы через запятую в круглых скобках должны быть перечислены все предложения, определяющие отдельные элементы таблицы — столбцы или ограничения целостности:



<имя_таблицы>  —  идентификатор создаваемой таблицы, который в общем случае строится из имени базы данных,
имени владельца таблицы и имени самой таблицы.  При этом комбинация имени таблицы и ее владельца должна быть уникальной в пределах базы данных. Если таблица создается не в текущей базе данных, в ее идентификатор необходимо включить имя базы данных.

<определение_столбца> — задание имени, типа данных и параметров отдельного столбца таблицы. Названия столбцов должны соответствовать правилам для идентификаторов и быть уникальными в пределах таблицы.

<определение  ограничения  таблицы>  —  задание  некоторого ограничения целостности на уровне таблицы.

Описание столбцов. Как видно из синтаксиса команды create table, для каждого столбца указывается предложение <определение_столбца>, с помощью которого и задаются свойства столбца. Предложение имеет следующий синтаксис:

<Имя столбца> <тип_данных>

[<ограничение столбца> ] [,...,<ограничение столбца>]

Рассмотрим назначение и использование параметров:

<имя_столбца> — идентификатор, задающий имя столбца таблицы;

<тип_данных> — задает тип данных столбца. Если при определении столбца явно не указано ограничение на хранения значений null, тo будут использованы свойства типа данных, т. е. если выбранный тип данных позволяет хранить значения null, то и в столбце можно будет хранить значения null. Если же при определении столбца в команде create   table явно будет разрешено или запрещено хранение значений null, to свойства типа данных будут
перекрыты установленным на уровне столбца ограничением. Например, если тип данных позволяет хранить значения null, а на уровне столбца будет установлен запрет, то попытка  вставки  значения   null   в  столбец  закончится ошибкой;


  • <ограничение_столбца> — с помощью этого предложения указываются ограничения, которые будут определены для столбца. Синтаксис предложения следующий:

  • <ограничение  столбца>::=[   CONSTRAINT  <имя  ограничения  >   ] {[   DEFAULT   <выражение>] | [ NULL |   NOT  NULL   ] I     [   PRIMARY   KEY   |    UNIQUE   ] I     [FOREIGN   KEY

REFERENCES   <имя_главной_таблицы>[(<имя_столбца> [,•..,n])]

[ ON DELETE { CASCADE | NO ACTION } ] [ ON UPDATE { CASCADE | NO ACTION } ] ]

|    [CHECK   (<логическое_выражение>)] }

Рассмотрим назначение параметров:



constraint — необязательное ключевое слово, после которого  указывается   название   ограничения   на  значения
столбца (<имя_ограничения>). Имена ограничений должны быть уникальны в пределах базы данных;

default — задает значение по умолчанию для столбца.Это значение будет использовано при вставке строки, если
для столбца явно не указано никакое значение;

null | not  null — ключевые слова, разрешающие (null) или запрещающие (not  null) хранение в столбце значений null. Если для столбца не задано значение по умолчанию, то при вставке строки с неизвестным значением для
столбца будет предприниматься попытка вставки в столбец значения null. Если при этом для столбца указано ограничение NOT null, то попытка вставки строки будет отклонена и пользователь получит соответствующее сообщение об ошибке;

primary key — определение первичного ключа на уровне одного столбца (т. е. первичный ключ будет состоять только из значений одного столбца). Если необходимо сформировать первичный ключ на базе двух и более столбцов, то такое  ограничение  целостности должно быть задано  на уровне таблицы. При этом следует помнить, что для каждой таблицы может быть создан только один первичный ключ;

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

foreign   key    . . .    references  — указание  на то,  что столбец будет служить внешним ключом для таблицы, имя
которой задается с помощью параметра   <имя_главной  таблицы>;

(<имя_столбца>   [, . . . ,п] ) — столбец или список перечисленных через запятую столбцов главной таблицы, входящих в ограничение foreign   key. При этом столбцы, входящие во внешний ключ, могут ссылаться только на


столбцы первичного ключа или столбцы с ограничением unique таблицы;

ON DELETE {CASCADE | NO ACTION} — эти ключевые слова определяют действия, предпринимаемые при удалении строки из главной таблицы. Если указано ключевое слово cascade, то при удалении строки из главной (родительской) таблицы строка в зависимой таблице также будет удалена. При указании ключевого слова no action в подобном случае будет выдана ошибка. Значением по умолчанию является вариант no action;

ON UPDATE {CASCADE | NO ACTION} — Эти ключевые слова определяют действия, предпринимаемые при модификации строки главной таблицы. Если указано ключевое слово cascade, то при модификации строки из главной (родительской) таблицы строка в зависимой таблице также будет модифицирована. При использовании ключевого слова N0 action в подобном случае будет выдана ошибка. Значением по умолчанию является вариант no action;

check — ограничение целостности, инициирующее контроль вводимых в столбец (или столбцы) значений;

<логическое_выражение> — логическое выражение, используемое для ограничения check.



Достарыңызбен бөлісу:
1   ...   118   119   120   121   122   123   124   125   ...   215




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет