W tym artykule omówimy różne typy tabel SQL i najlepsze praktyki tworzenia tabel zdefiniowanych przez użytkownika w SQL Server.
Tabele są podstawowymi obiektami do przechowywania danych w relacyjnych bazach danych. Aby zwizualizować tabelę, rozważ arkusz kalkulacyjny programu Excel. Arkusz kalkulacyjny organizuje dane w formacie wierszy i kolumn. Podobnie relacyjne bazy danych używają wielu tabel (arkuszy) do organizowania danych.
- Wiersz :jednoznacznie identyfikuje rekord. Na przykład dane z wiersza 1 należą do pracownika o imieniu [Raj]. Nie może przechowywać danych innego pracownika.
- Kolumna :Każda kolumna definiuje atrybut tabeli. Na przykład kolumna [Imię] przechowuje imię wszystkich pracowników. W tej kolumnie nie można przechowywać innych danych, takich jak [Miasto].
Załóżmy, że potrzebujemy tabeli [Pracownik] w bazie danych SQL. Ta tabela przechowuje rekordy pracowników firmy. Dla kolumny [EmpID] wymagana jest liczba dodatnia (bez kropki dziesiętnej). W takim przypadku najbardziej odpowiedni jest typ danych [integer]. Po zdefiniowaniu kolumny [EmpID] jako liczby całkowitej SQL Server nie pozwala na wstawianie wartości, które nie spełniają typu danych całkowitych. Na przykład nie możesz wstawić ciągu „Raj” w kolumnie [EmpID[.
Tworzenie tabeli SQL
Na wysokim poziomie, aby utworzyć tabelę SQL, powinniśmy mieć następujące informacje:
- Jaka jest nazwa instancji SQL i bazy danych do przechowywania obiektów?
- W jakim schemacie chcesz przechowywać tabelę?
- Jakie są nazwy kolumn dla Twojej konkretnej tabeli?
- Jakie są typy danych dla tych kolumn?
- Czy kolumny pozwalają na przechowywanie wartości NULL?
- Czy używasz kolumny klucza podstawowego? Jeśli tak, która kolumna będzie działać jako kolumna klucza podstawowego?
- Czy chcesz utworzyć indeksy nieklastrowane?
W tej demonstracji użyjmy następujących odpowiedzi na te pytania, aby utworzyć tabelę pracowników.
- Odpowiedź 1:Nazwa docelowej bazy danych to [AzureDemoDatabase]
- Odpowiedź 2:Chcemy przechowywać tabele w domyślnym schemacie DBO
- Odpowiedź 3:Tabela [Pracownik] powinna mieć pięć kolumn:[ID], [Imię], [Nazwisko], [Miasto] i [DOB]
- Odpowiedź 4:Tabela [Pracownik] powinna używać następujących typów danych.
- [ID]:liczba całkowita
- [FirstName]:Varchar(50) NIE NULL
- [LastName]:Varchar(30) NIE NULL
- [Miasto]:Varchar[50] NULL
- [DOB]:DATA NIE JEST NULL
- Właściwości NULL zdefiniowane powyżej
- Tak, kolumna [ID] jest kolumną klucza podstawowego
- Nie, potrzebne są tylko indeksy klastrowe
Typy tabel SQL
Tabele SQL Server można podzielić na następujące kategorie.
Tabele systemowe
SQL Server przechowuje konfigurację instancji i właściwości bazy danych w specjalnym zestawie tabel. Te tabele są znane jako tabele systemowe. Użytkownicy nie mogą bezpośrednio wprowadzać zmian w tych tabelach. SQL Server nie pozwala na bezpośrednie odpytywanie określonych tabel systemowych. Zamiast tego udostępnia procedury składowane w systemie, funkcje, obiekty zarządzania serwerem SQL i obiekty zarządzania replikacją do odpytywania tych składników. Możesz zapoznać się z dokumentami firmy Microsoft, aby lepiej zrozumieć tabele systemowe.
Tabele tymczasowe
Czasami musimy tymczasowo przechowywać dane w bazie danych do obliczeń, manipulacji lub przechowywania wyników pośrednich. W takich przypadkach możemy wykorzystać tabele tymczasowe, które są zawsze przechowywane w bazie danych systemu TempDB.
SQL Server ma dwa typy tabel tymczasowych:
- Lokalne: Każda lokalna tabela tymczasowa zaczyna się od znaku (#). Jego zakres ogranicza się do bieżącego połączenia. SQL Server automatycznie usuwa te tabele, gdy użytkownik się rozłączy.
- Globalny: Każda globalna tabela tymczasowa zaczyna się od znaku (##). Wszyscy użytkownicy mogą odwoływać się do globalnych tabel tymczasowych. Jeśli wszyscy użytkownicy, którzy odwołują się do globalnej tabeli, są połączeni, SQL Server odrzuca ją.
–TYMCZASOWA Tabela ( Lokalna )
Utwórz tabelę #TableA
(
ID int,
[Nazwa] varchar(50)
)
–Globalna tabela tymczasowa
Utwórz tabelę ##TableB
(
ID int,
[Nazwa] varchar(50)
)
Stała lub zdefiniowana przez użytkownika tabela
Użytkownicy mogą definiować własną strukturę tabel, kolumny, typy danych, ograniczenia i indeksy zgodnie z wymaganiami aplikacji. Te tabele są nazywane tabelami zdefiniowanymi przez użytkownika.
Tabele te są zawsze przechowywane w bazie danych, chyba że ktoś wyraźnie je usunie. Dlatego są one również znane jako stoły stałe.
Istnieje wiele sposobów tworzenia tabeli zdefiniowanej przez użytkownika w SQL Server.
- GUI programu SQL Server Management Studio
- Korzystanie ze skryptu T-SQL
–Stała tabela
Utwórz tabelę TabelaA
(
ID int,
[Nazwa] varchar(50)
)
Stoły zewnętrzne
Tabele zewnętrzne to szczególny typ tabeli, którego można używać w programie SQL Server 2016 i nowszych. Te tabele odwołują się do innych źródeł danych, takich jak Azure Blob Storage, Hadoop, Oracle, Excel, ODBC, Bigdata, MongoDB i Teradata, korzystających z funkcji PolyBase programu SQL Server.
Możesz zapoznać się z tą dokumentacją, aby dokładniej zapoznać się z PolyBase w SQL Server.
Tabele wykresów
Grafowe bazy danych SQL Server używają zbioru różnych węzłów (wierzchołków) i krawędzi (związków).
- Tabela węzłów :Tabela węzłów to zbiór węzłów o podobnych typach. Na przykład tabela węzłów osób zawiera wszystkie węzły osób na wykresie.
- Tabela krawędzi :Stół krawędziowy to zbiór podobnych krawędzi. Na przykład stół przyjaciela zawiera wszystkie krawędzie, które łączą osobę z inną osobą.
Aby dokładniej to zbadać, zapoznaj się z kategoriami bazy danych wykresów.
Wytyczne dotyczące tworzenia tabeli zdefiniowanej przez użytkownika w SQL Server
- Zdefiniuj odpowiednią konwencję nazewnictwa dla nazw tabel.
- Użyj różnych schematów do grupowania podobnych obiektów tabeli.
- Zawsze upewnij się, że integralność referencyjna jest utrzymywana przy użyciu ograniczeń SQL Server, takich jak klucz podstawowy i klucz obcy.
- Zawsze definiuj odpowiedni typ danych i ich długość, aby szybko czytać i zapisywać dane.
- Użyj technik normalizacji bazy danych, aby zmniejszyć nadmiarowość danych i poprawić integralność danych.
- Zapoznaj się z różnymi formami normalizacji i jak z nich korzystać. (Możesz zapoznać się z tym artykułem: Co to jest normalizacja bazy danych w SQL Server?)
- Zdefiniuj odpowiednie indeksy dla zadań związanych z zapytaniami.
- Zawsze konsultuj się ze specjalistami od baz danych, aby uzyskać porady dotyczące modelowania baz danych i stosowania najlepszych praktyk