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