Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Eine Anleitung für Anfänger zu SQL-Tabellen

In diesem Artikel untersuchen wir die verschiedenen Arten von SQL-Tabellen und Best Practices zum Erstellen benutzerdefinierter Tabellen in SQL Server.

Tabellen sind primäre Objekte zum Speichern von Daten in relationalen Datenbanken. Betrachten Sie zur Visualisierung einer Tabelle eine Excel-Tabelle. Die Tabelle organisiert Daten in einem Zeilen- und Spaltenformat. In ähnlicher Weise verwenden relationale Datenbanken mehrere Tabellen (Blätter), um Daten zu organisieren.

  • Zeile :Es identifiziert einen Datensatz eindeutig. Beispielsweise gehören die Daten in Zeile 1 einem Mitarbeiter namens [Raj]. Es können keine Daten für einen anderen Mitarbeiter gespeichert werden.
  • Spalte :Jede Spalte definiert ein Attribut der Tabelle. Beispielsweise speichert die Spalte [FirstName] den Vornamen aller Mitarbeiter. Sie können keine anderen Daten wie [Stadt] in dieser Spalte speichern.

Angenommen, wir brauchen eine [Employee]-Tabelle in einer SQL-Datenbank. In dieser Tabelle werden die Mitarbeiterdaten eines Unternehmens gespeichert. Für die Spalte [EmpID] benötigen wir eine positive Zahl (ohne Dezimalpunkt). In diesem Fall ist der Datentyp [Integer] am besten geeignet. Nachdem Sie die Spalte [EmpID] als ganze Zahl definiert haben, lässt SQL Server Sie keine Werte einfügen, die nicht dem ganzzahligen Datentyp entsprechen. Beispielsweise können Sie die Zeichenfolge „Raj“ nicht in die Spalte [EmpID[.

einfügen

Erstellen einer SQL-Tabelle

Auf hoher Ebene sollten wir zum Erstellen einer SQL-Tabelle die folgenden Informationen haben:

  1. Wie lautet die SQL-Instanz und der Datenbankname für die Objektspeicherung?
  2. In welchem ​​Schema möchten Sie die Tabelle speichern?
  3. Wie lauten die Spaltennamen für Ihre spezifische Tabelle?
  4. Was sind die Datentypen für diese Spalten?
  5. Erlauben die Spalten das Speichern von NULL-Werten?
  6. Verwenden Sie die Primärschlüsselspalte? Wenn ja, welche Spalte fungiert als Primärschlüsselspalte?
  7. Möchten Sie nicht geclusterte Indexe erstellen?

Lassen Sie uns für diese Demonstration die folgenden Antworten auf diese Fragen verwenden, um die Mitarbeitertabelle zu erstellen.

  • Antwort 1:Der Name der Zieldatenbank lautet [AzureDemoDatabase]
  • Antwort 2:Wir wollen Tabellen im Standard-DBO-Schema speichern
  • Antwort 3:Die Tabelle [Employee] sollte fünf Spalten haben:[ID], [FirstName], [LastName], [City] und [DOB]
  • Antwort 4:Die Tabelle [Employee] sollte die folgenden Datentypen verwenden.
    • [ID]:Ganzzahl
    • [Vorname]:Varchar(50) NOT NULL
    • [Nachname]:Varchar(30) NOT NULL
    • [Stadt]:Varchar[50] NULL
    • [GEBURT]:DATUM NICHT NULL
  • NULL-Eigenschaften wie oben definiert
  • Ja, die Spalte [ID] ist eine Primärschlüsselspalte
  • Nein, es werden nur geclusterte Indizes benötigt

Typen von SQL-Tabellen

SQL Server-Tabellen können in die folgenden Kategorien unterteilt werden.

Systemtabellen

SQL Server speichert Instanzkonfigurations- und Datenbankeigenschaften in einem speziellen Tabellensatz. Diese Tabellen werden als Systemtabellen bezeichnet. Benutzer dürfen diese Tabellen nicht direkt ändern. SQL Server lässt nicht zu, dass bestimmte Systemtabellen direkt abgefragt werden. Stattdessen stellt es gespeicherte Systemprozeduren, Funktionen, SQL Server-Verwaltungsobjekte und Replikationsverwaltungsobjekte zum Abfragen dieser Komponenten bereit. Weitere Informationen zu Systemtabellen finden Sie in Microsoft-Dokumentation.

Temporäre Tabellen

Manchmal müssen wir Daten vorübergehend in der Datenbank speichern, um sie zu berechnen, zu manipulieren oder Zwischenergebnisse zu speichern. In diesen Fällen können wir temporäre Tabellen verwenden, die immer in der TempDB-Systemdatenbank gespeichert werden.

SQL Server hat zwei Arten von temporären Tabellen:

  • Lokal: Jede lokale temporäre Tabelle beginnt mit einem Zeichen (#). Sein Geltungsbereich ist auf die aktuelle Verbindung beschränkt. SQL Server löscht diese Tabellen automatisch, sobald der Benutzer die Verbindung trennt.
  • Weltweit: Jede globale temporäre Tabelle beginnt mit einem Zeichen (##). Alle Benutzer können auf die globalen temporären Tabellen verweisen. Wenn alle Benutzer, die auf die globale Tabelle verweisen, verbunden sind, löscht SQL Server sie.

–TEMPORARY Table ( Lokal )
Tabelle #TableA erstellen
(
ID int,
[Name] varchar(50)
)

–Globale temporäre Tabelle
Tabelle ##TableB erstellen
(
ID int,
[Name] varchar(50)
)

Permanente oder benutzerdefinierte Tabelle

Benutzer können ihre eigene Tabellenstruktur, Spalten, Datentypen, Einschränkungen und Indizes gemäß ihren Anwendungsanforderungen definieren. Diese Tabellen werden benutzerdefinierte Tabellen genannt.

Diese Tabellen werden immer in der Datenbank gespeichert, es sei denn, jemand löscht sie ausdrücklich. Daher werden diese auch als permanente Tabellen bezeichnet.

Es gibt mehrere Möglichkeiten, eine benutzerdefinierte Tabelle in SQL Server zu erstellen.

  • GUI von SQL Server Management Studio
  • T-SQL-Skript verwenden

–Permanente Tabelle
Tabelle TabelleA erstellen
(
ID int,
[Name] varchar(50)
)

Externe Tabellen

Externe Tabellen sind ein bestimmter Tabellentyp, der ab SQL Server 2016 verwendet werden kann. Diese Tabellen verweisen mithilfe der PolyBase-Funktion von SQL Server auf andere Datenquellen wie Azure Blob Storage, Hadoop, Oracle, Excel, ODBC, Bigdata, MongoDB und Teradata.

Sie können sich auf diese Dokumentation beziehen, um PolyBase in SQL Server weiter zu erkunden.

Grafiktabellen

SQL Server-Grafikdatenbanken verwenden eine Sammlung verschiedener Knoten (Scheitelpunkte) und Kanten (Beziehungen).

  • Knotentabelle :Die Knotentabelle ist eine Sammlung von Knoten mit ähnlichen Typen. Beispielsweise enthält die Personenknotentabelle alle Personenknoten in einem Diagramm.
  • Randtabelle :Die Kantentabelle ist eine Sammlung ähnlicher Kanten. Beispielsweise enthält eine Freundestabelle alle Kanten, die eine Person mit einer anderen Person verbinden.

Weitere Informationen finden Sie in den Kategorien der Graph-Datenbank.

Richtlinien zum Erstellen einer benutzerdefinierten Tabelle in SQL Server

  • Definieren Sie eine geeignete Namenskonvention für Tabellennamen.
  • Verwenden Sie verschiedene Schemas, um ähnliche Tabellenobjekte zu gruppieren.
  • Stellen Sie immer sicher, dass die referenzielle Integrität mithilfe der SQL Server-Einschränkungen wie Primärschlüssel und Fremdschlüssel aufrechterhalten wird.
  • Definieren Sie immer einen geeigneten Datentyp und dessen Länge, um Daten schnell lesen und schreiben zu können.
  • Verwenden Sie Techniken zur Datenbanknormalisierung, um Datenredundanz zu reduzieren und die Datenintegrität zu verbessern.
  • Verstehen Sie die verschiedenen Normalisierungsformen und wie Sie sie verwenden. (Sie können auf diesen Artikel verweisen: Was ist Datenbanknormalisierung in SQL Server?)
  • Definieren Sie geeignete Indexe für Ihre Abfragearbeitslasten.
  • Wenden Sie sich immer an Datenbankexperten, um Ratschläge zur Datenbankmodellierung und zur Anwendung von Best Practices zu erhalten