In der neunzehnten Episode meines Anwendungsentwickler-Podcasts
setze ich die Reihe der häufigen Fragen im Fachgespräch mit dem
Thema SQL fort. TL;DR SQL gehört zum Grundwissen für IT-Azubis und
wird häufig im Fachgespräch gefragt, besonders wenn dein
Abschlussprojekt mit einer relationalen Datenbank arbeitet. Ich
gehe die fünf SQL-Befehlsgruppen durch und zeige dir, wie du
Abfragen mit SELECT aufbaust. Dazu gehören die Begriffe Selektion
und Projektion, die verschiedenen Joins sowie Aggregatsfunktionen
mit GROUP BY. Für die Wahl der Datentypen konzentriere ich mich auf
grundlegende Gruppen, wobei Datumswerte einen passenden Datumstyp
erhalten sollten. Kapitelmarken [00:00:01] Einstieg und
Informationen zum Fachgespräch [00:00:37] SQL als häufiges
Prüfungsthema [00:02:30] Was ist SQL? [00:05:14] SQL-Befehle in
fünf Gruppen einordnen [00:05:51] DDL: Tabellen und Strukturen
definieren [00:06:35] DML: Daten bearbeiten [00:07:26] DQL: Daten
mit SELECT abfragen [00:08:23] DCL: Zugriffsrechte vergeben und
entziehen [00:09:06] TCL: Transaktionen mit COMMIT und ROLLBACK
steuern [00:09:54] Fragen zur SQL-Syntax im Fachgespräch [00:10:34]
Selektion und Projektion [00:11:49] Aufbau eines SELECT-Statements
[00:12:55] Eindeutige Ergebnisse mit DISTINCT [00:13:53] Tabellen
mit Joins verknüpfen [00:14:26] INNER JOIN [00:15:35] LEFT, RIGHT
und FULL OUTER JOIN [00:17:56] NATURAL JOIN und mögliche
Fehlerquellen [00:21:03] Aggregatsfunktionen und Performance
[00:23:10] GROUP BY und passende Spalten im SELECT [00:25:54]
Datentypen in Datenbanken [00:29:39] Ausblick auf weitere
Datenbankthemen [00:30:25] Shownotes, Feedback und Fragen zur
Prüfung [00:31:20] Newsletter und Checklisten für die Prüfung
Inhalt SQL Was ist SQL? Structured Query Language, Abfragesprache
für relationale Datenbanken. Was sind die Untergruppen von SQL und
was sind übliche Statements? DDL: CREATE TABLE; DML: INSERT,
UPDATE, DELETE; DQL: SELECT; DCL: GRANT, REVOKE; TCL: COMMIT,
ROLLBACK. Was bedeuten Selektion und Projektion? Selektion: Auswahl
von Zeilen (Datensätzen), Projektion: Auswahl von Spalten. Wie
sieht ein übliches SELECT-Statement aus? SELECT Spalten FROM
Tabellen WHERE Bedingung GROUP BY Spalten HAVING Bedingung ORDER BY
Spalten Was macht ein SELECT DISTINCT? Liefert aus einer
Ergebnismenge nur die eindeutigen Werte. Welche Arten von JOINs
gibt es? INNER, [LEFT|RIGHT|FULL] OUTER, NATURAL Was ist eine
Aggregatsfunktion? Aggregiert mehrere Werte zu einem Wert (z.B.
Summe, Anzahl, Mittelwert). Was macht ein GROUP BY? Gruppiert bei
der Anwendung einer Aggregatsfunktion nach bestimmten Spalten.
Welche Datentypen gibt es in Datenbanken? Zeichenketten (z.B.
VARCHAR), Zahlen (z.B. NUMBER) und Datum reichen (für die Prüfung).
Einige Datenbanken bieten noch mehr Möglichkeiten: Boolean, Text
usw. Literaturempfehlungen *(direkt beim Rheinwerk-Verlag
bestellen*) Das passende Kapitel im OpenBook: 12 Datenbanken -
Rheinwerk Computing :: IT-Handbuch für Fachinformatiker Links
Permalink zu dieser Podcast-Episode RSS-Feed des Podcasts SQL –
Wikipedia DML, DDL, DCL - Kommandos Datenbank/Einführung in Joins –
SELFHTML-Wiki Weitere Infos zum FachgesprächDu suchst noch mehr
Tipps rund um das Fachgespräch? Dann schau doch mal in diese
Artikel- und Podcast-Kategorie: Alle Artikel rund um das
Fachgespräch.Kennst du schon meine Hörbücher zur Vorbereitung auf
das Fachgespräch? Unter dasperfektefachgespraech.de kannst du sie
herunterladen. In insg. über 10 Stunden gehe ich über 200 Fragen im
Detail durch und gebe Tipps für die Beantwortung.Und wenn du dich
für meinen Newsletter einträgst, bekommst du immer direkt alle
Neuigkeiten von dieser Seite in dein Postfach geliefert.Jetzt
anmelden! Zusammenfassung SQL im Fachgespräch Wenn du dich als
IT-Azubi auf dein Fachgespräch vorbereitest, solltest du SQL
beherrschen. Fragen dazu kommen häufig vor, weil viele
Abschlussprojekte mit relationalen Datenbanken arbeiten. Auch in
den schriftlichen Prüfungen gehört SQL regelmäßig zu den Aufgaben.
Das Thema betrifft sämtliche IT-Berufe. SQL steht für Structured
Query Language und ist eine Abfragesprache für relationale
Datenbanken. Der SQL-Standard legt einen gemeinsamen Bestand an
Befehlen fest, mit dem du in standardkonformen Datenbanksystemen
arbeiten kannst. Dazu zählen beispielsweise Oracle und Microsoft
SQL Server. Für Stored Procedures bieten Datenbanksysteme eigene
Sprachen an, etwa PL/SQL bei Oracle oder T-SQL bei Microsoft SQL
Server. Die fünf SQL-Befehlsgruppen Ich ordne SQL in fünf Gruppen
ein. Je nach Quelle findest du auch andere Einteilungen, bei denen
einzelne Befehle anders zugeordnet werden. | Gruppe | Aufgabe |
Typische Befehle | | --- | --- | --- | | DDL: Data Definition
Language | Tabellen und ihre Struktur festlegen oder verändern |
CREATE TABLE, ALTER TABLE, DROP TABLE | | DML: Data Manipulation
Language | Daten in Tabellen bearbeiten | INSERT, UPDATE, DELETE |
| DQL: Data Query Language | Daten abfragen | SELECT | | DCL: Data
Control Language | Zugriffsrechte vergeben oder entziehen | GRANT,
REVOKE | | TCL: Transaction Control Language | Transaktionen
steuern | COMMIT, ROLLBACK | Als Merkhilfe gehe ich den Weg einer
Datenbank durch: Zunächst lege ich die Tabellen an. Sobald die
Struktur steht, füge ich Daten ein, die ich anschließend abfragen
kann. Zusätzlich lege ich fest, welche Rechte ein:e Benutzer:in
erhält. Mit COMMIT schreibe ich Änderungen einer Transaktion
dauerhaft fest. ROLLBACK nimmt sie zurück. Selektion und Projektion
Bei einer Selektion wählst du bestimmte Zeilen aus einer Tabelle
aus, beispielsweise über eine WHERE-Bedingung. Die Projektion
bestimmt, welche Spalten du abfragst. Wenn du in einem SELECT nur
Vorname und Nachname angibst, erhältst du diese Spalten als
Ergebnis. Ein SELECT-Statement aufbauen Für das Fachgespräch
solltest du diesen Aufbau beschreiben können: sql SELECT Spalten
FROM Tabellen WHERE Bedingung GROUP BY Spalten HAVING Bedingung
ORDER BY Spalten; Welche Klauseln du brauchst, hängt von deiner
Abfrage ab: Mit SELECT legst du die gewünschten Spalten fest. FROM
nennt die Tabellen, aus denen du Daten liest. Über WHERE schränkst
du die Zeilen anhand von Bedingungen ein. GROUP BY fasst Datensätze
anhand bestimmter Spalten zu Gruppen zusammen. Mit HAVING schränkst
du die Ergebnisse nach dem Gruppieren ein. ORDER BY sortiert das
Ergebnis. Bei SELECT ist es sinnvoll, den Aufbau auch mündlich
wiedergeben zu können. Fragen zur genauen Syntax anderer Befehle
sind ebenfalls möglich, etwa zu CREATE TABLE oder INSERT. DISTINCT
Durch SELECT DISTINCT erhältst du eindeutige Werte aus der
Ergebnismenge. Wenn viele Personen denselben Nachnamen haben,
erscheint dieser bei einer entsprechenden Abfrage einmal. Du kannst
DISTINCT auch auf eine Kombination mehrerer Spalten anwenden.
Tabellen mit Joins verknüpfen Als Beispiel dienen eine
Personentabelle und eine Adresstabelle, die über eine Personen-ID
zusammenhängen. INNER JOIN Ein INNER JOIN liefert Datensätze, bei
denen die angegebenen Spaltenwerte auf beiden Seiten
zusammenpassen. Im Beispiel erscheinen Personen mit einer passenden
Adresse. Voraussetzung ist, dass die Join-Bedingung erfüllt ist.
OUTER JOIN Mit einem Outer Join kannst du Datensätze erhalten, für
die auf der anderen Seite eine passende Zeile fehlt. LEFT OUTER
JOIN: Alle Datensätze der linken Tabelle bleiben erhalten. Steht
die Personentabelle links, erscheinen alle Personen. Bei einer
fehlenden Adresse enthalten die Adressspalten NULL. RIGHT OUTER
JOIN: Alle Datensätze der rechten Tabelle bleiben erhalten. Im
Beispiel erscheinen sämtliche Adressen, auch wenn ihnen keine
Person zugeordnet ist. FULL OUTER JOIN: Datensätze beider Tabellen
bleiben erhalten. Wo die passende Gegenseite fehlt, werden deren
Spalten mit NULL ausgegeben. NATURAL JOIN Ein NATURAL JOIN
verknüpft Tabellen automatisch anhand gleichnamiger Spalten. Du
musst ihn ausdrücklich angeben. Wenn beide Tabellen eine Spalte
PersonID enthalten, zieht die Datenbank diese für die Beziehung
heran. Ich bevorzuge ausdrücklich angegebene Join-Beziehungen, weil
gleiche Spaltennamen unterschiedliche Bedeutungen haben können. So
kann ID in einer Tabelle die Person bezeichnen und in der anderen
die Adresse. Auch eine später ergänzte gleichnamige Spalte kann
verändern, welche Datensätze ein Natural Join liefert.
Aggregatsfunktionen Mit einer Aggregatsfunktion fasst du mehrere
Werte zu einem Ergebnis zusammen. COUNT(*) ermittelt
beispielsweise, wie viele Personen eine Tabelle enthält. Über
SUM(Gehalt) erhältst du die Summe ihrer Gehälter; eine
Mittelwertfunktion berechnet den Durchschnitt. Solche Berechnungen
sollten direkt in der Datenbank stattfinden. Wenn du dafür
sämtliche Datensätze in dein Programm lädst, müssen sie zunächst
übertragen und dort verarbeitet werden. Das erzeugt Netzwerkverkehr
und beansprucht Speicher. Datenbanken sind für das Verarbeiten
großer Datenmengen ausgelegt. GROUP BY mit Aggregatsfunktionen Wenn
du Gehälter nach Abteilungen zusammenfassen möchtest, gruppierst du
die Datensätze über die Abteilung: sql SELECT Abteilung,
SUM(Gehalt) FROM Person GROUP BY Abteilung; Dadurch erhältst du
eine Gehaltssumme pro Abteilung. Indem du die Abteilung mit
ausgibst, kannst du jede Summe zuordnen. Achte bei solchen Abfragen
darauf, welche Spalten du zusätzlich zur Aggregatsfunktion
auswählst und nach welchen Spalten du gruppierst. Für das Beispiel
gehören Abteilung im SELECT und GROUP BY Abteilung zusammen. Wenn
du weitere Angaben wie Name und Vorname in die Gruppen aufnimmst,
verändert sich, welche Datensätze zusammengefasst werden.
Datentypen auswählen Für Prüfungsaufgaben konzentriere ich mich auf
folgende grundlegende Gruppen: Zeichenketten: Je nach
Datenbanksystem heißen passende Typen beispielsweise VARCHAR oder
VARCHAR2. Manche Systeme bieten außerdem TEXT an. Zahlen: Du
solltest angeben, ob du ganze Zahlen oder Zahlen mit
Nachkommastellen brauchst. Bezeichnungen sind beispielsweise
NUMBER, DECIMAL,...
Kommentare (0)
Melde dich an, um einen Kommentar zu schreiben.