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:
- baza danych właściwa , która przechowuje dane wraz z metadanymi, takimi jak relacje, ograniczenia itd…
- 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