Einführung in Datenbanken SQL – Erstellen und Ändern Bisher wurden verschiedene Möglichkeiten zum Abfragen der Inhalte einer Datenbank mit Hilfe von SQL vorgestellt. Im Folgenden wird erläutert, wie man mit SQL • neue Relationen erstellen, • Datensätze D t ät löschen, lö h • Datensätze einfügen und • Datensätze modifizieren kann. 56 Grundlagen der Programmierung II DBIS – SS 2006 Einführung in Datenbanken SQL - Tabellendefinition Eine T Ei Tabellen b ll werden d iim Mi Minimalfall i lf ll mit it ihrem ih eindeutigen Namen sowie der Liste der zugehörigen Attribute Domänen nachh hö i Att ib t samtt D ä folgendem Schema definiert: Übliche Syntax: create table Relationsname ( Attributname Domäne {{, Attributname Domäne}}∗ ); 57 Grundlagen der Programmierung II DBIS – SS 2006 Einführung in Datenbanken SQL - Tabellendefinition Beispiele: Flugplan create table Fluege ( FlugNr integer, integer von char(25), nach char(25), Abfl time, ti Abflug Ankunft time ); create table Piloten ( Name char(25), char(25) Wohnort char(25) ); 58 Grundlagen der Programmierung II DBIS – SS 2006 Einführung in Datenbanken SQL - Primärschlüssel Mittels der Klausel primary key kann bei der Definition der Tabelle ein Primärschlüssel ausgezeichnet dieser i h werden. d Die Di Benutzung B di Klausel ist nur einmal pro Relation gestattet. B i i l Flugplan Fl l Beispiel: create table Fluege ( FlugNr integer primary key, key von char(25), nach char(25), Abflug time, Ankunft time ); 59 Grundlagen der Programmierung II DBIS – SS 2006 Einführung in Datenbanken SQL – Löschen von Datensätzen Löschen von Datensätzen p ) in SQL Q ist einfach. Das Löschen von Datensätzen ((Tupeln) Eine Löschoperation ist einer normalen Anfrage ähnlich, es können allerdings nur ganze Tupel gelöscht werden. Übliche Syntax: d l t Relationsname delete R l ti where Bedingung ; Æ Es werden alle Tupel in Relationsname R l i gelöscht, für die die Bedingung erfüllt ist. 60 Grundlagen der Programmierung II DBIS – SS 2006 Einführung in Datenbanken SQL – Löschen von Datensätzen Beispiele: Flugplan delete Piloten ; Æ löscht alle Tupel der Relation Piloten delete Fluege where nach = „JFK“ ; g , die nach New York (zum ( Æ löscht alle Flüge, Flughafen „JFK“) gehen 61 Grundlagen der Programmierung II DBIS – SS 2006 Einführung in Datenbanken SQL – Einfügen von Datensätzen Um Daten einzufügen, spezifiziert man entweder das Tupel, das eingefügt werden soll, oder schreibt eine Anfrage, die eine Menge von Tupeln als Ergebnis hat hat, die eingefügt werden sollen. Die Werte für die Attribute der Tupel p müssen aus der Domäne der Attribute sein. Beispiel: Flugplan insert into Fluege values ( „333“, „Frankfurt“, „JFK“, „7:00am 7:00am“, „2:22pm 2:22pm“ ) ; Æ Ein neuer Flug mit der Nummer „333“ wird in den gp aufgenommen. g Flugplan 62 Grundlagen der Programmierung II DBIS – SS 2006 Einführung in Datenbanken SQL – Modifizieren von Datensätzen Es gibt Situationen in denen nur ein bestimmter Wert eines Tupels geändert werden soll. Für diesen Fall gibt es die update-Anweisung. Wie bei insert und delete können die betroffenen Tupel per where –Klausel ausgewählt werden. Fehlt eine where –Klausel, –Klausel so werden sämtliche Datensätze entsprechend geändert. 63 Grundlagen der Programmierung II DBIS – SS 2006 Einführung in Datenbanken SQL – Modifizieren von Datensätzen Beispiele: Flugplan update Fluege sett FlugNr Fl N = FlugNr Fl N +1000 1000 ; Æ Setzt jeder (dreistelligen) Flugnummer die Ziffer 1 voran. update Piloten set Wohnort = “Offenbach” Offenbach where Name = “Miller” ; Æ Ändert den Wohnort des Piloten „Miller“ von „Frankfurt“ f in „Offenbach“ Off 64 Grundlagen der Programmierung II DBIS – SS 2006