Первинний ключ – це поле або набір полів зі значеннями, унікальними в межах певної таблиці. Ви можете посилатися на цілі записи, використовуючи значення ключа, оскільки кожен запис має інше значення для ключа. Кожна таблиця може мати лише один первинний ключ. Access можете автоматично створити поле первинного ключа під час створення таблиці або вказати поля, які потрібно використовувати як первинний ключ. Дізнайтеся, як і для чого використовують первинні ключі, з цієї сатті.
Щоб установити первинний ключ таблиці, відкрийте таблицю в режимі конструктора. Виберіть потрібне поле (або поля), а потім на стрічці натисніть кнопку Первинний ключ.
У цій статті
Огляд первинних ключів у Access
Access використовує поля первинного ключа, щоб швидко зв'язувати дані з кількох таблиць і об'єднувати їх змістовно. Ви можете включити поля первинного ключа до інших таблиць, щоб повернутися до таблиці, яка є джерелом первинного ключа. У цих інших таблицях поля називаються зовнішніми ключами. Наприклад, поле "Ідентифікатор клієнта" в таблиці "Клієнти" також може відображатися в таблиці "Замовлення". У таблиці Customers це первинний ключ. У таблиці Orders вона називається зовнішнім ключем. Зовнішній ключ , просто вказано, є первинним ключем іншої таблиці. Докладні відомості див. в статті Основи розробки баз даних.
1. Первинний ключ
2. Зовнішній ключ
Якщо ви переміщуєте наявні дані до бази даних, можливо, у вас уже є поле, яке можна використовувати як первинний ключ. Часто унікальний ідентифікаційний номер, такий як ідентифікатор, серійний номер або код, слугує первинним ключем у таблиці. Наприклад, є таблиця «Клієнти», у якій кожний клієнт має унікальний ідентифікатор. Поле «Ідентифікатор клієнта» – це первинний ключ.
Access автоматично створює індекс для первинного ключа, що допомагає прискорити роботу запитів та інших операцій. Access також гарантує, що кожен запис має значення в полі первинного ключа, і що він завжди унікальний.
Коли ви створюєте нову таблицю у вікні табличного подання даних, Access автоматично створює первинний ключ і призначає ній ім'я поля "Ідентифікатор" і тип даних "Лічильник".
Що таке правильний первинний ключ?
Поле, найбільш відповідне для первинного ключа, має кілька характеристик.
-
Він однозначно ідентифікує кожен рядок.
-
Вона ніколи не пуста або має значення null – завжди містить значення.
-
Значення, які вона містить рідко (в ідеалі, ніколи) змінюються.
Якщо не вдається визначити потрібний ключ, створіть поле автонумерації, яке використовуватимете як ключ. Поле "Автонумерація" автоматично створює значення для себе під час першого збереження кожного запису. Таким чином, поле "Автонумерація" відповідає всім трьом характеристикам хорошого первинного ключа. Докладні відомості про додавання поля "Лічильник" див. в статті Додавання поля "Автонумерація" як первинного ключа.
Поле «Автонумерація» – це правильний первинний ключ.
Приклади неправильних первинних ключів
Будь-яке поле, якому бракує однієї або кількох характеристик правильного первинного ключа, – поганий вибір для первинного ключа. Ось кілька прикладів, які небажано використовувати як первинні ключі для таблиці «Контакти» з поясненням причин.
|
Неправильний первинний ключ |
Причина |
|---|---|
|
Особисте ім’я |
Може бути недостатньо унікальним і може змінюватися. |
|
Телефон |
Може змінюватися. |
|
Адреса електронної пошти |
Може змінюватися. |
|
Поштовий індекс |
Кілька осіб можуть мати один і той самий індекс. |
|
Поєднання фактів і чисел |
Факти можуть змінюватися, що робить обслуговування обтяжливим. Це може призвести до непорозуміння, якщо факти дублюються в іншому полі. Наприклад, комбінація з назви міста та збільшуваного числа (наприклад, NEWYORK0579) може бути невдалим вибором, якщо назва міста також зберігається як поле. |
|
Номери соціального страхування |
|
Складний ключ: використання комбінації кількох полів як первинного ключа
Іноді як первинний ключ таблиці можна встановити два або більше полів. Наприклад, у таблиці "Відомості про замовлення", де зберігаються записи про замовлення, первинним ключем можуть слугувати два поля: "Ідентифікатор замовлення" й "Ідентифікатор товару". Якщо первинний ключ містить більше одного поля, він має назву складеного ключа.
Установлення первинного ключа за допомогою полів, наявних у Access
Якщо є таблиця, у якій кожний запис має унікальний номер ідентифікатора (наприклад, ідентифікатор, серійний номер або код), таке поле можна використати як первинний ключ. Найкращий первинний ключ – це поле, яке унікально ідентифікує кожен рядок, не містить пустих значень і рідко (або ніколи) змінюється.
-
Відкрийте базу даних, яку потрібно змінити.
-
В області переходів клацніть правою кнопкою миші таблицю, у якій потрібно встановити первинний ключ, і в контекстному меню виберіть Конструктор.
Порада.: Якщо область переходів не відображається, натисніть клавішу F11, щоб відкрити її.
-
Виберіть поле або поля, які потрібно використати як первинний ключ.
Щоб вибрати одне поле, виберіть селектор рядків для потрібного поля.
Щоб створити складений ключ, виберіть кілька полів, утримуючи натиснутою клавішу Ctrl, а потім виберіть селектор рядків для кожного поля.
-
На вкладці Конструктор таблиць у групі Знаряддя натисніть кнопку Первинний ключ.
Піктограма ключа додається ліворуч від поля або полів, вибраних як первинний ключ.
Видалення первинного ключа в Access
У разі видалення первинного ключа поле або поля, які до цього були первинним ключем, більше не є основним засобом ідентифікації запису. Проте видалення первинного ключа не видаляє поля або полів з таблиці. Але з полів видаляється значення первинного ключа.
Видалення первинного ключа не призводить до видалення полів із таблиці, але індекс, створений для первинного ключа, буде видалено.
-
Перш ніж Вилучення первинний ключ, переконайтеся, що його не задіяно у зв’язках між таблицями. Якщо спробувати видалити первинний ключ, який входить до одного або кількох зв'язків, Access попереджає, що спочатку слід видалити зв'язки.Щоб видалити зв’язок між таблицями, виконайте такі дії:
-
Якщо відкрито таблиці, які є частинами зв’язку, закрийте їх. Не можна видаляти зв’язок між відкритими таблицями.
-
На вкладці Знаряддя бази даних у групі Зв'язки натисніть кнопку Зв'язки.
-
Натисніть кнопку Додати таблиці.
-
Виберіть лінію зв'язку між таблицями, яку потрібно видалити (лінія стає жирною, коли її виділено), а потім натисніть клавішу Delete.
-
На вкладці Конструктор зв'язків у групі Зв'язки натисніть кнопку Закрити.
-
-
Після видалення зв'язків в області переходів клацніть правою кнопкою миші таблицю, з якої потрібно видалити первинний ключ, а потім виберіть Конструктор.
Порада.: Якщо область переходів не відображається, натисніть клавішу F11, щоб відкрити її.
-
Виберіть маркер виділення рядка для поточного первинного ключа.
Якщо первинний ключ складається з одного поля, виберіть маркер виділення рядка для цього поля.
Якщо первинний ключ складається з кількох полів, виберіть маркер виділення рядка для будь-якого поля первинного ключа.
-
На вкладці Конструктор таблиць у групі Знаряддя натисніть кнопку Первинний ключ.
Піктограма ключа видаляється з поля або полів, які було попередньо вибрано як первинний ключ.
Примітка.: Коли ви зберігаєте нову таблицю, не встановлюючи первинний ключ, Access пропонує створити її. Якщо вибрати так, Access створить поле ідентифікатора, яке використовує тип даних "Лічильник" для надання унікального значення для кожного запису. Якщо таблиця вже містить поле "Лічильник", Access використовує це поле як первинний ключ.
Змінення первинного ключа в Access
Ось як змінити первинний ключ таблиці:
-
Вилучіть наявний первинний ключ, як описано в розділі Вилучення первинного ключа.
-
Установіть первинний ключ, як описано в розділі Установлення первинного ключа за допомогою наявних в Access полів.
Додаткові відомості
Докладні відомості про розробку баз даних і вибір відповідного первинного ключа див. в таких статтях: