Студопедия — Инструкция CREATE TABLE
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Инструкция CREATE TABLE






Таблицы создаются c помощью инструкции CREATE TABLE, которая в основном определяет тип таблицы (временная или базовая), имя таблицы, набор столбцов и ограничения целостности (ограничения для столбцов или для всей таблицы). Каждая таблица должна иметь, по крайней мере, один столбец. Cинтаксис инструкции CREATE TABLE в PostgreSQL в сокращенном виде:

CREATE [ { TEMPORARY | TEMP } ] TABLE таблица

(

[ { столбецтип_данных [ DEFAULT значение_по_умолчанию] [<ограничение_столбца> [... ] ]

| < ограничение_таблицы >

| LIKE родительская_таблица [<параметры_ LIKE> ] } [,... ] ]

)

[ INHERITS (родительская_таблица [,... ]) ]

[ TABLESPACE табличное_пространство ]

где

< ограничение_столбца >::= [CONSTRAINT ограничение]

{ { NOT NULL | [ NULL ] }

| CHECK (ограничение_на_значение_столбца)

| UNIQUE параметры_индексирования

| PRIMARY KEY

| REFERENCES таблица [ (столбец) ]
[ MATCH FULL -- один столбец в составом внешнем ключе не может быть NULL
| MATCH PARTIAL – не реализовано
| [ MATCH SIMPLE] ] -- один столбец в составом внешнем ключе может быть NULL
[ ON DELETE действие ] – действие при удалении родительського ключа

[ ON UPDATE действие] – действие при изменении родительського ключа

}

< ограничение_таблицы >::= [CONSTRAINT имя_ограничения ]

{ CHECK (ограничение_на_значение_столбца)

| UNIQUE (столбец [,... ]) параметры_индексирования

| PRIMARY KEY (столбец [,... ]) параметры_индексирования

| FOREIGN KEY (столбец [,... ]) REFERENCES таблица [ (столбец [,... ]) ]
[ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ]
[ ON DELETE действие]
[ ON UPDATE действие] }

Если указано TEMPORARY или TEMP, создается временная таблица, т.е. такая таблица автоматически удаляется сразу после завершения транзакции.

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

Ограничения NULL / NOT NULL разрешают или запрещают ввод в поле NULL-значений. Очевидно, что ограничение NOT NULL должно быть указано для первичных ключей, поскольку в противном случае под угрозой окажется целостность данных. Кроме того, отдельные поля таблиц по своему назначению могут требовать только определенных значений. Если поместить ключевые слова NOT NULL сразу после типа данных столбца, любая попытка поместить значение NULL в это поле будет отклонена. В противном случае, SQL будет считать, что для этого столбца NULL-значения разрешены.

Ограничение PRIMARY KEY (первичный ключ), используется для назначения первичных ключей. Поля с таким ограничением не могут принимать NULL-значений, и даже если ограничение NOT NULL не указывается для такого поля, SQL добавляет его по умолчанию. Ограничение PRIMARY KEY автоматически требует уникальности вводимых данных. Будучи назначенным для нескольких столбцов (составной первичный ключ) это ограничение задает уникальность комбинаций соответствующих значений, хотя по отдельности значения в каждом столбце составного ключа не обязательно должно быть уникальным.

Ограничение UNIQUE (уникальный), как и ограничение PRIMARY KEY, ограничивает множество значений для указанных столбцов уникальными значениями. Как и ограничение PRIMARY KEY, ограничение UNIQUE может быть ограничением таблицы, и тогда оно определяет уникальность комбинаций значений соответствующих столбцов.

Ограничение FOREIGN KEY (внешний ключ) обеспечивает принцип ссылочной целостности. Когда столбец является внешним ключом, он определенным образом связан с таблицей, на которую он ссылается. Фактически это означает, что каждое значение в этом столбце (внешнем ключе) непосредственно привязано к значению в другом столбце (родительском ключе). Каждое значение (каждая строка) внешнего ключа должно недвусмысленно ссылаться к одному и только этому значению (строке) родительского ключа. Если это так, то система будет в состоянии ссылочной целостности. Понятно, что любое число внешних ключей может ссылаться к единственному значению родительского ключа. Понятно также, что в качестве родительского ключа могут выступать столбцы с ограничениями PRIMARY KEY или UNIQUE, т.е. столбцы с уникальными значениями и не содержащие NULL-значений. Внешний ключ может содержать только те значения, которые фактически представлены в родительском ключе или NULL-значения, попытка ввода других значений приводит к ошибке. Присутствие NULL-значений во внешнем ключе не нарушит ссылочную целостность, но даст возможность не вводить данные, если они пока не известны.

Подобно рассмотренным выше ограничениям, ограничение FOREIGN KEY может быть ограничением таблицы или столбца. В первом случае списки столбцов внешнего ключа и родительских ключей, перечисляемых после служебного слова REFERENCES и имени содержащей их таблицы, должны быть идентичны. Во втором случае ограничение относится только к одному столбцу и служебные слова FOREIGN KEY не нужны.

Ограничение CHECK позволяет установить условие, которому должно удовлетворять значение, вводимое в таблицу, прежде чем оно будет принято. Ограничение CHECK состоит из ключевого слова CHECK, сопровождаемое предикатом, который использует указанное поле. Любая попытка модифицировать или вставить значение поля, которое могло бы сделать этот предикат неверным будет отклонена. Таким образом, можно предотвратить ввод нежелательных данных. Ограничение CHECK может использоваться в виде некоторой маски ввода, что обеспечит контроль заданного формата вводимых данных.

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

<параметры_ LIKE>::=

{ INCLUDING | EXCLUDING } -- включая/исключая
{ DEFAULTS -- значения по умолчанию
| CONSTRAINTS -- ограничения
| INDEXES -- индексы
| STORAGE – параметры хранения
| COMMENTS -- комментарии
| ALL }







Дата добавления: 2015-09-15; просмотров: 518. Нарушение авторских прав; Мы поможем в написании вашей работы!



Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Сравнительно-исторический метод в языкознании сравнительно-исторический метод в языкознании является одним из основных и представляет собой совокупность приёмов...

Концептуальные модели труда учителя В отечественной литературе существует несколько подходов к пониманию профессиональной деятельности учителя, которые, дополняя друг друга, расширяют психологическое представление об эффективности профессионального труда учителя...

Конституционно-правовые нормы, их особенности и виды Характеристика отрасли права немыслима без уяснения особенностей составляющих ее норм...

Факторы, влияющие на степень электролитической диссоциации Степень диссоциации зависит от природы электролита и растворителя, концентрации раствора, температуры, присутствия одноименного иона и других факторов...

Йодометрия. Характеристика метода Метод йодометрии основан на ОВ-реакциях, связанных с превращением I2 в ионы I- и обратно...

Броматометрия и бромометрия Броматометрический метод основан на окислении вос­становителей броматом калия в кислой среде...

Studopedia.info - Студопедия - 2014-2024 год . (0.008 сек.) русская версия | украинская версия