Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Klucze podstawowe MySQL

Wyjaśnia, czym jest klucz podstawowy i dlaczego jest integralną częścią relacyjnych baz danych.

Kiedy tworzyliśmy nasze dwie tabele, stworzyliśmy również klucz podstawowy dla każdej tabeli.

Po rozwinięciu węzłów w lewym SCHEMACIE możesz zobaczyć klucze podstawowe (i klucze obce — przejdziemy do tych następnych) wymienione pod każdą tabelą:

Jak pokazuje dołączony zrzut ekranu, Indeksy węzły zawierają dowolne indeksy (w naszym przypadku klucze obce i/lub klucze podstawowe). Te klucze podstawowe i klucze obce są dostępne tylko dlatego, że określiliśmy je w naszym kodzie podczas tworzenia tabel.

W szczególności użyliśmy PRIMARY KEY (FruitId) aby utworzyć FruitId kolumna klucz podstawowy dla Owoców tabeli i użyliśmy PRIMARY KEY (UnitId) aby utworzyć UnitId kolumna klucz podstawowy dla Jednostek tabela.

Co to jest klucz podstawowy?

klucz podstawowy (określany również jako unikalny klawisz ) to kolumna, która została przydzielona jako pole unikalnego identyfikatora. Wartość w kolumnie klucza podstawowego jest unikalna dla każdego rekordu. Innymi słowy, żadne dwa rekordy nie mogą mieć tej samej wartości w tej kolumnie.

Klasycznym przykładem pola klucza podstawowego jest pole „ID”. Większość tabel ma pole identyfikatora, które zapewnia unikalny identyfikator dla każdego rekordu. Przykładami mogą być „CustomerId”, „ProductId”, „FruitId” itp. Bez takich pól identyfikatora działanie bazy danych byłoby poważnie utrudnione. Gdybyś miał dwóch lub więcej klientów o tej samej nazwie, jak mógłbyś znaleźć ich rekord? Chociaż prawdą jest, że możesz znaleźć coś wyjątkowego w każdym rekordzie, dużo czystsze i łatwiejsze jest posiadanie kolumny, której głównym celem jest zapewnienie unikalnej identyfikacji dla każdego rekordu.

Wartość podstawowa może być albo normalną wartością, która gwarantuje unikalność (numer ISBN dla książek, kod produktu itp.), albo może to być wartość wygenerowana przez aplikację lub system DBMS, która ma być unikatowa (np. unikatowa globalnie identyfikator lub automatycznie zwiększająca się liczba całkowita).

Wybieranie klucza podstawowego

Zachowaj ostrożność przy wyborze kolumny dla klucza podstawowego. Musisz upewnić się, że każdy rekord będzie miał jedną i że nie ma możliwości, aby dwa rekordy miały tę samą wartość lub że jeden rekord będzie miał więcej niż jedną wartość.

Na przykład użycie adresu e-mail użytkownika może w niektórych przypadkach działać, ale nie jest to bardzo solidna podstawa dla unikalnego identyfikatora. Użytkownicy mogą zmienić swój adres e-mail. Użytkownicy mogą udostępniać adresy e-mail. Niektórzy użytkownicy mogą nie mieć adresu e-mail. Oczywiście możesz napisać swój system, aby uniemożliwić użytkownikom zmianę adresu e-mail lub udostępnianie go, ale Twój system nie byłby zbyt elastyczny ani przyjazny dla użytkownika.

Możesz wymagać, aby wszyscy użytkownicy mieli unikalną nazwę użytkownika. To może zadziałać. Musisz jednak dokładnie przemyśleć wszystkie możliwości. Jeśli istnieje jakakolwiek szansa, że ​​użytkownicy mogą go zmienić lub udostępnić (przeszłość, teraźniejszość lub przyszłość), nie używaj go jako klucza podstawowego. Co się stanie, jeśli „TechGuy12” dezaktywuje swoje konto. Czy to oznacza, że ​​inny użytkownik może teraz używać „TechGuy12”? Czy będzie to problem dla Twojej aplikacji lub raportów, które musisz wygenerować?

Jeśli masz jakiekolwiek wątpliwości co do „wyjątkowości” pola klucza podstawowego, użyj automatycznie wygenerowanej liczby, która zwiększa się z każdym utworzonym rekordem.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy w MySQL mogę odroczyć sprawdzanie integralności referencyjnej do momentu zatwierdzenia?

  2. Nie można zwrócić wyników z procedury składowanej za pomocą kursora Pythona

  3. Zwracanie zestawu wyników

  4. Kolumna obliczona z innej kolumny?

  5. Używanie Like In MySQL do operacji wyszukiwania przy użyciu wzorca