Universität zu Köln Dozent: Patrick Sahle, M.A. Seminar: "Allgemeine Technologien II" Referat von Roman Quiring und Pierre Dedy am 11.03.09 SQL als Abfragesprache theoretische und praktische Einführung SQL (Structured Query Language), Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken Entstand gegen Ende der 70er unter dem Namen SEQUEL „Nichtprozedural“: Formuliert nur was getan werden soll, ohne es selbst zu tun Befehle orientieren sich an natürlicher Sprache (Englisch) Erweiterbar durch Schnittstellen zu anderen Programmiersprachen und durch Exportfunktionen Data Manipulation Language Daten können abgerufen und manipuliert werden Wichtigste Befehle: SELECT, INSERT, UPDATE, DELETE Data Definition Language Relationen werden erzeugt/ergänzt/gelöscht Wichtigste Befehle: CREATE, DROP, ALTER Data Control Language Rechte können gegeben und eingeschränkt werden Wichtigste Befehle: GRANT, REVOKE Datentypen int: Ganze Zahl (Variationen smallint, bigint) numeric (n,m): Festkommazahl (n Stellen, davon m Nachkommastellen float (m): Gleitkommazahl (mit m Stellen) real/double: Gleitkommazahlen (vom DBS festgelegt) char (n): Zeichenkette mit n Stellen varchar: Zeichenkette variabler Länge date: Datumsangabe time: Zeitangabe timestamp: Datum und Uhrzeit boolean: wahr- oder falsch-Wert blob (n): „Binary Large Object“ mit n Byte Länge clob (n): „Character Large Object“ mit n Zeichen Länge Kleines Befehlslexikon Select: SELECT "Spalten_Name" FROM "Tabellen_Name" http://sql.1keydata.com/de/sql-select.php Distinct: SELECT DISTINCT "Spalten_Name" FROM "Tabellen_Name" http://sql.1keydata.com/de/sql-distinct.php Where: SELECT "Spalten_Name" FROM "Tabellen_Name" WHERE "Bedingung" http://sql.1keydata.com/de/sql-where.php And/Or : SELECT "Spalten_Name" FROM "Tabellen_Name" WHERE "einfache Bedingung" {[AND|OR] "einfache Bedingung"} http://sql.1keydata.com/de/sql-and-or.php Count: SELECT COUNT("Spalten_Name") FROM "Tabellen_Name" http://sql.1keydata.com/de/sql-count.php Union / Union All: SELECT "Spalten_Name" FROM "Tabellen_Name" UNION [ALL] SELECT "Spalten_Name" FROM "Tabellen_Name" http://sql.1keydata.com/de/sql-union.php http://sql.1keydata.com/de/sql-union-all.php Intersect: SELECT "Spalten_Name" FROM "Tabellen_Name" INTERSECT SELECT "Spalten_Name" FROM "Tabellen_Name" http://sql.1keydata.com/de/sql-intersect.php Vergleiche in Kombination mit Where =, >, >=, <, <=, != Arithmetische Operationen +, -, /, *, % (Modulo) Like: SELECT "Spalten_Name" FROM "Tabellen_Name" WHERE "Spalten_Name" LIKE {MUSTER} http://sql.1keydata.com/de/sql-like.php Platzhalter in Kombination mit LIKE % - beliebige Zeichenkette _ - beliebiges Zeichen Case-sensitive!!!