русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Додавання первинних і вторинних ключів. Зв’язування таблиць.


Дата добавления: 2015-07-09; просмотров: 2615; Нарушение авторских прав


Первинний ключ – це унікальне поле (або набір полів), який визначає рядки таблиці бази даних. Первинні ключі забезпечують унікальність даних шляхом створення унікального індексу в таблиці, в якій вони розміщені. Вторинні ключі – це поля таблиці, які відповідають первинним ключам інших таблиць. Співвідношення між первинними і вторинними ключами визначають область допустимих значень для вторинного ключа. Цілісність області значень зовнішнього ключа є одним із способів забезпечення цілісності зв’язків між відповідними наборами полів. При визначенні вторинних ключів індекси в таблиці не створюються.

В SQL Server первинні і вторинні ключі можна додати трьома способами: використовуючи SQL Server Enterprise Manager, оператор ALTER TABLE ... ADD CONSTRAINT або визначивши опцію PRIMARY/FOREIGN KEYв операторі CREATE TABLE.

У синтаксисі команди CREATE TABLEпередбачена можливість додавання в розділіCONSTRAINTелементів PRIMARY KEYабоFOREIGN KEY.Спрощений формат команди:

 

CREATE TABLE<Ім´я таблиці>

(<Ім´я поля> <Тип даних>CONSTRAINT. . ., . . . )

Наприклад, оператор для створення таблиці, коли не вказується ім’я первинного ключа (воно буде призначено сервером) виглядає так:

 

CREATE TABLE<Ім´я таблиці>

(<Ім´я поля> smallint PRIMARY KEY)

Якщо потрібно явно вказати ім’я первинного ключа при створенні таблиці, то команда має наступний вигляд:

 

CREATE TABLE<Ім´я таблиці>

(<Ім´я поля> smallint CONSTRAINTpk_<Ім´я поля> PRIMARY KEY,)...)

 

Вторинний ключ таблиці_2, який посилається на таблицю_1, можна створити наступною командою:

CREATE TABLE<Ім´я таблиці_2>

(<Ім´я поля_2> smallint FOREIGN KEY<Ім´я поля_2> REFERENCES <Ім´я таблиці_1>(<Ім´я поля_1>),...)



Цією командою встановлюється зв’язок між таблицею_1 і таблицею_2, причому ключові поля у двох таблицях повинні мати абсолютно однакові типи даних.

Тепер розглянемо оператори, які використовуються для зміни таблиць з метою додавання первинних і вторинних ключів.

Для додавання первинного ключа без визначення його імені використовують оператор наступного формату:

ALTER TABLE<Ім´я таблиці_1>

ADD PRIMARY KEY (<Ім´я поля_1>)

Наприклад, таблиці „Штат рекламних агентів” і „Обсяг операцій” необхідно зв’язати за полем Код працівника. При цьому поле Код працівника першої таблиці є первинним ключем, а поле Код працівника другої таблиці – вторинним ключем. Команда додавання до таблиці „Штат рекламних агентів” первинного ключа має наступний вигляд:

 

alter table stat

add primary key (cod)

 

Додавання вторинного ключа до таблиці_2, який посилається на таблицю_1, виконується командою:

ALTER TABLE<Ім´я таблиці_2>

ADD FOREIGN KEY (<Ім´я поля_2>) REFERENCES <Ім´я таблиці_1> (<Ім´я поля_1>)

 

Аналогічно до команди CREATE TABLE,цією командою встановлюється зв’язок між таблицею_1 і таблицею_2, причому ключові поля у двох таблицях повинні мати абсолютно однакові типи.

Наприклад, додавання вторинного ключа до таблиці „Обсяг операцій” і встановлення зв’язку з таблицею „Штат рекламних агентів” за полем Код працівника виконується командою:

 

alter table obsag

add foreign key (cod) references stat (cod)

 

Для відображення інформації про ключі в SQL Server використовуються дві системні процедури. Основний спосіб відображення інформації про ключі полягає у використанні процедури sp_helpconstraint, яка має наступний формат:

SP_HELPCONSTRAINT <Ім´я таблиці>

Наприклад,

sp_helpconstraint stat

 

Результат виконання команди зображено на рис. 12.

 

 

Рис. 12. Інформація про ключі таблиці stat.

 

Системна процедура sp_help виводить загальну інформацію про таблиці баз даних. Частина цієї інформації стосується ключів таблиці. Формат процедури:

SP_HELР <Ім´я таблиці>

 

Видалення первинних і вторинних ключів виконується командою

 

ALTER TABLE<Ім´я таблиці>

DROP CONSTRAINT<Ім´я ключа>

 

Зауважимо, що не можна видалити первинний ключ, якщо він є вторинним ключем для інших таблиць. Спочатку потрібно видалити вторинні ключі.

Наприклад, команди для видалення зовнішнього і внутрішнього ключів:

alter table obsag

drop constraint FK__obsag__cod__239E4DCF

 

alter table stat

drop constraint PK__stat__22AA2996



<== предыдущая лекция | следующая лекция ==>
Створення і знищення таблиці | Модифікація записів


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.387 сек.