T-SQL: Datenbanken und Tabellen erstellen

T-SQL ist der SQL-Dialekt, der unter dem Microsoft SQL Server verwendet wird. Dieser Beitrag zeigt, wie Sie mit T-SQL Datenbanken anlegen und Tabellen erstellen. Zum Erstellen von Tabellen gehören noch einige weitere Aspekte wie zum Beispiel das Definieren der einzelnen Felder, das Festlegen der Datentypen oder das Anlegen von Indizes. Dabei werden vor allem die Unterschiede zu den Datentypen unter Access und unter T-SQL hervorgehoben.

Ein weiterer Unterschied zum Erstellen von Tabellen mit Access-SQL ist natürlich der Ort, an dem Sie die notwendigen Anweisungen ausführen.

Da es von allen aktuellen SQL Server-Versionen eine sogenannte Entwickler-Version gibt, sollten Sie – sofern Sie halbwegs ambitioniert sind – den Kauf einer solchen in Betracht ziehen (Preis liegt unter 100 EUR).

Es gibt zwar auch die kostenlose Express Edition des SQL Servers, aber die Developer Edition enthält alle denkbaren Tools, die Sie als Entwickler benötigen.

Für das Absetzen von T-SQL-Anweisungen zum Erstellen von Tabellen reicht allerdings auch die Express Edition aus – diese enthält ebenfalls das SQL Server Management Studio, mit dem Sie neue Abfragen erstellen und ausführen können.

Für die Erstellung der Screenshots für diesen Artikel wurde übrigens SQL Server 2012 verwendet.

Grundsätzlich können Sie die nachfolgend vorgestellten Anweisungen auch über die Benutzeroberfläche des SQL Server Management Studios ausführen.

Allerdings kann es nie schaden, die Befehle zumindest einmal kennengelernt zu haben, denn früher oder später möchten Sie vielleicht einmal bestehende Skripte anpassen oder erweitern – dann finden Sie sich dort gleich zurecht.

Genau genommen hilft es auch, eine Alternative zu haben, wenn die gängigen Befehle in der Benutzeroberfläche nach einem Versionswechsel mal nicht zu finden sind.

Anweisungen eingeben

Im SQL Server Management Studio klicken Sie einfach auf die Schaltfläche Neue Abfrage, um ein Fenster zum Eingeben eines SQL-Befehls anzuzeigen (s. Bild 1).

pic001.png

Bild 1: Anlegen eines neuen Fensters zum Eingeben einer Abfrage

Datenbank erstellen

Als Erstes wollen wir eine entsprechende Datenbank erstellen. Diese soll aiuSQL heißen. Dazu geben Sie im Abfragefenster einfach die folgende Anweisung ein, wobei aiuSQL der Datenbankname ist (s. Bild 2), und klicken auf den Menübefehl Ausführen:

pic002.png

Bild 2: Erstellen einer neuen Datenbank

CREATE DATABASE aiuSQL;

Im Bereich Meldungen im unteren Bereich des Fensters erscheint nun die Meldung, dass die Datenbank erfolgreich angelegt wurde (s. Bild 3).

pic003.png

Bild 3: Die neue Datenbank wurde erstellt.

Ein Blick in den Objekt-Explorer des SQL Server Management Studios zeigt, dass die Datenbank tatsächlich vorhanden ist (s. Bild 4).

pic004.png

Bild 4: Übersicht der vorhandenen Datenbanken mit der neuen Datenbank

In diesem Fall legt Access den Speicherort für die beim Erstellen der Datenbank angelegten Dateien selbstständig fest. Normalerweise geben Sie diese und andere Informationen beim Anlegen der Datenbank selbst an:

CREATE DATABASE aiuSQL
ON PRIMARY
(
    NAME = ''aiuSQL'',
    FILENAME = ''C:\...\MSSQL\DATA\aiuSQL.mdf'',
    SIZE = 5000KB,
    MAXSIZE = UNLIMITED,
    FILEGROWTH = 1024KB
)
LOG ON
(
    NAME = ''aiuSQL_log'',
    FILENAME = ''C:\...\MSSQL\DATA\aiuSQL_log.ldf'',
    SIZE = 560KB,
    MAXSIZE = 2048GB,
    FILEGROWTH = 10%
)

Hier gibt es zwei Sektionen, was daran liegt, dass eine SQL Server-Datenbank aus mindestens zwei Datenbankdateien besteht – die erste enthält die eigentlichen Daten und die zweite die Protokolldaten.

