I denne artikel vil vi udforske de forskellige typer af SQL-tabeller og bedste praksis for oprettelse af brugerdefinerede tabeller i SQL Server.
Tabeller er primære objekter til lagring af data i relationelle databaser. For at visualisere en tabel skal du overveje et Excel-regneark. Regnearket organiserer data i et række- og kolonneformat. På samme måde bruger relationsdatabaser flere tabeller (ark) til at organisere data.
- Række :Det identificerer entydigt en post. For eksempel tilhører række 1-data en medarbejder ved navn [Raj]. Den kan ikke gemme data for en anden medarbejder.
- Kolonne :Hver kolonne definerer en egenskab for tabellen. For eksempel gemmer kolonnen [Fornavn] fornavnet for alle medarbejdere. Du kan ikke gemme andre data såsom [By] i denne kolonne.
Antag, at vi har brug for en [Medarbejder]-tabel i en SQL-database. Denne tabel gemmer en virksomheds medarbejderregistreringer. For kolonnen [EmpID] kræver vi et positivt tal (uden decimaltegn). I dette tilfælde er [heltal] datatypen den bedst egnede. Når du har defineret kolonnen [EmpID] som heltal, tillader SQL Server dig ikke at indsætte værdier, der ikke opfylder heltalsdatatypen. For eksempel kan du ikke indsætte strengen 'Raj' i kolonnen [EmpID[.
Oprettelse af en SQL-tabel
På et højt niveau bør vi have følgende oplysninger for at oprette en SQL-tabel:
- Hvad er SQL-forekomsten og databasenavnet til objektlagring?
- I hvilket skema vil du gemme tabellen?
- Hvad er kolonnenavnene for din specifikke tabel?
- Hvad er datatyperne for disse kolonner?
- Tillader kolonnerne lagring af NULL-værdier?
- Bruger du primærnøglekolonnen? Hvis ja, hvilken kolonne vil fungere som den primære nøglekolonne?
- Vil du oprette ikke-klyngede indekser?
Til denne demonstration, lad os bruge følgende svar på disse spørgsmål til at oprette medarbejdertabellen.
- Svar 1:Måldatabasenavnet er [AzureDemoDatabase]
- Svar 2:Vi ønsker at gemme tabeller i standard DBO-skemaet
- Svar 3:Tabellen [Medarbejder] skal have fem kolonner:[ID], [Fornavn], [Efternavn], [By] og [DOB]
- Svar 4:Tabellen [Medarbejder] skal bruge følgende datatyper.
- [ID]:Heltal
- [Fornavn]:Varchar(50) IKKE NULL
- [Efternavn]:Varchar(30) IKKE NULL
- [By]:Varchar[50] NULL
- [DOB]:DATO IKKE NULL
- NULL-egenskaber som defineret ovenfor
- Ja, kolonnen [ID] er en primær nøglekolonne
- Nej, kun klyngede indekser nødvendige
SQL-tabeller
SQL Server-tabeller kan opdeles i følgende kategorier.
Systemtabeller
SQL Server gemmer instanskonfiguration og databaseegenskaber i et særligt sæt tabeller. Disse tabeller er kendt som systemtabeller. Brugere har ikke tilladelse til at foretage ændringer i disse tabeller direkte. SQL Server tillader ikke, at specifikke systemtabeller forespørges direkte. I stedet giver den systemlagrede procedurer, funktioner, SQL Server-styringsobjekter og replikeringsstyringsobjekter til forespørgsler om disse komponenter. Du kan henvise til Microsoft-dokumenter for at forstå systemtabeller mere detaljeret.
Midlertidige tabeller
Nogle gange er vi nødt til at gemme data midlertidigt i databasen til beregning, manipulation eller lagring af mellemresultater. I disse tilfælde kan vi bruge midlertidige tabeller, som altid opbevares i TempDB-systemdatabasen.
SQL Server har to typer midlertidige tabeller:
- Lokalt: Hver lokal midlertidig tabel starter med et tegn (#). Dens omfang er begrænset til den aktuelle forbindelse. SQL Server sletter automatisk disse tabeller, når brugeren afbryder forbindelsen.
- Globalt: Hver global midlertidig tabel starter med et tegn (##). Alle brugere kan referere til de globale midlertidige tabeller. Hvis alle brugere, der refererer til den globale tabel, er tilsluttet, dropper SQL Server den.
–MIDLERTIDIG tabel (lokal)
Opret tabel #TabelA
(
ID int,
[Navn] varchar(50)
)
–Global midlertidig tabel
Opret tabel ##TabelB
(
ID int,
[Navn] varchar(50)
)
Permanent eller brugerdefineret tabel
Brugere kan definere deres egen tabelstruktur, kolonner, datatyper, begrænsninger og indekser i henhold til deres applikationskrav. Disse tabeller kaldes brugerdefinerede tabeller.
Disse tabeller er altid gemt i databasen, medmindre nogen udtrykkeligt dropper dem. Derfor er disse også kendt som permanente borde.
Der er flere måder at oprette en brugerdefineret tabel i SQL Server.
- SQL Server Management Studio GUI
- Brug af T-SQL-script
–Permanent tabel
Opret tabel TabelA
(
ID int,
[Navn] varchar(50)
)
Eksterne tabeller
Eksterne tabeller er en bestemt type tabel, der kan bruges i SQL Server 2016 og fremefter. Disse tabeller refererer til andre datakilder såsom Azure blob-lagring, Hadoop, Oracle, Excel, ODBC, Bigdata, MongoDB og Teradata ved hjælp af PolyBase-funktionen i SQL Server.
Du kan se denne dokumentation for yderligere at udforske PolyBase i SQL Server.
Graftabeller
SQL Server-grafdatabaser bruger en samling af forskellige noder (hjørnepunkter) og kanter (relationer).
- Knudetabel :Nodetabellen er en samling af noder med lignende typer. For eksempel har personknudetabellen alle personnoder i en graf.
- Kanttabel :Kantbordet er en samling af lignende kanter. For eksempel rummer et vennebord alle kanter, der forbinder en person med en anden person.
For at udforske dette yderligere, referer til Graph-databasekategorier.
Retningslinjer for oprettelse af en brugerdefineret tabel i SQL Server
- Definer en passende navnekonvention for tabelnavne.
- Brug forskellige skemaer til at gruppere lignende tabelobjekter.
- Sørg altid for, at den referentielle integritet vedligeholdes ved hjælp af SQL Server-begrænsningerne, såsom primær nøgle og fremmednøgle.
- Definer altid en passende datatype og dens længde for hurtigt at læse og skrive data.
- Brug databasenormaliseringsteknikker til at reducere dataredundans og forbedre dataintegriteten.
- Forstå de forskellige normaliseringsformer, og hvordan man bruger dem. (Du kan henvise til denne artikel: Hvad er databasenormalisering i SQL Server?)
- Definer passende indekser til dine forespørgselsarbejdsbelastninger.
- Konsulter altid databaseprofessionelle for at få råd om databasemodellering og anvendelse af bedste praksis