sql >> Database teknologi >  >> RDS >> Sqlserver

En begyndervejledning til SQL-tabeller

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:

  1. Hvad er SQL-forekomsten og databasenavnet til objektlagring?
  2. I hvilket skema vil du gemme tabellen?
  3. Hvad er kolonnenavnene for din specifikke tabel?
  4. Hvad er datatyperne for disse kolonner?
  5. Tillader kolonnerne lagring af NULL-værdier?
  6. Bruger du primærnøglekolonnen? Hvis ja, hvilken kolonne vil fungere som den primære nøglekolonne?
  7. 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

  1. Kan %NOTFOUND returnere null efter en hentning?

  2. PostgreSQL - Skrivning af dynamisk sql i lagret procedure, der returnerer et resultatsæt

  3. Sådan fremhæves poster eller værdier i en Microsoft Access-rapport ved hjælp af betinget formatering

  4. Hvordan kan jeg sende en parameter til et t-sql-script?