Es kann noch weitere Datendateien geben, aber die erste wird mit PRIMARY ausgezeichnet und muss unbedingt vorhanden sein. Dieser ersten Datendatei widmet sich dann auch der obere Abschnitt: Hier wird der logische Name der Datendatei angegeben, der Dateiname, die Größe beim Erstellen (diese muss größer als die Größe der Vorlagendatenbank model sein, damit die dort enthaltenen Elemente aufgenommen werden können), die maximale Größe (hier unbegrenzt) und das Intervall beim Vergrößern der Datei. Dieses kann in absoluter oder relativer Form angegeben werden: Wenn die Datenbank schnell größer wird, sollten Sie eine Prozentangabe tätigen, damit die Anzahl der Vergrößerungsvorgänge gering bleibt.

ähnliche Daten hinterlegen Sie für die Protokolldatei. Unterschiede gibt es bei der Endung der Dateinamen: Die primäre Datendatei endet auf .mdf, die Protokolldatei auf .ldf.

Die Eigenschaften können Sie später in den Datenbankeigenschaften einsehen, die Sie mit einem Rechtsklick auf den Datenbanknamen im Objekt-Explorer und anschließender Auswahl des Eintrags Eigenschaften öffnen (s. Bild 5).

pic005.png

Bild 5: Informationen zu der neu angelegten Datenbank

Mit der folgenden Anweisung, abgesetzt im Abfragefenster des SQL Server Enterprise Managers, können Sie die Eigenschaften auf die Schnelle einsehen:

EXECUTE sp_helpdb aiuSQL;

Datenbank löschen

Wenn Sie die Beispieldatenbank soeben angelegt haben, können Sie diese auch gleich einmal testweise löschen. Dazu geben Sie die folgende Anweisung im Abfragefenster ein:

DROP DATABASE aiuSQL

Fertig – die Datenbank wird ohne Rückfrage gelöscht, sofern diese gerade nicht in Benutzung ist.

Datentypen

Wenn Sie es gewohnt sind, mit Access zu arbeiten, hilft Ihnen vor dem Start mit dem SQL Server eine Übersicht der Datentypen und die Zuordnung der Datentypen unter Access und unter dem SQL Server weiter.

  • Binary: varbinary
  • Boolean: bit
  • Byte: tinyint
  • Currency: money
  • Date: datetime2
  • Decimal: float
  • Double: float
  • GUID: uniqueidentifier
  • Integer: smallint
  • Long: int
  • LongBinary: varbinary(max)
  • Memo: nvarchar(max)
  • Single: real
  • Text: nvarchar([*])

Tabelle erstellen

Tabellen erstellen Sie unter dem SQL Server mit der Anweisung CREATE TABLE. Diese erwartet als ersten Parameter den Tabellennamen und dahinter in Klammern die Feldnamen inklusive Datentypen. Im einfachsten Fall sieht das so aus:

USE aiuSQL
CREATE TABLE tblAnreden
(
    AnredeID INT,
    Anrede VARCHAR(50)
)

Dies erzeugt schlicht eine Tabelle mit den beiden Feldern AnredeID und Anrede mit den entsprechenden Datentypen. Die Anweisung USE aiuSQL stellt sicher, dass die Tabelle in der richtigen Datenbank erstellt wird.

Tabelle löschen

Mit der DROP TABLE-Anweisung und dem Namen der Tabelle als Parameter löschen Sie eine Tabelle – zum Beispiel so:

DROP TABLE tblAnreden

Tabelle neu erstellen

Wenn Sie feststellen, dass die Anweisung zur Tabellenerstellung noch nicht ganz rund ist, aber die Tabelle noch nicht in Benutzung beziehungsweise noch keine Daten enthalten sind, löschen Sie die Tabelle einfach, wenn Sie die geänderte CREATE TABLE-Anweisung erneut ausführen möchten. Dazu fügen Sie noch die Anweisung DROP DATABASE aiuSQL ein. Schauen wir uns nun an, wie wir die gewünschten änderungen berücksichtigen:

USE aiuSQL
DROP TABLE tblAnreden
GO
CREATE TABLE tblAnreden
(
    AnredeID INT IDENTITY,
    Anrede VARCHAR(50) NOT NULL
)
GO

Das Schlüsselwort IDENTITY legt fest, dass das Feld AnredeID als Primärschlüsselfeld mit Autowert ausgelegt wird. Das Schlüsselwort NOT NULL sorgt dafür, dass das Feld Anrede gefüllt werden muss.

Für IDENTITY können Sie noch in Klammern den Startwert und die Schrittweite angeben. Mit IDENTITY (1,1) würden die Werte bei 1 beginnen und fortlaufend durchnummeriert. IDENTITY (10,10) hingegen würde die Werte 10, 20, 30 und so weiter für das Feld einstellen.

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

den kompletten Artikel im PDF-Format mit Beispieldatenbank

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar