Jakie jest zastosowanie klucza zastępczego w SQL?

Najlepsza odpowiedź

klucz podstawowy to specjalne ograniczenie dotyczące kolumny lub zestawu kolumn. Ograniczenie klucza podstawowego zapewnia, że ​​tak oznaczone kolumny nie mają wartości NULL i że każda wartość jest unikalna. Fizycznie klucz podstawowy jest implementowany przez system bazy danych przy użyciu unikalnego indeksu, a wszystkie kolumny w kluczu podstawowym muszą być zadeklarowane jako NIE NULL. Tabela może mieć tylko jeden klucz podstawowy, ale może być złożony (składać się z więcej niż jednej kolumny).

klucz zastępczy to dowolna kolumna lub zestaw kolumn, które można zadeklarować jako klucz podstawowy zamiast a „real” lub naturalny klucz . Czasami może istnieć kilka kluczy naturalnych, które można zadeklarować jako klucz podstawowy, a wszystkie są nazywane kluczami kandydującymi . Zatem surogat jest kluczem kandydującym. Tabela może faktycznie mieć więcej niż jeden klucz zastępczy, chociaż byłoby to niezwykłe. Najpopularniejszym typem klucza zastępczego jest inkrementowana liczba całkowita, taka jak kolumna auto\_increment w MySQL, sekwencja w Oracle lub kolumna tożsamości w SQL Server.

Zalety używania kluczy zastępczych

Jak wspomniano, klucz zastępczy poświęca część oryginalnego kontekstu danych. Jednak może być niezwykle przydatny do celów analitycznych z następujących powodów:

  • Klucze zastępcze są unikalne. Ponieważ klucze zastępcze są wygenerowany przez system, system nie może utworzyć i zapisać zduplikowanej wartości.
  • Klucze zastępcze stosują jednolite reguły do ​​wszystkich rekordów. Zastępcza wartość klucza jest wynikiem programu, który tworzy wartość wygenerowaną przez system. Każdy klucz utworzony w wyniku działania programu będzie stosować jednolite zasady dla każdego rekordu.
  • Klucze zastępcze wytrzymują próbę czasu. Ponieważ klucze nie mają żadnego kontekstu ani znaczenia biznesowego, nie będzie potrzeby ich zmiany w przyszłości.
  • Klucze zastępcze pozwalają na nieograniczoną liczbę wartości. Klucze sekwencyjne, znaczniki czasu i losowe klucze nie mają praktycznych ograniczeń co do unikalnych kombinacji.

Odpowiedź

Większość dzisiejszych baz danych to tak naprawdę systemy zarządzania bazami danych (DBMS). Składają się one z dwóch komponentów:

  1. baza danych właściwa , która przechowuje dane wraz z metadanymi, takimi jak relacje, ograniczenia itd…
  2. interfejs użytkownika, w którym programista i / lub administrator bazy danych wprowadza polecenia SQL.

Większość baz danych jest dostarczana z narzędziem wiersza poleceń do łączenia z bazą danych. Na przykład MySQL zapewnia prostą powłokę SQL z możliwością edycji wiersza wejściowego. Obsługuje interaktywne i nieinteraktywne użycie. W przypadku użycia interaktywnego wyniki zapytania są przedstawiane w formacie tabeli ASCII. Gdy jest używany nieinteraktywnie (na przykład jako filtr), wynik jest prezentowany w formacie rozdzielanym tabulatorami. Format wyjściowy można zmienić za pomocą opcji poleceń.

Aby wywołać powłokę MySQL z wiersza poleceń interpretera poleceń, wpisz coś takiego:

shell> mysql --user=user\_name --password db\_name

Enter password: your\_password

Po zalogowaniu się do bazy danych możesz wykonywać polecenia, takie jak zapytanie SELECT przeciwko niemu:

shell>SELECT * FROM shop ORDER BY article;

+---------+--------+-------+

| article | dealer | price |

+---------+--------+-------+

| 1 | A | 3.45 |

| 1 | B | 3.99 |

| 2 | A | 10.99 |

| 3 | B | 1.45 |

| 3 | C | 1.69 |

| 3 | D | 1.25 |

| 4 | D | 19.95 |

+---------+--------+-------+

Możesz również umieścić swoje instrukcje SQL w pliku i następnie powiedz mysql, aby czytał swoje dane wejściowe z tego pliku. Aby to zrobić, należy utworzyć plik tekstowy zawierający instrukcje, które chcesz wykonać. Następnie wywołaj mysql, jak pokazano tutaj:

shell> mysql db\_name

Niektórzy dostawcy baz danych oferują również klientów GUI i narzędzia oprócz polecenia- klient liniowy. Kontynuując MySQL, jego klientem GUI jest MySQL Workbench. Dostępny w systemach Windows, Linux i Mac OS X, MySQL Workbench jest przeznaczony dla architektów baz danych, programistów i administratorów baz danych. Zapewnia modelowanie danych, programowanie SQL i wszechstronne narzędzia administracyjne do konfiguracji serwera, administrowania użytkownikami, tworzenia kopii zapasowych i wiele więcej.

Inne narzędzia

Oprócz narzędzi oferowanych przez samych dostawców baz danych, istnieje wiele innych ofert open source i komercyjnych dostępnych dla wszystkich popularnych typy baz danych i usługi w chmurze. Pod względem różnic zarówno produkty bezpłatne, jak i komercyjne są dobrze dostosowane do ich przeznaczenia.To, z którym się zdecydujesz, będzie zwykle bardziej zależne od rodzaju wykonywanej pracy, a nie użyteczności.

Po długiej pracy zarówno z produktami open source, jak i komercyjnymi, odkryłem, że stopniowo skłaniam się ku drugie, ponieważ efektywność pracy stała się ważniejsza w mojej pracy jako konsultanta IT. Osobiście uważam, że produkty komercyjne mogą zwiększyć produktywność, ponieważ usprawniają typowe zadania w celu zwiększenia wydajności.

W rezultacie używam Navicat Premium od kilku lat programista i klient administracyjny bazy danych. Chociaż Navicat tworzy klientów dla wszystkich popularnych baz danych, Navicat Premium jest jedynym narzędziem, z którego korzystałem, które jest w stanie połączyć się jednocześnie z bazami danych MySQL, MariaDB, MongoDB, SQL Server, Oracle, PostgreSQL i SQLite z poziomu jednej aplikacji. Jest również w pełni kompatybilny z bazami danych w chmurze, takimi jak Amazon RDS, Amazon Aurora, Amazon Redshift, Microsoft Azure, Oracle Cloud i Google Cloud.

Oto zrzut ekranu głównego ekranu w systemie Windows:

Wszystkie produkty Navicat są dostępne dla systemów Linux i macOS oraz Windows.

W szczególności edytor zapytań pomaga mi pisać moje zapytania są szybsze dzięki podświetlaniu składni, fragmentom kodu wielokrotnego użytku i dostosowywanym, a także automatycznej sugestii, jak pokazano poniżej:

Posiada nawet narzędzie do tworzenia zapytań, co jest bardzo korzystne dla mniej doświadczonych użytkowników. Umożliwia tworzenie i edycję zapytań wizualnie , praktycznie bez znajomości języka SQL!

Mam nadzieję, że to pomoże!

Pozdrawiam,

Adam

Dodaj komentarz

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