140 likes | 299 Views
SQL - Zusammenfassung. Datenbanksysteme für hörer anderer Fachrichtungen. SQL-Zusammenfassung. Gerüst einer SQL-Anfrage. Duplikate mit DISTINCT eliminieren (hoher Rechenaufwand!) Reihenfolge der Statements in der Query muss eingehalten werden Ziffern geben Reihenfolge der Abarbeitung an.
E N D
SQL - Zusammenfassung Datenbanksysteme für hörer anderer Fachrichtungen
SQL-Zusammenfassung Gerüst einer SQL-Anfrage • Duplikate mit DISTINCT eliminieren (hoher Rechenaufwand!) • Reihenfolge der Statements in der Query muss eingehalten werden • Ziffern geben Reihenfolge der Abarbeitung an
SQL-Zusammenfassung Where-Klausel • Prädikate kombinierbar (AND, OR, NOT) • Einsatz von Vergleichsoperatoren • Strings müssen in einfachen Anführungszeichen stehen • Liefert nur Tupel, für die die Bedingung gleich true ist • Suche mit Platzhaltern (Wildcards): • „_“ beliebiges Zeichen + LIKE • „%“ beliebige Zeichenkette + LIKE • Beispiel:SELECT * FROM Student WHERE Name LIKE ‚K%‘ AND Semster > 9;
SQL-Zusammenfassung NULL-Werte • Repräsentieren Werte, die • unbekannt, • nicht verfügbar oder • nicht anwendbar sind • SQL hat eine dreiwertige Logik • true • unknown bei AND-Verknüpfung gesamte Bedingung unknown • false • In Gruppierung als eigene Gruppe dargestellt
SQL-Zusammenfassung Anfragen über mehrere Relationen • Kreuzprodukt (wenig sinnvoll) • Joins(stehen in der WHERE-Klausel, bevorzugte Variante) • Namenskonflikte auflösen • Beispiel:SELECT s.Name, v.TitelFROM Studenten s, hoeren h, Vorlesungen vWHERE s.MatrNr = h.MatrNr AND h.VorlNr = v.VorlNr
SQL-Zusammenfassung Mengenoperationen • Vereinigung UNION (Duplikate werden automatisch eliminiert!) • Schnitt INTERSECT • Differenz EXCEPT • Voraussetzung: Gleiches Schema der verknüpften Relationen! • Beispiel:(SELECT Name FROM Assistenten) UNION(SELECT Name FROM Professoren)
SQL-Zusammenfassung Sortierung • Sortieren des Ausgabetupel über ORDER BY • Aufsteigend (ASC) – Defaultwert • Absteigend (DESC)
SQL-Zusammenfassung Geschachtelte Anfragen • Mehrere SELECT-Statements in einer Anfrage • Inneres Anfrageergebnis wird in äußerer Anfrage verwendet • Zwei Arten geschachtelter Anfragen • Korreliert (Unteranfrage bezieht sich auf äußere Anfrage) • Unkorreliert (Unteranfrage bezieht sich nur auf „eigene“ Attribute) • Unkorrelierte Anfragen sind effizienter (Unteranfrage wird nur einmal ausgewertet) • Beispiele:SELECT p.Name FROM Professoren p WHERE NOT EXISTS(SELECT * FROM Vorlesungen v WHERE v.gelesenVon = p.PersNr);
SQL-Zusammenfassung Aggregatfunktionen und Gruppierung • Durchschnitt AVG(*) • Maximum MAX(*) • Minimum MIN(*) • Summe SUM(*) • Anzahl COUNT(*) • Alle in der SELECT-Klausel gelisteten Attribute müssen auch in der GROUP BY-Klausel stehen! • Beispiel:SELECT gelesenVon, Name, SUM(SWS) FROM Vorlesungen, Professoren WHEREgelesenVon = PersNr AND Rang = `C4` GROUP BY gelesenVon, Name HAVING AVG(SWS) >= 3;
SQL-Zusammenfassung Temporäre Tabellen • Verwendung einer Ergebnismenge aus einer Unteranfrage • Umbenennung dieser in eine „temporäre Tabelle“ • Beispiel:SELECT tmp.MatrNr,tmp.Name,tmp.VorlAnzahlFROM (SELECT s.MatrNr, s.Name, COUNT(*) AS VorlAnzahlFROM Studenten s, hoeren hWHERE s.MatrNr = h.MatrNrGROUP BY s.MatrNr, s.NameHAVING COUNT(*) > 2) tmp;
SQL-Zusammenfassung Joins • Innerjoin • Left, right oder fullouterjoin • Beispiel:SELECT p.PersNR,p.Name,f.PersNrfrom Professoren p, prüfen f leftouterjoinon p.PersNr=f.PersNR
SQL-Zusammenfassung Veränderung am Datenbestand • Insert into zum Einfügen von Tupeln durch Anfrage • Bsp: INSERT INTO hören SELECT MatrNr, VorlNr FROM Stundenten, Vorlesungen WHERE Titel=‚Logik‘ • Import zum Einfügen von Tupeln aus Dateien • Delete und Update zum Löschen und Verändern von Datensätzen (nur Inhalt) • DROP und ALTER zum Verändern des Schemas (Löschen ganzer Tabellen bzw. Verändern von Spalten)
SQL-Zusammenfassung Sichten • Oft verwendet, um Anfragen übersichtlicher zu gestalten • Stellen eine Art „virtuelle Relation“ dar • Für den Datenschutz und Statistik verwendet • spart Speicherplatz, kostet Rechenzeit im vergleich zu CREATE TABLE • Bsp:CREATE VIEW prüfenSicht AS SELECT MatrNr, VorlNr, PersNrFROM prüfen
SQL-Zusammenfassung Webressource • http://www.w3schools.com/sql/