Первичный и уникальный ключи

Первичный и уникальный ключи

Первичные ключи являются одним из основных видов ограничений в базе данных. Они применяются для однозначной идентификации записей в таблице. Допустим, мы храним в базе данных список людей. Вполне вероятно, что могут появиться два (или больше) человека с одинаковыми фамилией, именем и отчеством Как же гарантированно отличить одного человека от другого (конечно. речь идет о том, чтобы отличить одного человека от другого на основании информации, хранящейся в базе данных)?

В данном случае "человек" представлен одной записью в таблице, поэтому можно задаться более общим вопросом — как отличить одну запись в (любой) таблице от другой записи в этой же таблице. Для этого используются ограничения - первичные кпочи. Первичный ключ представляет собой одно или несколько полей в таблице, сочетание которых уникально для каждой записи. Для одной таблицы не существует повторяющихся значений первичного ключа.

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

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

<pkukconstraint> = [CONSTRAINT constraint] {PRIMARY KEY |

UNIQUE}

Примеры первичных и уникальных ключей:

CREATE TABLE pkuk(

pk NUMERIC(15,0) NOT NULL PRIMARY KEY, /*первичный ключ*/

ukl VARCHAR(SO) NOT NULL UNIQUE,/*уникальный ключ */

uk2 INTEGER NOT NULL UNIQUE /* еще уникальный ключ */);

Синтаксис создания первичного и уникального ключей на основе нескольких полей:

<pkuktconstraint> = [CONSTRAINT constraint] {PRIMARY KEY |

UNIQUE) ( col [, col ...] )

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

CREATE TABLE pkuk2(

Number1 INTEGER NOT NULL,

Namel VARCHAR(SO) NOT NULL,

Kol INTEGER NOT NULL,

Stoim NUMERIC(15,4) NOT NULL,

CONSTRAINT pkt PRIMARY KEY (Numberl, Namel), /*первичный ключ pkt на

основе двух полей*/

CONSTRAINT uktl UNIQUE (kol, Stoim) ); /*уникальный ключ uktl на основе

двух полей*/

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

Помимо создания ограничения первичных и уникальных ключей в момент создания таблицы имеется возможность добавлять ограничения в уже существующую таблицу. Для этого используется предложение DDL: ALTER TABLE. Синтаксис добавтения ограничений первичного или уникального ключа в существующую таблицу аналогичен описанному выше:

ALTER TABLE tablename

ADD [CONSTRAINT constraint] {PRIMARY KEY | UNIQUE) ( col [, col ...] )

Давайте рассмотрим пример создания первичного и уникального ключа с помощью ALTER TABLE. Сначала создаем таблицу:

CREATE TABLE pkalter(

ID1 INTEGER NOT NULL,

ID2 INTEGER NOT NULL,

UID VARCHAR(24));

Затем добавляем ключи. Сначала первичный:

ALTER TABLE pkalter

ADD CONSTRAINT pkall PRIMARY KEY (idl, id2);

Затем уникальный ключ:

ALTER TABLE pkalter

ADD CONSTRAINT ukal UNIQUE (uid) ;

Важно отметить, что добавление (а также удаление) ограничений первичных и уникальных ключей к таблице может производить только владелец этой таблицы или системный администратор SYSDBA (подробнее о владельцах и пользователе SYSDBA см. главу "Безопасность в InterBase: пользователи, роли и права") (ч. 4).

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Ключи к человеку

Из книги Блоги. Новая сфера влияния автора Попов Антон Валерьевич

Ключи к человеку Метки: задачи, как общаться с блоггерами, корпоративный блогИногда компания для внешних наблюдателей выглядит «черным ящиком», из которого наружу просачиваются скупые официальные данные. Причем у каждой успешной фирмы рано или поздно возникает


Интернет как уникальный инструмент маркетинга

Из книги Интернет-разведка [Руководство к действию] автора Ющук Евгений Леонидович

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


19.2.2.3. Упорно ищите уникальный префикс имени, который легко вводить

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

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


19.2.2.3. Упорно ищите уникальный префикс имени, который легко вводить

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

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


Ключи реестра

Из книги Системное программирование в среде Windows автора Харт Джонсон М

Ключи реестра На рис. 3.1 показана аналогия между разделами реестра и каталогами файловой системы. Каждый раздел может содержать другие разделы или последовательности пар "имя-значение". В то время как доступ к файловой системе реализуется посредством указания путей


2.2.5. Ключи

Из книги BPwin и Erwin. CASE-средства для разработки информационных систем автора Маклаков Сергей Владимирович

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


Ключи и значения

Из книги Справочник по PHP автора

Ключи и значения array_flipМеняет местами индексы и значения массива.Синтаксис:array array_flip(array arr)Эта функция "пробегает" по массиву и меняет местами его ключи и значения. Исходный массив arr не изменяется, а результирующий массив просто возвращается. Если в массиве присутствовало


Ключи

Из книги Технология XSLT автора Валиков Алексей Николаевич


Составные ключи

Из книги Бесплатные разговоры через Интернет автора Фрузоров Сергей


Ключи командной строки

Из книги PGP: Кодирование и шифрование информации с открытым ключом. автора Левин Максим

Ключи командной строки Большинству пользователей не нужно работать с интерфейсом командной строки, ключи предназначены для использования системными администраторами. С их помощью можно вручную установить или удалить Radmin, изменить номер порта, а также производить


Ключи.

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

Ключи. Ключ — это число, которое используется криптографическим алгоритмом для шифрования текста. Как правило, ключи — это очень большие числа. Размер ключа измеряется в битах. Число, представленное 1024 битами — очень большое. В публичной криптографии, чем больше ключ,


Генерим ключи.

Из книги Введение в криптографию автора Циммерманн Филипп

Генерим ключи. После перезагрузки компьютера в нижнем правом углу (панель задач) появится значок PGP — символ амбарного замка. Поставьте на него мышку, нажмите на мышку и выберите в открывшемся меню команду Launch PGP keys.• Зайдите в меню KEYS и выполните команду NEW KEY• Нажмите на


Ключи и индексы

Из книги Раскрутка: секреты эффективного продвижения сайтов автора Евдокимов Николай Семенович

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


Ключи

Из книги Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/FireBird/Yaffil автора Ковязин Алексей Николаевич

Ключи Ключ— это некоторая величина, которая, работая в сочетании с криптоалгоритмом, производит определённый шифртекст. Ключи, как правило, — это очень-очень-очень большие числа. Размер ключа измеряется в битах; число, представляющее 2048-битовый ключ, чертовски большое. В


Где брать уникальный контент

Из книги автора

Где брать уникальный контент Требования к текстам зависят от тематики и специфики сайта. Например, для интернет-магазина бытовой техники описания товаров составляют, опираясь на их характеристики. В таком случае услуги копирайтера нужны нечасто: гораздо проще


Внешние ключи

Из книги автора

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