Inhaltsverzeichnis

PHPMyAdminInformatik-Buch, DatenbankSQL-Abfragen

SQL-Befehle

Structured Query Language

Abfragen an eine Datenbank allgemein und umfangreich: SQL-Abfragen

Konstruktion der Tabellen

Eine Tabelle erstellen

CREATE TABLE Buch
    (buchID INT NOT NULL AUTO_INCREMENT,
     titel VARCHAR(100),
     autor VARCHAR(100),
     inhaltsangabe TEXT,
     PRIMARY KEY (buchID));

Beachte:

Zusätzlich können mit Hilfe des Parameters DEFAULT jedem Attribut Standardwerte zugewiesen werden. Beim Eintragen der Entitäten können sie natürlich überschrieben werden.

Eine Tabelle mit Fremdschlüsseln erstellen

Um Fremdschlüssel zu erzeugen, muss immer angegeben werden, wie der Fremdschlüssel in der aktuellen Tabelle heißen soll, in welcher Tabelle er Primärschlüssel ist und wie er dort heißt.

CREATE TABLE ausleihe 
    (ausleihID INT NOT NULL AUTO_INCREMENT,
     PRIMARY KEY (ausleihID),
     ausgeliehenesBuchID INT NOT NULL,
     ausleihenderLeserID INT NOT NULL,
     FOREIGN KEY (ausgeliehenesBuchID) REFERENCES buch(buchID),
     FOREIGN KEY (ausleihenderLeserID) REFERENCES leser(leserID));

Eine Tabelle löschen

DROP TABLE buch

Eine Tabelle ändern

Wurden nicht sämtliche Attribute eines Entitätstyps beim Erstellen vollständig oder korrekt eingegeben, so können sie nachträglich hinzugefügt oder gelöscht werden.

ALTER TABLE buch ADD isbn CHAR(13) DEFAULT "keine Angabe";
ALTER TABLE buch ADD PRIMARY KEY (buchID);
ALTER TABLE buch DROP inhaltsangabe;

Beachte:

vorhandene Tabellen anzeigen

SHOW TABLES [FROM datenbankname] [LIKE "schema"];

schema beschreibt Gemeinsamkeiten im Namen der Tabellen. Eut% würde beispielsweise sämtliche Tabellennamen auflisten, deren Name mit Eut beginnt.

Inhalte der Tabellen

Entitäten eintragen

INSERT INTO buch (titel, autor, inhaltsangabe)
  VALUES ("Mein Leben", "Onkel Jupp", "Tolle Geschichte auf 2 Seiten mit 2 ganzseitigen Abbildungen");

Beachte:

Entitäten löschen

DELETE FROM buch WHERE autor = "Bösewicht";
DELETE FROM buch WHERE buchID = 17;
DELETE FROM buch;

Beachte:

Tabelleninhalte anzeigen

Zeigt die gesamte Tabelle an:

SELECT * FROM buch;

Zeigt die ersten 10 Titel der Bücher von Herrn Lieblingsautor an.

SELECT titel FROM buch WHERE autor = "Max Lieblingsautor" LIMIT 10;

Bedingungen

< > <= >= = <>
buchID BETWEEN 100 AND 200
buchID >= 100 AND BuchID <= 200
titel BETWEEN ´Dah´ AND ´Fo´
autor IN ("Kopka", "Theis")
titel LIKE "%Linux%"
isbn IS NULL

Beachte:

Beispiele

SELECT titel, isbn FROM buch WHERE autor = "Max Lieblingsautor" LIMIT 100 GROUP verlag ORDER BY titel;