Klucz podstawowy MySQL

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 zaktualizowania NULL kolumn klucza podstawowego zakończy się błędem. Zauważ, że MySQL niejawnie dodaje ograniczenie NOT 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

Leave a Reply

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *