sql >> Databáze >  >> RDS >> Sqlserver

Příručka pro začátečníky k tabulkám SQL

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:

  1. Jaký je název instance SQL a databáze pro úložiště objektů?
  2. V jakém schématu chcete tabulku uložit?
  3. Jaké jsou názvy sloupců pro vaši konkrétní tabulku?
  4. Jaké jsou datové typy pro tyto sloupce?
  5. Umožňují sloupce ukládání hodnot NULL?
  6. Používáte sloupec primárního klíče? Pokud ano, který sloupec bude fungovat jako sloupec primárního klíče?
  7. 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ů

  1. Odstraňte řádky SQL, kde ID nemají shodu, z jiné tabulky

  2. Mýtus, že DROP a TRUNCATE TABLE nejsou protokolované

  3. MariaDB ROUND() vs. TRUNCATE()

  4. Jak vybudovat flaskovou aplikaci na již existující databázi?