Ця стаття потребує додаткових для поліпшення її . (6 січня 2016) |
Первинний ключ — атрибут або набір атрибутів, який однозначно ідентифікує кортеж даного відношення. Первинний ключ обов'язково унікальний.
У реляційних базах даних первинний ключ обирають серед одного з потенційних ключів або ж генерують сурогатний ключ.
Первинний ключ у мові SQL
У мові SQL первинний ключ описують обмеженням PRIMARY KEY, яке задається в операторах DDL (Create, Alter). Наприклад,
CREATE TABLE fools(id integer primary key auto_increment, name char(20), folly char(40));
Під час створення первинного ключа рушій бази даних зазвичай перевіряє метадані та дані відповідних стовпчиків (англ. columns) щодо їх відповідності таким правилам:
- Стовпчики не повинні допускати значень NULL
- Стовпчики первинного ключа неявно набувають обмеження NOT NULL. Розріджений стовпчик[] можна використовувати як частину первинного ключа, оскільки вони мають дозволяти значення NULL.
- Якщо первинний ключ додається до вже наявної таблиці, то набір значень у визначених стовпчиках має бути унікальним (не містити повторів)
- Якщо повтори трапляються, то рушій бази даних не створює обмеження та повертає помилку.
Приклади застосування первинного ключа
Приклад створення таблиці мовою SQL з обмеженням первинного ключа:
CREATE TABLE "Student" ( "id_student" int(120) NOT NULL auto_increment, "first_name" varchar(120) NOT NULL, "last_name" varchar(120) NOT NULL, "birth_date" date, "address" varchar(255), PRIMARY KEY ("id_student"));
Інший приклад:
CREATE TABLE "Car" ( "Id_Car" int NOT NULL, "CarName" varchar(120) NOT NULL, "Price" float NOT NULL, "BodyType" varchar(120), PRIMARY KEY ("Id_Car"));
Для створення обмеження первинного ключа в колонці «Id_Car», коли таблиця «Car» вже існує, використовують наступний сценарій мовою SQL з використанням оператора ALTER TABLE:
ALTER TABLE "Car" ADD PRIMARY KEY ("Id_Car")
Щоб розподілити обмеження первинного ключа на декілька колонок, доцільно використовувати такий синтаксис SQL:
ALTER TABLE "Car" ADD CONSTRAINT "PrimaryKey_Car" PRIMARY KEY ("Id_Car", "CarName")
Для видалення обмеження первинного ключа використовують наступний SQL:
ALTER TABLE "Car" DROP PRIMARY KEY
Примітки
Джерела
- Create-table в MySQL. dev.mysql.com (англійською) .
- SQLite Primary Key: The Ultimate Guide To Primary Key. SQLite Tutorial. Процитовано 19 грудня 2018.
{{}}
: Cite має пустий невідомий параметр:|1=
()
Це незавершена стаття про бази даних. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Cya stattya potrebuye dodatkovih posilan na dzherela dlya polipshennya yiyi perevirnosti Bud laska dopomozhit udoskonaliti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Zvernitsya na storinku obgovorennya za poyasnennyami ta dopomozhit vipraviti nedoliki Material bez dzherel mozhe buti piddano sumnivu ta vilucheno 6 sichnya 2016 Pervinnij klyuch atribut abo nabir atributiv yakij odnoznachno identifikuye kortezh danogo vidnoshennya Pervinnij klyuch obov yazkovo unikalnij U relyacijnih bazah danih pervinnij klyuch obirayut sered odnogo z potencijnih klyuchiv abo zh generuyut surogatnij klyuch Pervinnij klyuch u movi SQLU movi SQL pervinnij klyuch opisuyut obmezhennyam PRIMARY KEY yake zadayetsya v operatorah DDL Create Alter Napriklad CREATE TABLE fools id integer primary key auto increment name char 20 folly char 40 Pid chas stvorennya pervinnogo klyucha rushij bazi danih zazvichaj pereviryaye metadani ta dani vidpovidnih stovpchikiv angl columns shodo yih vidpovidnosti takim pravilam Stovpchiki ne povinni dopuskati znachen NULL Stovpchiki pervinnogo klyucha neyavno nabuvayut obmezhennya NOT NULL Rozridzhenij stovpchik utochniti mozhna vikoristovuvati yak chastinu pervinnogo klyucha oskilki voni mayut dozvolyati znachennya NULL Yaksho pervinnij klyuch dodayetsya do vzhe nayavnoyi tablici to nabir znachen u viznachenih stovpchikah maye buti unikalnim ne mistiti povtoriv Yaksho povtori traplyayutsya to rushij bazi danih ne stvoryuye obmezhennya ta povertaye pomilku Prikladi zastosuvannya pervinnogo klyucha Priklad stvorennya tablici movoyu SQL z obmezhennyam pervinnogo klyucha CREATE TABLE Student id student int 120 NOT NULL auto increment first name varchar 120 NOT NULL last name varchar 120 NOT NULL birth date date address varchar 255 PRIMARY KEY id student Inshij priklad CREATE TABLE Car Id Car int NOT NULL CarName varchar 120 NOT NULL Price float NOT NULL BodyType varchar 120 PRIMARY KEY Id Car Dlya stvorennya obmezhennya pervinnogo klyucha v kolonci Id Car koli tablicya Car vzhe isnuye vikoristovuyut nastupnij scenarij movoyu SQL z vikoristannyam operatora ALTER TABLE ALTER TABLE Car ADD PRIMARY KEY Id Car Shob rozpodiliti obmezhennya pervinnogo klyucha na dekilka kolonok docilno vikoristovuvati takij sintaksis SQL ALTER TABLE Car ADD CONSTRAINT PrimaryKey Car PRIMARY KEY Id Car CarName Dlya vidalennya obmezhennya pervinnogo klyucha vikoristovuyut nastupnij SQL ALTER TABLE Car DROP PRIMARY KEYPrimitkiU deyakih realizaciyah perevirka na nepripustimist znachen NULL ne vikonuyetsya Napriklad v SQLite v polyah pervinnogo klyucha dozvoleno porozhni znachennya NULL Ce zumovleno sumisnistyu z poperednimi realizaciyami u yakih obmezhennya ne bulo DzherelaCreate table v MySQL dev mysql com anglijskoyu SQLite Primary Key The Ultimate Guide To Primary Key SQLite Tutorial Procitovano 19 grudnya 2018 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Cite maye pustij nevidomij parametr 1 dovidka Ce nezavershena stattya pro bazi danih Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi