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

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

Инструкция 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; просмотров: 553. Нарушение авторских прав; Мы поможем в написании вашей работы!




Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...


Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...


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


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

Прием и регистрация больных Пути госпитализации больных в стационар могут быть различны. В цен­тральное приемное отделение больные могут быть доставлены: 1) машиной скорой медицинской помощи в случае возникновения остро­го или обострения хронического заболевания...

ПУНКЦИЯ И КАТЕТЕРИЗАЦИЯ ПОДКЛЮЧИЧНОЙ ВЕНЫ   Пункцию и катетеризацию подключичной вены обычно производит хирург или анестезиолог, иногда — специально обученный терапевт...

Ситуация 26. ПРОВЕРЕНО МИНЗДРАВОМ   Станислав Свердлов закончил российско-американский факультет менеджмента Томского государственного университета...

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

Мотивационная сфера личности, ее структура. Потребности и мотивы. Потребности и мотивы, их роль в организации деятельности...

Классификация ИС по признаку структурированности задач Так как основное назначение ИС – автоматизировать информационные процессы для решения определенных задач, то одна из основных классификаций – это классификация ИС по степени структурированности задач...

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