In dit artikel onderzoeken we de verschillende typen SQL-tabellen en best practices voor het maken van door de gebruiker gedefinieerde tabellen in SQL Server.
Tabellen zijn primaire objecten voor het opslaan van gegevens in relationele databases. Overweeg een Excel-spreadsheet om een tabel te visualiseren. De spreadsheet ordent gegevens in rij- en kolomindeling. Op dezelfde manier gebruiken relationele databases meerdere tabellen (bladen) om gegevens te ordenen.
- Rij :Het identificeert een record op unieke wijze. Gegevens in rij 1 zijn bijvoorbeeld van een werknemer met de naam [Raj]. Het kan geen gegevens opslaan voor een andere werknemer.
- Kolom :Elke kolom definieert een attribuut van de tabel. In de kolom [FirstName] wordt bijvoorbeeld de voornaam van alle werknemers opgeslagen. U kunt in deze kolom geen andere gegevens zoals [Plaats] opslaan.
Stel dat we een [Employee]-tabel nodig hebben in een SQL-database. In deze tabel worden de werknemersrecords van een bedrijf opgeslagen. Voor de kolom [EmpID] hebben we een positief getal nodig (zonder decimale punt). In dit geval is het datatype [integer] het meest geschikt. Nadat u de kolom [EmpID] als geheel getal hebt gedefinieerd, kunt u in SQL Server geen waarden meer invoegen die niet voldoen aan het gegevenstype geheel getal. U kunt bijvoorbeeld de tekenreeks 'Raj' niet invoegen in de [EmpID[-kolom.
Een SQL-tabel maken
Op een hoog niveau, om een SQL-tabel te maken, zouden we de volgende informatie moeten hebben:
- Wat is de SQL-instantie en databasenaam voor objectopslag?
- In welk schema wil je de tabel opslaan?
- Wat zijn de kolomnamen voor uw specifieke tabel?
- Wat zijn de gegevenstypen voor deze kolommen?
- Kunnen de kolommen NULL-waarden opslaan?
- Gebruik je de primaire sleutelkolom? Zo ja, welke kolom zal fungeren als de primaire sleutelkolom?
- Wilt u niet-geclusterde indexen maken?
Laten we voor deze demonstratie de volgende antwoorden op deze vragen gebruiken om de werknemerstabel te maken.
- Antwoord 1:de naam van de doeldatabase is [AzureDemoDatabase]
- Antwoord 2:We willen tabellen opslaan in het standaard DBO-schema
- Antwoord 3:De [Employee]-tabel moet vijf kolommen hebben:[ID], [FirstName], [LastName], [City] en [DOB]
- Antwoord 4:De [Werknemer]-tabel moet de volgende gegevenstypen gebruiken.
- [ID]:geheel getal
- [FirstName]:Varchar(50) NIET NULL
- [Achternaam]:Varchar(30) NIET NULL
- [Stad]:Varchar[50] NULL
- [DOB]:DATUM NIET NUL
- NULL-eigenschappen zoals hierboven gedefinieerd
- Ja, kolom [ID] is een kolom met primaire sleutel
- Nee, alleen geclusterde indexen nodig
Soorten SQL-tabellen
SQL Server-tabellen kunnen worden onderverdeeld in de volgende categorieën.
Systeemtabellen
SQL Server slaat de configuratie van het exemplaar en de database-eigenschappen op in een speciale set tabellen. Deze tabellen worden systeemtabellen genoemd. Het is gebruikers niet toegestaan rechtstreeks wijzigingen in deze tabellen aan te brengen. SQL Server staat niet toe dat specifieke systeemtabellen rechtstreeks worden opgevraagd. In plaats daarvan biedt het systeem opgeslagen procedures, functies, SQL Server Management Objects en Replication Management Objects voor het opvragen van deze componenten. U kunt Microsoft-documenten raadplegen voor meer informatie over systeemtabellen.
Tijdelijke tabellen
Soms moeten we gegevens tijdelijk in de database opslaan voor berekening, manipulatie of het opslaan van tussenresultaten. In deze gevallen kunnen we tijdelijke tabellen gebruiken die altijd in de TempDB-systeemdatabase worden bewaard.
SQL Server heeft twee soorten tijdelijke tabellen:
- Lokaal: Elke lokale tijdelijke tafel begint met een teken (#). De reikwijdte is beperkt tot de huidige verbinding. SQL Server verwijdert deze tabellen automatisch zodra de gebruiker de verbinding verbreekt.
- Globaal: Elke globale tijdelijke tabel begint met een teken (##). Alle gebruikers kunnen verwijzen naar de globale tijdelijke tabellen. Als alle gebruikers die naar de globale tabel verwijzen, zijn verbonden, laat SQL Server deze vallen.
–TIJDELIJKE Tabel ( Lokaal )
Maak tabel #TableA
(
ID int,
[Naam] varchar(50)
)
–Global tijdelijke tabel
Maak tabel ##TableB
(
ID int,
[Naam] varchar(50)
)
Permanente of door de gebruiker gedefinieerde tabel
Gebruikers kunnen hun eigen tabelstructuur, kolommen, gegevenstypen, beperkingen en indexen definiëren volgens hun toepassingsvereisten. Deze tabellen worden door de gebruiker gedefinieerde tabellen genoemd.
Deze tabellen worden altijd opgeslagen in de database, tenzij iemand ze expliciet laat vallen. Daarom worden deze ook wel vaste tafels genoemd.
Er zijn meerdere manieren om een door de gebruiker gedefinieerde tabel in SQL Server te maken.
- SQL Server Management Studio GUI
- T-SQL-script gebruiken
–Permanente tabel
Maak tabel TableA
(
ID int,
[Naam] varchar(50)
)
Externe tabellen
Externe tabellen zijn een bepaald type tabel dat kan worden gebruikt in SQL Server 2016 en later. Deze tabellen verwijzen naar andere gegevensbronnen zoals Azure blob-opslag, Hadoop, Oracle, Excel, ODBC, Bigdata, MongoDB en Teradata met behulp van de PolyBase-functie van SQL Server.
U kunt deze documentatie raadplegen om PolyBase in SQL Server verder te verkennen.
Grafiektabellen
SQL Server-grafiekdatabases gebruiken een verzameling verschillende knooppunten (hoekpunten) en randen (relaties).
- Knooppunttabel :De knooppuntentabel is een verzameling knooppunten met vergelijkbare typen. De tabel met persoonsknooppunten heeft bijvoorbeeld alle persoonsknooppunten in een grafiek.
- Randtafel :De randtafel is een verzameling van gelijkaardige randen. Een vriendentafel bevat bijvoorbeeld alle randen die een persoon met een andere persoon verbinden.
Als u dit verder wilt onderzoeken, raadpleegt u de categorieën van de grafiekdatabase.
Richtlijnen voor het maken van een door de gebruiker gedefinieerde tabel in SQL Server
- Definieer een geschikte naamgevingsconventie voor tabelnamen.
- Gebruik verschillende schema's om vergelijkbare tabelobjecten te groeperen.
- Zorg er altijd voor dat de referentiële integriteit behouden blijft met behulp van de SQL Server-beperkingen zoals de primaire sleutel en de externe sleutel.
- Definieer altijd een geschikt gegevenstype en de lengte ervan om snel gegevens te kunnen lezen en schrijven.
- Gebruik technieken voor databasenormalisatie om gegevensredundantie te verminderen en de gegevensintegriteit te verbeteren.
- Begrijp de verschillende normalisatievormen en hoe u ze kunt gebruiken. (U kunt verwijzen naar dit artikel: Wat is databasenormalisatie in SQL Server?)
- Definieer geschikte indexen voor uw query-workloads.
- Raadpleeg altijd databaseprofessionals voor advies over databasemodellering en het toepassen van best practices