дівчина

Первинний ключ, ідентифікація рядка таблиці БД

листопад 2014 року

Що таке первинний ключ(PRIMARY KEY) в Базі Даних MySQL?
    Однією з основних задач роботи з Базою Даних є швидкий пошук даних, для зручності реалізована індексація інформації по таблицям за допомогою ключів PRIMARY KEY, UNIQUE KEY, INDEX.

PRIMARY KEY - просто ключ, для ідентифікації запису,
UNIQUE KEY - унікальний ключ,
INDEX - просто індекс.

    PRIMARY KEY - Первинний ключ являє собою приклад унікального індекса, який застосовується для унікальної ідентифікації записів таблиці. Ніякі з двух записів таблиці не можуть мати одинаковий індекс.

    Первинний ключ зазвичай позначають як PK (primary key).

    Важливо відмітити в реляційних таблицях часто необхідний зв'язок однієї таблиці з іншою, первинні ключі використовують для організації токого зв'язку

Для прикладу, малюнок 1. Є База Даних "Форум", в ній дві таблиці теми форума - "themes", та пости тем форума "posts"

звязок таблиць за primary key

    Первинним ключем таблиці "themes" є "id_theme".
    Первинним ключем таблиці "posts" є "id_post".
    В таблиці таблиці "posts" також присутнє поле "id_theme", але воно є зовнішнім ключем для таблиці "posts", за яким і відбувається логічний зв'язок кожної теми форума з постами даної теми. Зовнішній ключ скорочено позначають як FK (foreign key)

    Яким чином задається функціонування PRIMARY KEY?

    Для того, щоб однозначно ідентифікувати запис таблиці, первинний ключ може бути логічним та штучним.
Логічний ключ коли ідентифікують записи таблиці за логічним звязком до даних, як на зразок

Первинний логічний ключполе 1поле 2поле 3поле 4
Таня сумочкатапки шляпкаінше для Тані
Петромолоток перфораторкепкагараж Петра
Маркскапіталнародідеяінше для Маркса

    Штучний первинний ключ, це ключ що не привязаний до змісту даних, на зразок, 1, 2, 3,...
Первинний штучний ключполе 1поле 2поле 3поле 4поле 5
1 Таня сумочкатапки шляпкаінше для Тані
2 Петромолоток перфораторкепкагараж Петра
3 Маркскапіталнародідеяінше для Маркса

    Первинному ключу можна присвоїти атрибут auto_increment, що дозволяє автоматично генерувати унікальний ключ, при умові що тип ключа ціле число. При внесенні даних значення ключа виставляється рівним нулю , MySQL збільшує його на одиницю та присвоює це значення первинному ключу нового запису.

    Зразок коду з використанням PRIMARY KEY при створенні таблиці PERSONS
1 CREATE TABLE Persons (
2 P_Id int NOT NULL,
3 LastName varchar(255) NOT NULL,
4 FirstName varchar(255),
5 Address varchar(255),
6 City varchar(255),
7 PRIMARY KEY (P_Id)
8 )


    Сама таблиця PERSONS може бути заповнена такими даними
P_IdLastNameFirstNameAddressCity
1 Petrushko SergijMiru Kyiv
2 MelnikViktor RichnaLviv
3 FomenkoIvanStepovaLviv
4 DoroshenkoGrigorijMiruUman
5 McLaudVanyaSolovjivBug