Sql Scholl
Распечатать страницу
Перейти на главную Карта сайта Отправить сообщение

Расширенные возможности SQL

Первичные ключи

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

     Любой столбец таблицы может быть назначен на роль первичного ключа, но только если он удовлетворяет следующим условиям.
     •     Никакие две строки не могут иметь одно и то же значение первичного ключа.
     •     Каждая строка должна иметь какое-то значение первичного ключа. (В таких столбцах не должно быть разрешено использование значений NULL.)
     •     Столбец, содержащий значения первичного ключа, не может быть модифицирован или обновлен.
     •     Значения первичного ключа ни при каких обстоятельствах не могут быть использованы повторно. Если какая-то строка удалена из таблицы, ее первичный ключ не может быть назначен какой-то другой строке.

     Одним из способов определения первичных ключей является их создание:

CREATE TABLE Vendors (
vend_id CHAR (10) NOT NULL PRIMARY KEY, 
vend_name CHAR(50) NOT NULL, 
vend_address CHAR (50) NULL, 
vend_city CHAR(50) NULL, 
vend_state CHAR(5) NULL, 
vend_ZIP CHAR (10) NULL,
vend_country CHAR (50) NULL

     В этом примере в определение таблицы добавлено ключевое слово PRIMARY KEY, так что столбец vend_id становится первичным ключом.

ALTER TABLE Vendors
ADD CONSTRAINT PRIMARY KEY (vend_id);

     Здесь в качестве первичного ключа определен тот же самый столбец, но использован синтаксис CONSTRAINT. Этот синтаксис может быть использован в операторах CREATE TABLE и ALTER TABLE.