===== Erste Schritte mit SQL ===== **SQL** = **S**tructured **Q**uery **L**anguage -> dt. Strukturierte Abfragesprache * mit SQL lassen sich gezielte Anfragen an eine Datenbank stellen, die in geeigneter Weise vom Datenbankmanagement abgearbeitet werden. **SQL teilt sich in 3 Bereiche:** - **Datendefinitionssprache** (**DDL** = **D**ata **D**efinition **L**anguage) * mit SQL-Statements aus der DDL werden Datenbankstrukturen bearbeitet * SQL-Befehle: CREATE, ALTER, DROP - **Datenmanipulationssprache** (**DML** = **D**ata **M**anipulation **L**anguage) * Damit werden Daten (-sätze) in einer Datenbank eingefügt, gelöscht und abgefragt * SQL-Befehle: SELECT, INSERT, DELETE, UPDATE - **Datenkontrollsprache** (**DCL** = **D**ata **C**ontrol **L**anguage) * Damit werden Rechte auf die Daten und Objekte festgelegt bzw. geändert * SQL-Befehle: GRANT, DENY * In MySQL werden die Datenbanken über den PHPMyAdmin administriert. Im PHPMyAdmin-Webclient sind alle SQL-Sprachelemente. * Neben den automatisiert erzeugten SQL-Statements können auch über den Reiter SQL-Statements diese frei formuliert werden. Alternativ kann die MySQL-Konsole verwendet werden. **Vorsicht!** PHPMyAdmin arbeit direkt auf der Datenbank. Löschung von Strukturen sind nicht rückgängig zu machen! Wiederherstellung nur aus einem Backup möglich! ==== SQL-Befehlsbeispiele: ==== SELECT * FROM kunde.adresse; * SELECT + FROM = Befehl * * = alle Datensätze * kunde = Datenbankname * adresse = Tabellennanme Wird der Fokus auf die Datenbank gesetzt (USE [Datenbankname]; -> z.B.: USE kunde;), ist die Angabe der Datenbank im SQL-Befehl optional aber nicht mehr nötig. SELECT * FROM adressen WHERE kundennummer=4; Ausgabe des Datensatzes (aller Attribute) mit der Kundennummer gleich 4. INSERT INTO `firma`.`kunde` (`kundennummer`, `anrede`, `vorname`, `name`) VALUES (4, 'Frau', 'Else', 'Kling'); * Hochkomma rechtsgerichtet ( ` ) für Struktur * Hochkomma gerade (‘) für Werte Es wird im Datensatz mit den angegebenen Werten in die Tabelle eingefügt. UPDATE `firma`.`kunde` SET `name` = ‘Huber‘ WHERE kundennummer=4; Im Datensatz mit der Kundennummer 4 wird in der Spalte Name der Wert auf Huber geändert. ==== Query und non-Query ==== * **Query** => alle Abfragen mit SELECT * **non-Query** => Alle SQL-Statements, die keine SELECT-Abfragen sind, sondern Daten einfügt (INSERT), ändert (UPDATE) oder löscht (DELETE).