SQL-Skript-Zusammenfassung
Zusammenfassung des 300 Seiten Skriptes
Zusammenfassung des 300 Seiten Skriptes
-
- 1 / 375
-
Lernkarten
Unterabfragen: liefert eine Inner Query mehrere Werte, muss [was und was darf nicht]
der IN-Operator genutzt werden und nicht „=“
Joins – alte Methode : zeige alles von den Tabellen hersteller und autos, wo die HerstellerID „HID“ ist und die Marke „Golf“
select *
from hersteller, autos
where HerstellerID = HID
and Marke = 'Golf‘;
Joins – neue Methode : zeige alles von den Tabellen hersteller und autos, wo die HerstellerID „HID“ ist und die Marke „Golf“
select *
from hersteller
inner join autos
on HerstellerID = HID
where Marke = 'Golf‘;
Aggregatfunktionen sind wofür da?
Diese fassen mehrere Datensätze zu einem Wert zusammen.
Standard SQL-Aggregatunktionen (5)
COUNT Anzahl
SUM Summe
MIN Kleinster Wert
MAX größter Wert
AVG Durchschnitt
Aggregatfunktion : Zählen – Wieviel kunden gibt es
select count(*) from kunden
Aggregatfunktion : Zählen – Wieviel kunden gibt es, deren Region nicht leer ist
select count(*) from kunden where region is not null;
Aggregatfunktion : Zählen – Anzahl der Bestellungen, Bestelldatum zwischen 01.12.1996 und 31.12.1996
select count(*)
from bestellungen
where bestelldatum between '1996-12-01'
and '1996-12-31';
Aggregatfunktion : Summieren – Summe aller frachtkosten aus der Tabelle bestellungen
select sum(frachtkosten) from bestellungen;
Aggregatfunktion : Summieren – Summe aller verkauften Artikel (abzüglich Rabatt) und Anzeige als "Gesamtwert"
select sum( anzahl * einzelpreis * (1 – rabatt) ) as gesamtwert
from bestelldetails;
Aggregatfunktion : ausgabe aus der Tabelle Personal: der mit dem kleinesten Geburtsdatum als "juengster" der mit dem größten Datum als "aeltester"
select min(geburtsdatum) as aeltester,
max(geburtsdatum) as juengster
from personal;
Aggregatfunktion : ausgabe des kleinsten und größten Artikelnamens
select min(artikelname), max(artikelname)
from artikel;
Aggregatfunktion : Ausgabe des durchschnittlichen Einzeilpreises als "durchschnitt" von Artikeln
select avg(einzelpreis) as durchschnitt
from artikel;
Filterung nach Gruppierung
Sollen Ergebnismengen nach der Gruppierung weiter eingeschränkt werden, so ist dies NICHT mit der Where-Klausel möglich, hierzu dient die HAVING-Klausel!
Reihenfolge der SELECT Klauseln (7)
Select
From
Where
Group by
Having
Order by
Limit
Views:Namenskonventionen
Views fangen immer an mit V
Views: Abfragen werden gespeichert als
Pseudo Tabelle
Views: Können auch gejointe Tabellen als "eine" Tabelle behandelt werden
ja
Views: was wird gespeichert
Nur die Abfrage, nicht das Ergebnis
Views: Ist eine getrennte Rechtevergabe für Views und Tabellen möglich?
ja
Views: guter Stil
Anwendungen greifen niemals direkt auf die Tabellen zu, sondern stets auf Views
Views: INSERT, UPDATE, DELETE
Sind möglich, sofern keine äußeren Bedingungen entgegen stehen (Foreign Key Constraints, fehlende Defauls Values etc)
View löschen
drop view xyz
Indizes: was wird beschleunigt, was verlangsamt(2)
Beschleunigung von SELECT
Verlangsamung von INSERT, UPDATE, DELETE
Indizes: dienen zur Vermeidung von
Doppelten Einträgen (UNIQUE INDEX)
Indizes: was ist ein Primärschlüssel
Automatisch ein Unique Index