V tomto článku prozkoumáme různé typy tabulek SQL a osvědčené postupy pro vytváření uživatelsky definovaných tabulek na serveru SQL Server.
Tabulky jsou primární objekty pro ukládání dat v relačních databázích. Chcete-li zobrazit tabulku, zvažte tabulku Excel. Tabulka organizuje data ve formátu řádků a sloupců. Podobně relační databáze používají k uspořádání dat více tabulek (listů).
- Řádek :Jednoznačně identifikuje záznam. Například data na řádku 1 patří zaměstnanci jménem [Raj]. Nemůže ukládat data pro jiného zaměstnance.
- Sloupec :Každý sloupec definuje atribut tabulky. Například sloupec [FirstName] ukládá křestní jméno pro všechny zaměstnance. Do tohoto sloupce nemůžete uložit jiná data, jako je [Město].
Předpokládejme, že potřebujeme tabulku [Employee] v SQL databázi. V této tabulce jsou uloženy záznamy zaměstnanců společnosti. Pro sloupec [EmpID] požadujeme kladné číslo (bez desetinné čárky). V tomto případě je nejvhodnější datový typ [integer]. Jakmile definujete sloupec [EmpID] jako celé číslo, SQL Server vám neumožňuje vložit žádné hodnoty, které nesplňují datový typ celé číslo. Nemůžete například vložit řetězec ‚Raj‘ do sloupce [EmpID[.
Vytvoření tabulky SQL
Na vysoké úrovni bychom k vytvoření tabulky SQL měli mít následující informace:
- Jaký je název instance SQL a databáze pro úložiště objektů?
- V jakém schématu chcete tabulku uložit?
- Jaké jsou názvy sloupců pro vaši konkrétní tabulku?
- Jaké jsou datové typy pro tyto sloupce?
- Umožňují sloupce ukládání hodnot NULL?
- Používáte sloupec primárního klíče? Pokud ano, který sloupec bude fungovat jako sloupec primárního klíče?
- Chcete vytvořit nějaké neshlukované indexy?
Pro tuto ukázku použijme následující odpovědi na tyto otázky k vytvoření tabulky zaměstnanců.
- Odpověď 1:Název cílové databáze je [AzureDemoDatabase]
- Odpověď 2:Chceme ukládat tabulky ve výchozím schématu DBO
- Odpověď 3:Tabulka [Zaměstnanec] by měla mít pět sloupců:[ID], [Jméno], [Příjmení], [Město] a [DOB]
- Odpověď 4:Tabulka [Zaměstnanec] by měla používat následující datové typy.
- [ID]:Celé číslo
- [Jméno]:Varchar(50) NOT NULL
- [Příjmení]:Varchar(30) NOT NULL
- [Město]:Varchar[50] NULL
- [DOB]:DATE NOT NULL
- Vlastnosti NULL, jak jsou definovány výše
- Ano, sloupec [ID] je sloupec primárního klíče
- Ne, jsou potřeba pouze seskupené indexy
Typy tabulek SQL
Tabulky SQL Serveru lze rozdělit do následujících kategorií.
Systémové tabulky
SQL Server ukládá konfiguraci instance a vlastnosti databáze ve speciální sadě tabulek. Tyto tabulky jsou známé jako systémové tabulky. Uživatelé nemají povoleno provádět změny v těchto tabulkách přímo. SQL Server neumožňuje přímé dotazování na konkrétní systémové tabulky. Místo toho poskytuje systémové uložené procedury, funkce, objekty SQL Server Management Objects a Replication Management Objects pro dotazování těchto komponent. Chcete-li porozumět systémovým tabulkám podrobněji, můžete se podívat na Dokumenty Microsoftu.
Dočasné tabulky
Někdy potřebujeme data dočasně uložit do databáze pro výpočet, manipulaci nebo uložení mezivýsledků. V těchto případech můžeme využít dočasné tabulky, které jsou vždy uchovávány v systémové databázi TempDB.
SQL Server má dva typy dočasných tabulek:
- Místní: Každá místní dočasná tabulka začíná znakem (#). Jeho rozsah je omezen na aktuální připojení. SQL Server tyto tabulky automaticky zruší, jakmile se uživatel odpojí.
- Globální: Každá globální dočasná tabulka začíná znakem (##). Všichni uživatelé mohou odkazovat na globální dočasné tabulky. Pokud jsou všichni uživatelé, kteří odkazují na globální tabulku, připojeni, SQL Server ji zruší.
–TEMPORARY Table ( Local )
Vytvořit tabulku #TableA
(
ID int,
[Name] varchar(50)
)
–Globální dočasná tabulka
Vytvořit tabulku ##TableB
(
ID int,
[Název] varchar(50)
)
Stálá nebo uživatelem definovaná tabulka
Uživatelé mohou definovat svou vlastní strukturu tabulky, sloupce, datové typy, omezení a indexy podle požadavků své aplikace. Tyto tabulky se nazývají uživatelsky definované tabulky.
Tyto tabulky jsou vždy uloženy v databázi, pokud je někdo výslovně nezahodí. Proto jsou také známé jako trvalé tabulky.
Existuje několik způsobů, jak vytvořit uživatelsky definovanou tabulku v SQL Server.
- GUI SQL Server Management Studio
- Použití skriptu T-SQL
–Stálá tabulka
Vytvořit tabulku TableA
(
ID int,
[Název] varchar(50)
)
Externí tabulky
Externí tabulky jsou konkrétním typem tabulky, které lze použít v SQL Server 2016 a novějších. Tyto tabulky odkazují na další zdroje dat, jako je Azure blob storage, Hadoop, Oracle, Excel, ODBC, Bigdata, MongoDB a Teradata pomocí funkce PolyBase SQL Server.
Chcete-li dále prozkoumat PolyBase na serveru SQL, můžete se podívat na tuto dokumentaci.
Grafové tabulky
Databáze grafů SQL Server používají kolekci různých uzlů (vrcholů) a hran (vztahů).
- Tabulka uzlů :Tabulka uzlů je kolekce uzlů podobných typů. Například tabulka uzlů osob obsahuje všechny uzly osob v grafu.
- Okrajová tabulka :Hranový stůl je sbírka podobných hran. Například stůl přátel drží všechny hrany, které spojují osobu s jinou osobou.
Chcete-li to prozkoumat dále, přejděte na kategorie databáze grafů.
Pokyny pro vytvoření uživatelem definované tabulky na serveru SQL Server
- Definujte vhodnou konvenci pojmenování pro názvy tabulek.
- K seskupení podobných objektů tabulky použijte různá schémata.
- Vždy zajistěte, aby byla zachována referenční integrita pomocí omezení serveru SQL Server, jako je primární klíč a cizí klíč.
- Vždy definujte vhodný datový typ a jeho délku pro rychlé čtení a zápis dat.
- Použijte techniky normalizace databáze ke snížení redundance dat a zlepšení integrity dat.
- Pochopte různé formy normalizace a jak je používat. (Můžete si přečíst tento článek: Co je normalizace databáze na serveru SQL?)
- Definujte vhodné indexy pro úlohy dotazování.
- Vždy se poraďte s databázovými profesionály o radu ohledně modelování databáze a používání osvědčených postupů