SQL - Zusammenfassung
Download
Report
Transcript SQL - Zusammenfassung
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.Titel
FROM Studenten s, hoeren h, Vorlesungen v
WHERE 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 WHERE
gelesenVon = 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.VorlAnzahl
FROM (SELECT s.MatrNr, s.Name, COUNT(*) AS VorlAnzahl
FROM Studenten s, hoeren h
WHERE s.MatrNr = h.MatrNr
GROUP BY s.MatrNr, s.Name
HAVING COUNT(*) > 2) tmp;
SQL-Zusammenfassung
Joins
Inner join
Left, right oder full outer join
Beispiel:
SELECT p.PersNR,p.Name,f.PersNr from Professoren p, prüfen f left outer join on
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, PersNr FROM prüfen
SQL-Zusammenfassung
Webressource
http://www.w3schools.com/sql/