SQL-Befehle
Inhaltsverzeichnis |
Datenbank erstellen (DDL = Data Definition Language)
Befehle zur Definition von Datenbanken und Tabellen.
DATABASE/TABLE erstellen
Zunächst muss man eine Datenbank mit Namen erstellen, in welche später die einzelnen Entitäten gespeichert werden:
CREATE DATABASE [IF NOT EXISTS] db_name;
(im Programmingwiki ist dies nicht nötig)
Erzeugen einer neuen Entität in einer vorhandenen Datenbank:
CREATE TABLE [IF NOT EXISTS] tbl_name ( spalte_xdatentyp [NOT NULL | AUTO_INCREMENT | ...], spalte_y datentyp [NOT NULL | AUTO_INCREMENT | ...], ..., PRIMARY KEY (spalte_x, spalte_y, ...) );
- NULL-Werte sind leere Werte
- NOT NULL (keine NULL-Werte in dieser Spalte)
- DEFAULT (Standardwert, wenn kein Wert angegeben wird)
- AUTO_INCREMENT (automatische Erhöhung der Integerzahl bei neuen Datensätzen)
Beispiel:
CREATE TABLE schueler ( SNr INTEGER NOT NULL AUTO_INCREMENT, Name VARCHAR(25), Vorname VARCHAR(25), Geb_Dat DATE, PRIMARY KEY (SNr) );
DATABASE / TABLE löschen
Löschen einer Datenbank oder Tabelle.
DROP DATABASE [IF EXISTS] db_name;
DROP TABLE [IF EXISTS] tbl_name;
[Quelle: Jens Schuster]
Beispiel:
Datenbank verändern (DML = Data Manipulation Language)
INSERT - Einfügen von Datensätzen
INSERT INTO tbl_name (spalte1, spalte2, ...) VALUES (wert1, wert2, ...);
Wird eine Spalte nicht angegeben, dann erhält diese einen NULL-Wert. Beispiel:
INSERT INTO schueler (SNr, Name, Geb_Dat) VALUES (201, 'Müller', '1962-10-25');
UPDATE - Datensätze ändern
UPDATE tbl_name SET spalte1 = neuer_wert [WHERE spalte_x = wert_y];
Der WHERE-Teil ist optional, wenn er aber fehlt, wird jedem Datensatz der Spalte der gleiche Wert zugeordnet.
Beispiel:
UPDATE schueler SET Name = 'Mustermann', Vorname = 'Manfred' WHERE SNr = 102;
DELETE - Datensätze löschen
DELETE FROM tbl_name [WHERE spalte_x = wert_y];
Der WHERE-Teil ist optional, wenn er aber fehlt, wird der Inhalt der gesamten Tabelle gelöscht.
Beispiel:
DELETE FROM schueler WHERE SNr = 102;
Abfragen mit SELECT
SELECT [DISTINCT | ALL] <spaltenliste> | * FROM <tabellenliste> [WHERE <bedingungen>] [GROUP BY <spaltenliste>] [HAVING <bedingungen>] [UNION <select-ausdruck>] [ORDER BY <spaltenliste>];</spaltenliste></select-ausdruck></bedingungen></spaltenliste></bedingungen></tabellenliste></spaltenliste>
[Quelle: http://www.mirko-hans.de/info/gk_12/sql.htm]
1. Erstellen Sie zuerst die Tabelle abteilung mit allen Spalten (sinnvolle Datentypen). Legen Sie den Primärschlüssel im gleichen CREATE-Befehl fest.
2. Testen Sie Ihre Eingaben, indem Sie den Inhalt (leer) anzeigen lassen mit "SELECT * FROM abteilung". (Achtung: Vorheriges nicht löschen)
3. Löschen Sie die Spalte MfirmaID aus der Tabelle mitarbeiter. Testen Sie Ihr Ergebnis mit einer Abfrage (SELECT).
3. Da bei mitarbeiter die Spalte ANr fehlt, müssen Sie diese über einen ALTER-Befehl hinzufügen.
4. Erstellen Sie die Tabelle projekt mit allen Spalten. (Achtung: Vorheriges nicht löschen)
5. Erstellen Sie die Tabelle arbeitet_an_P mit allen Spalten. Der Primärschlüssel ist die Kombination der beiden Fremdschlüssel.
6. Verwenden Sie den INSERT-Befehl um die Datensätze in den jeweiligen Tabellen zu speichern. Beachten Sie, dass die Reihenfolge beim Erstellen eine Rolle spielt. Die Spalte ALeiterNr sollte erst einmal weggelassen werden und am Ende per UPDATE-Befehl ergänzt werden.