PRIMARY KEY в MySQL використовується для позначення стовпця або комбінації стовпців таблиці, які є унікальними і обов’язковими для кожного запису. Це означає, що значення в первинному ключі повинні бути унікальними і не можуть бути NULL. PRIMARY KEY є важливою частиною забезпечення цілісності даних в базі даних. | |
Унікальність | Кожен запис у таблиці повинен мати унікальне значення в стовпцях, що є частиною первинного ключа. Це означає, що жодні два записи не можуть мати однакові значення для цього стовпця або комбінації стовпців. |
Не допускає NULL значення | Значення в стовпці, що є частиною первинного ключа, не можуть бути NULL. Це гарантує, що кожен запис в таблиці має дійсне і унікальне значення для цього стовпця. |
Автоматичне створення індексу | MySQL автоматично створює індекс для стовпця або комбінації стовпців, які є частиною первинного ключа. Це покращує швидкість пошуку та сортування даних. |
Один первинний ключ на таблицю | У таблиці може бути лише один первинний ключ. Однак первинний ключ може складатися з кількох стовпців — це називається композитним первинним ключем. |
Приклад зі простим первинним ключем:
CREATE TABLE users (
user_id INT,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
PRIMARY KEY (user_id)
);
INSERT INTO users (user_id, username, email)
VALUES
(1, ‘james’, ‘james@example.com’ ),
(2, ‘jenny’, ‘jenny@example.com’ );
Приклад зі складеним первинним ключем:
CREATE TABLE enrollments (
student_id INT,
course_id INT,
PRIMARY KEY (student_id, course_id)
);
INSERT INTO enrollments (student_id, course_id)
VALUES
(101, 9 ),
(129, 8 );
AUTO_INCREMENT
AUTO_INCREMENT в MySQL — це атрибут, який автоматично генерує унікальні значення для стовпця при вставці нових рядків у таблицю. Зазвичай його використовують для первинного ключа (PRIMARY KEY), щоб забезпечити унікальність кожного рядка. | |
Автоматичне збільшення значення | При кожній вставці нового рядка, значення поля з AUTO_INCREMENT автоматично збільшується на 1 (за замовчуванням). |
Тип даних | AUTO_INCREMENT працює тільки з числовими типами (INT, BIGINT, TINYINT тощо). |
Має бути ключем | Найчастіше AUTO_INCREMENT використовується з PRIMARY KEY. |
Приклад:
CREATE TABLE users_autoinc (
id INT AUTO_INCREMENT,
name VARCHAR(100),
PRIMARY KEY (id)
);
INSERT INTO users_autoinc (name) VALUES ('Jenny');
INSERT INTO users_autoinc (id, name) VALUES (10, 'Penny');
INSERT INTO users_autoinc (name) VALUES ('Mary');
ALTER TABLE users_autoinc AUTO_INCREMENT = 100;
INSERT INTO users_autoinc (name) VALUES ('Ruby');
NOT NULL
Атрибут NOT NULL означає, що значення в цьому стовпці обов’язкове — тобто не може бути NULL (невизначеним або порожнім).
NOT NULL використовується для забезпечення обов’язковості введення даних у певне поле. Якщо ви спробуєте вставити або оновити рядок без значення в такому стовпці, MySQL видасть помилку.
Приклад:
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
age INT
);
INSERT INTO employees (age) VALUES (30);
-- Помилка! Не вказано значення для name, яке має бути NOT NULL.
INSERT INTO employees (name, age) VALUES (‘Jenny’, 30);
Для додаткової візуалізації є відео.