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;