14_8335_301-SQL-DDL - Offene

Werbung
In diesem Abschnitt werden wir uns die SQL Befehle ansehen, mit denen ein
sogenanntes Datenbankschema angelegt , gepflegt und auch wieder gelöscht
werden kann.
Es geht also um die sogenannte SQL- Data Definition Language.
1
In diesem Abschnitt wollen wir uns mit den SQL Befehlen aus dem Bereich SQLDDL beschäftigen.
Der wesentliche Fokus liegt hierbei auf
• Dem Anlegen von Tabellen  Create Table
• Dem Löschen von Tabellen  Drop Table
• Dem Ändern von Tabellen  Alter Table
2
Um mit SQL arbeiten zu können benötigen wir als erstes einmal eine Tabelle.
Tabellen legen wir mit dem Befehl „CREATE TABLE“ an.
Die einfachste Form, um eine Tabelle anzulegen, hat folgende Syntax :
CREATE TABLE tabellenName (
, spaltenName2 datenTyp,…….)
spaltenName1
datenTyp
Den Aufbau der Anweisung schauen wir uns als nächstes genauer an.
3
Hier sehen Sie zunächst die Syntax des CREATE TABLE Befehls.
Mit dem Befehl legen wir im einzelnen folgende Eigenschaften fest:
•
den Tabellennamen
• Je Spalte wird der Spaltenname sowie der zugehörige Datentyp definiert
• Sofern für die Tabelle ein Primärschlüssel definiert werden soll, werden nach
dem Schlüsselwort PRIMARY KEY die Spaltennamen aufgeführt, die zu dem
Primärschlüssel gehören.
Tabellennamen
• Tabellennamen müssen eindeutig sein innerhalb des Datenbankschemas
• Tabellennamen sind Substantive ( alle Singular oder alle Plural)
• Über den Tabellennamen können wir auf die Inhalte (Zeilen) einer Tabelle
zugreifen
Spalten
• Spaltennamen müssen innerhalb einer Tabellendefinition eindeutig sein. In
unterschiedlichen Tabellen, dürfen also die gleichen Spaltennamen
vorkommen
• Für jede Spalte muss ein Datentyp festgelegt werden. Welchen Datentypen wir
4
verwenden, hängt von den Anforderungen bzw. den Daten ab, die wir ablegen wollen.
Hierbei ist zu berücksichtigen, dass die meisten Hersteller auch eigene
herstellerspezifische Datentypen unterstützen. Verwendet man solche Datentypen, dann
ist das Datenbankschema nicht mehr ohne Anpassungen auf einem DBMS eines
anderen Herstellers lauffähig (Portierungsaufwand).
4
In dieser Abbildungen sehen Sie, dass man den SQL Befehl für das Anlegen
einer Tabelle direkt mit einem Entity-Typ aus dem physikalischen Datenmodell
korrespondiert.
Zur Auffrischung:
Das physikalische Datenmodell ist herstellerspezifisch und enthält alle
Informationen, um hieraus direkt SQL Befehle für das Anlegen eines
Datenbankschemas erstellen zu können.
Wie Sie in der Abbildung auf der rechten Seite erkennen können, ist dort der
CREATE TABLE Befehl aufgelistet, um die entsprechende Tabelle ADRESSE
anlegen zu können.
TIPP:
Bevor Sie weitergehen, führen Sie die Übungen zum Anlegen von Tabellen aus
dem Übungsbuch durch.
5
In dieser Abbildung sehen Sie beispielhaft, wie in einem physikalischen Modell
das zugehörige SQL Statement erzeugt werden kann.
Links oben sehen Sie die Darstellung aus dem phy. Datenmodell.
Rechts daneben sehen Sie den Tabellen-Editor des DBDesigner4 , in dem wir die
Tabellendefinition angeben können.
Im unteren Teile der Abbildung sehen Sie die die SQL Anweisung zum Erstellen
der dazugehörigen Tabelle. Das „CREATE TABLE Statement entspricht hier der
Syntax von MySQL Server.
Bei Oracle und SQL Server sieht das Create Table etwas anders aus. Dies wollen
wir aber hier nicht vertiefen, um den Fokus nicht zu verlieren.
Zum Nachschlagen: Create Table Syntax
• H2 
http://www.h2database.com/html/grammar.html?highlight=tableName&search
=Table#create_table
• Oracle 
https://docs.oracle.com/cd/B28359_01/server.111/b28310/tables003.htm
6
• SQL Server  https://msdn.microsoft.com/en-us/library/ms365315.aspx
6
Nachdem wir eine Tabelle angelegt haben, können wir diese auch wieder
löschen.
Um eine Tabelle zu Löschen, verwenden wir den DROP TABLE Befehl und
geben hierbei noch den Namen der Tabelle an, die wir löschen wollen.
Die Syntax ist in der Abbildung dargestellt.
DROP TABLE tablename
Hinweis
Beachten Sie , dass beim Löschen einer Tabelle auch alle Datensätze der Tabelle
gelöscht werden.
Bevor Sie weitergehen, führen Sie die Übungen zum Löschen von Tabellen aus
dem Übungsbuch durch.
7
Nachdem wir nun Tabellen anlegen und löschen können, benötigen wir noch den
Befehl ALTER TABLE, der es uns erlaubt eine existierende Tabelle ändern zu
können.
Dies ist sinnvoll, wenn wir nachträglich noch eine Spalte hinzufügen möchten.
Würden wir die Tabelle löschen und neu anlegen, würden wir ja alle Daten
verlieren und müssten die Daten erneut in die Datenbank einbringen.
In der Abbildung sehen Sie zwei Varianten, um Tabellen zu ändern.
Variante 1:
Durch eine ALTER TABLE Anweisung in der Variante 1 kann man Spalten zu
einer Tabelle hinzufügen bzw. auch Spalten einer Tabelle löschen.
Wird eine Spalte gelöscht, gehen dabei auch die entsprechenden Attributwerte
verloren.
Variante 2:
8
Durch eine ALTER TABLE Anweisung in der Variante 2 ist es möglich nachträglich den
Namen einer Tabelle zu ändern.
Hierbei ist aber Vorsicht geboten, sofern Applikationen den alten Namen bereits
verwenden, sind diese nicht mehr ablauffähig.
Hinweis:
In dem Abschnitt View werden wir eine Methode kennenlernen, wie man vermeiden
kann, dass Applikationen den Namen einer Tabelle kennen müssen. Dies gibt uns dann
die Möglichkeit auch nachträglich noch Tabellenamen zu ändern.
8
9
Herunterladen