I den här artikeln kommer vi att utforska de olika typerna av SQL-tabeller och bästa praxis för att skapa användardefinierade tabeller i SQL Server.
Tabeller är primära objekt för att lagra data i relationsdatabaser. För att visualisera en tabell, överväg ett Excel-kalkylblad. Kalkylarket organiserar data i ett rad- och kolumnformat. På liknande sätt använder relationsdatabaser flera tabeller (ark) för att organisera data.
- Rad :Den identifierar en post unikt. Till exempel, rad 1-data tillhör en anställd som heter [Raj]. Det kan inte lagra data för en annan anställd.
- Kolumn :Varje kolumn definierar ett attribut för tabellen. Till exempel lagrar kolumnen [FirstName] förnamnet för alla anställda. Du kan inte lagra annan data som [Stad] i den här kolumnen.
Anta att vi behöver en [Employee]-tabell i en SQL-databas. Den här tabellen lagrar ett företags personalregister. För kolumnen [EmpID] kräver vi ett positivt tal (utan någon decimalkomma). I det här fallet är datatypen [heltal] den mest lämpliga. När du väl har definierat kolumnen [EmpID] som heltal, tillåter SQL Server dig inte att infoga några värden som inte uppfyller heltalsdatatypen. Du kan till exempel inte infoga strängen 'Raj' i kolumnen [EmpID[.
Skapa en SQL-tabell
På en hög nivå, för att skapa en SQL-tabell, bör vi ha följande information:
- Vad är SQL-instansen och databasnamnet för objektlagring?
- I vilket schema vill du lagra tabellen?
- Vilka är kolumnnamnen för din specifika tabell?
- Vilka datatyper finns för dessa kolumner?
- Tillåter kolumnerna lagring av NULL-värden?
- Använder du kolumnen med primärnyckel? Om ja, vilken kolumn kommer att fungera som den primära nyckelkolumnen?
- Vill du skapa några icke-klustrade index?
För denna demonstration, låt oss använda följande svar på dessa frågor för att skapa medarbetartabellen.
- Svar 1:Måldatabasens namn är [AzureDemoDatabase]
- Svar 2:Vi vill lagra tabeller i standard DBO-schemat
- Svar 3:Tabellen [Anställd] bör ha fem kolumner:[ID], [FirstName], [LastName], [City] och [DOB]
- Svar 4:Tabellen [Anställd] bör använda följande datatyper.
- [ID]:heltal
- [FirstName]:Varchar(50) NOT NULL
- [Efternamn]:Varchar(30) NOT NULL
- [Stad]:Varchar[50] NULL
- [DOB]:DATUM INTE NULL
- NULL-egenskaper enligt definitionen ovan
- Ja, kolumnen [ID] är en primärnyckelkolumn
- Nej, endast klustrade index behövs
Typer av SQL-tabeller
SQL Server-tabeller kan delas in i följande kategorier.
Systemtabeller
SQL Server lagrar instanskonfiguration och databasegenskaper i en speciell uppsättning tabeller. Dessa tabeller är kända som systemtabeller. Användare har inte rätt att göra ändringar i dessa tabeller direkt. SQL Server tillåter inte att specifika systemtabeller frågas direkt. Istället tillhandahåller den systemlagrade procedurer, funktioner, SQL Server-hanteringsobjekt och replikeringshanteringsobjekt för att söka efter dessa komponenter. Du kan hänvisa till Microsoft-dokument för att förstå systemtabellerna mer detaljerat.
Tillfälliga tabeller
Ibland behöver vi lagra data tillfälligt i databasen för beräkning, manipulation eller lagring av mellanresultat. I dessa fall kan vi använda temporära tabeller som alltid finns i TempDB-systemdatabasen.
SQL Server har två typer av temporära tabeller:
- Lokalt: Varje lokal temporär tabell börjar med ett tecken (#). Dess omfattning är begränsad till den aktuella anslutningen. SQL Server släpper automatiskt dessa tabeller när användaren kopplar från.
- Globalt: Varje global temporär tabell börjar med ett tecken (##). Alla användare kan referera till de globala temporära tabellerna. Om alla användare som refererar till den globala tabellen är anslutna, släpper SQL Server den.
–TILLfällig tabell ( lokal )
Skapa tabell #TableA
(
ID int,
[Namn] varchar(50)
)
–Global temporär tabell
Skapa tabell ##TableB
(
ID int,
[Namn] varchar(50)
)
Permanent eller användardefinierad tabell
Användare kan definiera sin egen tabellstruktur, kolumner, datatyper, begränsningar och index enligt deras applikationskrav. Dessa tabeller kallas användardefinierade tabeller.
Dessa tabeller lagras alltid i databasen om inte någon uttryckligen släpper dem. Därför är dessa också kända som permanenta tabeller.
Det finns flera sätt att skapa en användardefinierad tabell i SQL Server.
- SQL Server Management Studio GUI
- Använder T-SQL-skript
–Permanent tabell
Skapa tabell TabellA
(
ID int,
[Namn] varchar(50)
)
Externa tabeller
Externa tabeller är en viss typ av tabell som kan användas i SQL Server 2016 och framåt. Dessa tabeller refererar till andra datakällor som Azure blob-lagring, Hadoop, Oracle, Excel, ODBC, Bigdata, MongoDB och Teradata med hjälp av PolyBase-funktionen i SQL Server.
Du kan hänvisa till den här dokumentationen för att utforska PolyBase i SQL Server ytterligare.
Diagramtabeller
SQL Server-grafdatabaser använder en samling olika noder (vertices) och edges (relationer).
- Nodtabell :Nodtabellen är en samling noder med liknande typer. Till exempel har personnodtabellen alla personnoder i en graf.
- Kanttabell :Kantbordet är en samling liknande kanter. Till exempel rymmer ett vänbord alla kanter som kopplar en person till en annan person.
För att utforska detta ytterligare, hänvisa till Graph-databaskategorier.
Riktlinjer för att skapa en användardefinierad tabell i SQL Server
- Definiera en lämplig namnkonvention för tabellnamn.
- Använd olika scheman för att gruppera liknande tabellobjekt.
- Se alltid till att referensintegriteten upprätthålls med hjälp av SQL Server-begränsningar som primärnyckel och främmande nyckel.
- Definiera alltid en lämplig datatyp och dess längd för att snabbt kunna läsa och skriva data.
- Använd databasnormaliseringstekniker för att minska dataredundans och förbättra dataintegriteten.
- Förstå de olika normaliseringsformerna och hur man använder dem. (Du kan referera till den här artikeln: Vad är databasnormalisering i SQL Server?)
- Definiera lämpliga index för dina frågebelastningar.
- Konsultera alltid databasexperter för råd om databasmodellering och tillämpning av bästa praxis