sql >> Databasteknik >  >> RDS >> Sqlserver

En nybörjarguide till SQL-tabeller

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:

  1. Vad är SQL-instansen och databasnamnet för objektlagring?
  2. I vilket schema vill du lagra tabellen?
  3. Vilka är kolumnnamnen för din specifika tabell?
  4. Vilka datatyper finns för dessa kolumner?
  5. Tillåter kolumnerna lagring av NULL-värden?
  6. Använder du kolumnen med primärnyckel? Om ja, vilken kolumn kommer att fungera som den primära nyckelkolumnen?
  7. 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

  1. Bygga en mycket tillgänglig databas för Moodle med MySQL-replikering

  2. Returnera en lista över partitionsfunktioner i SQL Server (T-SQL)

  3. Hur man uppdaterar vy i MySQL

  4. Paginering i SQL Server med OFFSET/FETCH