SQL-Skript-Zusammenfassung

Zusammenfassung des 300 Seiten Skriptes

Zusammenfassung des 300 Seiten Skriptes


Marko Kiebitz
Diese Lernkarten bieten eine umfassende Übersicht über SQL-Skriptierung auf Universitätsebene, mit Fokus auf Tabellen, Datenbanken, Triggern, Stored Routines, Transaktionen und Joins. Sie decken Themen wie Tabellenstrukturen, Beziehungen, Locking, Isolierungsebenen und Berechtigungen ab. Ideal für Informatikstudenten, die ihre SQL-Kenntnisse vertiefen und praktische Beispiele sowie Syntax verstehen möchten.
Karten
375
Lernende
5
Sprache
Deutsch
Kategorie
Informatik
Stufe
Universität
Erstellt / Aktualisiert
05.04.2015 / 14.12.2017

Lernkarten

Unterabfragen: zeige mit alle artikelnamen und Einzelpreise, deren Kategorie „getränke“ ist (g074)

.

Unterabfragen: liefert eine Inner Query mehrere Werte, muss [was und was darf nicht]

der IN-Operator genutzt werden und nicht „=“

Unterabfragen: zeige alle artikelnamen und einzelpreise aus der tabelle artikel, von lieferanten die aus frankreich kommen (g075)

,

Unterabfragen – subselects die selbst unterabfragen beinhalten. Welche Lieferanten liefern Artikel der Kategorie Milchprodukte? (g076)

.

Kartesisches Produkt (g077) (2)
Auch Kreuzprodukt genannt
Kombination aller Zeilen der ersten Tabelle mir allen Zeilen der zweiten Tabelle

.

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‘;

Tabellen Alias – welche zwei Methoden gibt es (G078)

Tabellennamen voranstellen (vollqualifizierte Attributnamen)
Aliasnamen für Tabellen vergeben

Joins über mehr als eine Tabelle – alte Schreibweise / neue Schreibweise (g079)

.

Was ist der Unterschied zwischen einem inner - outer - left und right Join?

Bei einem Inner Join werden nur die verknüpften Datensätze ausgegeben, bei einem Left bzw. Right Outer Join auch die unverknüpften Datensätze der linken bzw. rechten Seite.
Inner Join (g080)

Left/Right Outer Join (G081)

.

Self Join G082

.

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;

Gruppierung…(g083)

group by

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!

Beispiele mit HAVING-Klausel (g084)

.

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)

Erstellen einer View (g085)

.

Arbeiten mit Views
 (g086)

.

View löschen
 

drop view xyz

Indizes: dienen wofür und sind vergleichbar mit(2) (g087)

Beschleunigung von Abfragen
Vergleichbar mit Stichwortverzeichnis eines Buchs

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

Lernen