Podsumowanie: z tego samouczka dowiesz się, jak używać ograniczenia klucza podstawowego MySQL do tworzenia klucza podstawowego dla tabeli.
Wprowadzenie do klucza podstawowego MySQL
Klucz podstawowy to kolumna lub zestaw kolumn, które jednoznacznie identyfikują każdy wiersz tabeli. Klucz podstawowy podlega następującym regułom:
- Klucz podstawowy musi zawierać unikalne wartości. Jeśli klucz podstawowy składa się z wielu kolumn, kombinacja wartości w tych kolumnach musi być niepowtarzalna.
- Kolumna klucza podstawowego nie może mieć wartości
NULL
. Każda próba wstawienia lub zaktualizowaniaNULL
kolumn klucza podstawowego zakończy się błędem. Zauważ, że MySQL niejawnie dodaje ograniczenieNOT NULL
do kolumn klucza podstawowego. - Tabela może mieć tylko jeden klucz podstawowy.
Ponieważ MySQL działa szybciej w przypadku liczb całkowitych typ danych kolumny klucza podstawowego powinien być liczbą całkowitą, np. INT,
BIGINT
. Należy również upewnić się, że zakresy wartości typu całkowitego dla klucza podstawowego wystarczają do przechowywania wszystkich możliwych wierszy, które może zawierać tabela.
Kolumna klucza podstawowego często zawiera AUTO_INCREMENT
atrybut, który automatycznie generuje sekwencyjną liczbę całkowitą za każdym razem, gdy wstawisz nowy wiersz do tabeli.
Gdy definiujesz klucz podstawowy dla tabeli, MySQL automatycznie tworzy indeks o nazwie PRIMARY
.
Przykłady MySQL PRIMARY KEY
Ograniczenie PRIMARY KEY
umożliwia zdefiniowanie klucza podstawowego tabeli podczas tworzenia lub zmieniania tabeli.
1) Zdefiniuj ograniczenie PRIMARY KEY w CREATE TABLE
Zazwyczaj definiuje się klucz podstawowy dla tabeli w CREATE TABLE
.
Jeśli klucz podstawowy ma jedną kolumnę, możesz użyć ograniczenia PRIMARY KEY
jako ograniczenia kolumny:
Code language: SQL (Structured Query Language) (sql)
Gdy klucz podstawowy ma więcej niż jedną kolumnę, musisz użyć th e PRIMARY KEY
jako ograniczenie tabeli.
W tej składni kolumny w column_list
rozdziel przecinkami ( ,).
Ograniczenie tabeli PRIMARY KEY
może być użyte, gdy klucz podstawowy ma jedną kolumnę:
Poniższy przykład tworzy tabelę o nazwie users
którego kluczem podstawowym jest kolumna user_id
:
Ta instrukcja tworzy roles
tabela, która ma ograniczenie PRIMARY KEY
jako ograniczenie tabeli:
W przypadku, gdy klucz podstawowy składa się z wielu kolumn, musisz określić je na końcu instrukcji CREATE TABLE
. Listę rozdzielonych przecinkami kolumn klucza podstawowego umieszczasz w nawiasach, a po słowach kluczowych PRIMARY KEY
.
Poniższy przykład tworzy user_roles
tabela, której klucz podstawowy składa się z dwóch kolumn: user_id
i role_id
. Definiuje ograniczenie PRIMARY KEY
jako ograniczenie tabeli:
Zauważ, że instrukcja stworzyła również dwa ograniczenia klucza obcego.
2) Zdefiniuj PRIMARY Ograniczenia KEY przy użyciu ALTER TABLE
Jeśli z jakichś powodów tabela nie ma klucza podstawowego, możesz użyć instrukcji ALTER TABLE
, aby dodać klucz podstawowy do tabela w następujący sposób:
Code language: SQL (Structured Query Language) (sql)
Poniższy przykład dodaje kolumnę id
do klucza podstawowego.
Najpierw utwórz tabelę pkdemos
bez klucza podstawowego.
Code language: SQL (Structured Query Language) (sql)
Po drugie, dodaj podstawowy klucz do tabeli pkdemos
za pomocą instrukcji ALTER TABLE
:
Code language: SQL (Structured Query Language) (sql)
Jeśli dodasz klucz podstawowy do tabeli, która zawiera już dane. Dane w kolumnach, które zostaną uwzględnione w kluczu podstawowym, muszą być unikalne i nie mogą mieć wartości NULL.
PRIMARY KEY vs. UNIQUE KEY vs. KEY
KEY
to synonim INDEX
. Używasz KEY
, gdy chcesz utworzyć indeks dla kolumny lub zestawu kolumn, który nie jest częścią klucza podstawowego ani unikalnego.
Indeks UNIQUE
gwarantuje, że wartości w kolumnie muszą być unikalne. W przeciwieństwie do indeksu PRIMARY
, MySQL dopuszcza NULL
wartości w indeksie UNIQUE
. Ponadto tabela może mieć wiele indeksów UNIQUE
.
Załóżmy, że email
i użytkowników w tabeli users
musi być unikalna.Aby wyegzekwować te reguły, możesz zdefiniować UNIQUE
indeksy dla kolumn email
i username
jako następującą instrukcję:
Dodaj UNIQUE
indeks dla kolumny username
:
Code language: SQL (Structured Query Language) (sql)
Dodaj indeks UNIQUE
dla kolumny email
:
Code language: SQL (Structured Query Language) (sql)
W tym samouczku nauczyłeś się, jak utworzyć klucz podstawowy dla nowej tabeli lub dodać klucz podstawowy do istniejącej tabeli.
- Czy ten samouczek był pomocny?
- Tak Nie