PHPMyAdmin ← Informatik-Buch, Datenbank → SQL-Abfragen
Structured Query Language
Abfragen an eine Datenbank allgemein und umfangreich: SQL-Abfragen
CREATE TABLE Buch (buchID INT NOT NULL AUTO_INCREMENT, titel VARCHAR(100), autor VARCHAR(100), inhaltsangabe TEXT, PRIMARY KEY (buchID));
Beachte:
NOT NULL
gewährleistet, dass dieses Attribut nie leer ausgeht. AUTO_INCREMENT
nimmt dem Benutzer die Sorge und Arbeit um doppelte oder verpasste Nummern und ist eine Spezialität von MySQL.VARCHAR
hat den Vorteil, dass eine maximale Länge vorgegeben werden kann.TEXT
ist ebenfalls eine Spezialität von MySQL und bezeichnet einen Text variabler Länge. INT
bezeichnet ganze Zahlen.
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.
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));
DROP TABLE buch
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:
ADD PRIMARY KEY
erfordert, dass das Attribut BuchID
schon vorhanden ist und noch kein Primärschlüssel in Buch
existiert.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.
INSERT INTO buch (titel, autor, inhaltsangabe) VALUES ("Mein Leben", "Onkel Jupp", "Tolle Geschichte auf 2 Seiten mit 2 ganzseitigen Abbildungen");
Beachte:
buchID
muss nicht angegeben werden, da er per AUTO_INCREMENT
automatisch angelegt wird.DELETE FROM buch WHERE autor = "Bösewicht"; DELETE FROM buch WHERE buchID = 17; DELETE FROM buch;
Beachte:
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;
< > <= >= = <> 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:
BETWEEN
definieren ein geschlossenes Intervall. (Die Grenzen gehören zum Intervall dazu.)SELECT titel, isbn FROM buch WHERE autor = "Max Lieblingsautor" LIMIT 100 GROUP verlag ORDER BY titel;