Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных.docx
Скачиваний:
8
Добавлен:
09.09.2019
Размер:
38.78 Кб
Скачать
  • DEFAULT – более подробно мы поговорим о значениях по умолчанию в теме, посвящённой ограничениям. Значения по умолчанию подставляются в поля таблицы, для которых значение не было задано пользователем явно.

  • INDENTITY – значение – SQL Server – автоматически присваивает порядковый номер каждой добавляемоё строке. По умолчанию в качестве начального значения и приращения используется единица.. Базовый тип int или bigint.

  • SET IDENTITY_INSERT ON отключает процесс автоматического присваивания identity – значений.

  • NOT FOR REPLICATION – определяет, нужно ли при вставке строк в новую базу данных присваивать строке новое identity – значение или использовать существующее.

  • ROWGUIDCOL – данный параметр связан с репликацией. Используется для уникальной идентификации строки в таблице. Например,необходимо реплицировать строки из различных БД в одну общую базу данных. При использовании identifity – столбцов данных. При использовании identity – столбцов могут появляться строки с повторяющимися значениями в столбце.

  • GLOBALLY Unique Indentifier – глобально уникальный индентификатор, представляет собой 128 – битов значение и является уникальным во времени и в пространстве. Win 32 существует специальный API для генерации GUID программным путём. В SQL Server помимо опции ROWGUIDCOL для столбца, имеется особая функция для получения GUID – NFWID().

  • COLLATE – для отдельных столбцов определяется порядок сортировки, сравнения символов, чувствительности к регистру.

  • NULL|NOT – определяет, разрешено ли хранить в столбце NULL – значения.

  • ON – предназначен для указания группы файлов, а, следовательно, и физического устройства, где будет, размещаться таблица.

  • TEXTIMAGE_ON – параметр предназначен для разешения отдельной части таблицы в другой файловой группе. Используется, только если в таблице есть поля типов:

  • Text – большой объем текстовой информации

  • Ntext – текстовая информация в форматеUnicode

  • Image – цепочки двоичных данных.

Пример:

CREATE TABLE #USP

(UNUM INT CHECK IN (1, 2, 3, 4, 5) DEFAULT 2,

UDATE SMALLDATETIME,

SNUM INT NOT NULL,

PNUM INT NOT NULL,

UNIQUE (SNUM, PNUM) )

Ограничения – эффективное средство обеспечения целостности данных.

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

Типы ограничений:

Ограничения доменов – распределяются на один или несколько столбцов.

Ограничения логических объектов – касаются отдельных строк, не заботясь о столбеце в целом. К данному типу относятся ограничения первичного ключа и уникальности.

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

Ограничения ключей:

Существует четыре общепринятых типа ключей:

  • Первичный

  • Внешний

  • Альтернативный

  • Инверсный

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

Инверсный ключ фактически представляет собой индекс, который не налагает на таблицу каких-либо ограничений, а вместо поддержки целостности применяется в качестве альтернативного способа сортировки.

Ограничения первичного ключа:

  • Первичный ключ представляет собой уникальный идентификатор строки.

  • Первичный ключ должен содержать уникальные значения ( и поэтому не может принимать NULL – Значение).

  • Создать первичный ключ можно при помощи команды CREATE TABLE либо команды ALTER TABLE.

Пример:

CREATE TABLE Customers

(customerNo int NOT NULL PRIMARY KEY,

CustomerName varhar (25) NOT NULL,

Phone char (15) NOT NULL)

Создание первичного ключа для существующей таблицы:

Alter Table Employees

ADD CONSTRAINT PK_EmployeeID

PRIMARY KEY (EmployeeID)

Ограничения внешнего ключа:

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

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

<допустимсоть_NULL-значений>

FOREIGN KEY REFERENCES <имя_таблицы>

(<имя_столбца>)

[ON DELETE {CASCADE|NO ACTION}]

[ON UPDATE {CASCADE|NO ACTION}]

CREATE TABLE orderdetails (

OrderID int NOT NULL,

UnitPrice money Not NULL,

PartNo varchar(10) NOT NULL,

8000

CONSYRAINT PK_OrderDetails PRIMARY KEY (OrderID, PartNo),

CONSTRAINT FK_OrderDetails FOREIGN KEY (OrderID)

REFERENCES Orders (OrderID)

ON DELETE NO ACTION – по умолчанию

ON UPDATE CASCADE

Добавление внешнего ключа в существующую таблицу:

Первичный и внешний ключ может существовать для одного и того де поля.

В каждой таблице может присутствовать от 0 до 253 внешних ключей.

Единственное ограничивающее условие – данных столбец может иметь только один внешний ключ.

На один и тот же столбец может ссылаться неограниченное количество таблиц.

ALTER TABLE Orders

ADD CONSTRAINT FK_Employeeorders

FOREIGN KEY (EmployeeID) REFERENCES

Employees (EmployeeID)

Ограничения уникальности.

В таблице можно иметь более одного ограничения уникальности.

Создание ограничения уникальности для существующей таблицы:

ALTER TABLE Employees

ADD CONSTRAINT AK_EmployeeSSN

UNIQUE (SSN)

  • Выполнив запуск хранимой процедуры EXEC sp_helpconstraint <имя_таблицы>, можно получить сведения об именной таблицы.

Ограничения проверки.

ALTER TABLE Customers

ADD CONSTRAINT CN_CustomerPhone

CHECK (Phone

LIKE’ ([0-9] [0-9] [0-9]) [0-9] [0-9] [0-9] – [0-9] [0-9] [0-9] [0-9] [0-9]) ‘)

Ограничения стандартных значений (только INSERT).

Стандартные значения используются только в операторе INSERT - их нельзя применять к операторам UPDATE или DELETE.

Если в операторе INSERT присутствует значение для данного столбца, значения по умолчанию использованы не будут.

Если же для данного столбца значение в операторе INSERT не задано, система будет использовать стандартные значения.

CREATE TABLE Shippers (

ShipperID int NOT NULL PRIMARY KEY,

ShipperName varchar (25) NOT NELL,

Date smalldatetime NOT NULL DEFAULT

GETDATE()

)

- - функция GETDATE () возвращает текущую дату и время.

- - Например, 24. 06. 2008 17:44:52

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]