SQL-Aufgaben in der schriftlichen IHK-Prüfung – Anwendungsentwickler-Podcast #117

SQL-Aufgaben kommen in fast jeder schriftlichen IHK-Abschlussprüfung vor. Daher wird es Zeit, einmal detailliert über eine sinnvolle Vorgehensweise bei ihrer Beantwortung zu sprechen. Genau dieses Thema hat die einhundertsiebzehnte Episode des Anwendungsentwickler-Podcasts.

Probeabo bei Audible (Affiliate)

Inhalt

  • SQL-Aufgaben kommen in der Prüfung für Anwendungsentwickler eigentlich jedes Mal vor (in GA1). Aber auch in GA2 kommen durchaus häufiger SQL-Aufgaben zum Einsatz. Eine detaillierte Vorbereitung ist also für alle IT-Berufe zu empfehlen.
  • Es gibt keine Ausrede, SQL nicht in- und auswendig zu kennen. Selbst wenn in fast jeder Prüfung ein Beiblatt mit der SQL-Syntax vorhanden ist, dauert das Nachschlagen viel zu lange. Lerne SQL einfach rauf und runter, wie es sich für einen vernünftigen Anwendungsentwickler gehört.
  • Ich empfehle, die SQL-Aufgaben zu bearbeiten und nicht zu streichen. Im Vergleich gibt es deutlich schwierigere Aufgaben, für die du die „Streich-Option“ noch brauchen könntest.
  • Vorab schau dir kurz die vorgegebene Tabellenstruktur an und versuche, das Datenmodell zu verstehen.
  • Lies die Aufgaben bitte genau durch und ermittle zuerst, welche Art von Statement und welche Bestandteile (z.B. ORDER BY) du brauchst. Häufig werden triviale Anweisungen wie die Sortierung am Ende vergessen. Das kostet wertvolle Punkte.
  • Das wichtigste Statement für die Prüfung ist sicherlich SELECT. Aber auch UPDATE, CREATE TABLE usw. wurden schon häufiger abgefragt. Gefühlt wird SELECT allerdings in 90% der Aufgaben erwartet.
  • Schaue dir trotzdem auch die eher seltenen SQL-Statements an. Es wurde z.B. auch schonUNION oder CASE benutzt.
  • Lass die SQL-Aufgaben bitte nicht einfach leer, auch wenn du keine Ahnung hast, wie du die konkrete Aufgabe lösen musst. Die Liste der Spalten und Tabellen gibt meist schon den Großteil der Punkte der Aufgaben.
  • Bei der Beantwortung der Fragen empfehle ich, mit der Auflistung der Tabellen zu beginnen.
  • Jede Tabelle sollte sofort einen kurzen Alias bekommen, damit die SQL-Abfrage insgesamt nicht so lang wird. Du musst das alles mit der Hand schreiben!
  • Danach sollten alle Spalten separat aufgeschrieben werden, damit diese Basispunkte nicht verschenkt werden.
  • Verwende bei Alternativen die kürzere Schreibweise, um Zeit zu sparen und weniger Fehler machen zu können. Beispiel: Statt WHERE plz > 10000 AND plz < 20000 besser `WHERE plz BETWEEN 10000 AND 20000´.
  • Um Tabellen zu verbinden, empfehle ich dringend den Einsatz der JOIN-Syntax (anstatt WHERE). Sie kann leicht um weitere Tabellen ergänzt werden, aber auch durch Hinzufügen eines einziges Wortes in einen OUTER-Join verändert werden.
  • Achte bei den Joins darauf, ob du eventuell ein OUTER-Join brauchst. In den Aufgaben findest du normalerweise Hinweise darauf, ob in den Tabellen verknüpfte Datensätze vorhanden sein müssen oder nicht.
  • Ein Hinweis zum GROUP BY: Alle Spalten, die selektiert werden und keine Aggregatfunktion enthalten, müssen auch hinter dem GROUP BY aufgeführt werden. Beispiel: SELECT m.name, m.vorname, COUNT(m.fehltage) FROM mitarbeiter m GROUP BY m.name, m.vorname
  • Nicht jede Aufgabe benötigt ein Subselect. Oftmals kannst du die Abfragen, die gefordert sind, auch mit einem simplen JOIN und/oder GROUP BY lösen.

Literaturempfehlungen

Wie so oft ist meine Buchempfehlung zum Einstieg ins Thema Datenbanken das gute alte IT-Handbuch für Fachinformatiker*! 🙂

Sascha Kersken - IT-Handbuch für Fachinformatiker: Für Fachinformatiker der Bereiche Anwendungsentwicklung und Systemintegration. Inkl. Prüfungsfragen und Praxisübungen (Affiliate)*
(direkt beim Rheinwerk-Verlag bestellen*)

Das Kapitel über Datenbanken bespreche ich auch hier im Buchclub: Buchclub: Handbuch für Fachinformatiker (Teil 11: Datenbanken)

Links

Weitere Hilfen zur IHK-Prüfung

Du suchst noch mehr Tipps rund um die Vorbereitung auf die schriftliche IHK-Prüfung? Dann schau doch mal in diese Artikel- und Podcast-Kategorie: Alle Artikel rund um die schriftliche IHK-Prüfung.

Und kennst du schon meine Übungsaufgaben für die Abschlussprüfung? Unter dieperfekteihkpruefung.de kannst du sie herunterladen.

Polyglot Clean Code Developer
About the Author
Ausbildungsleiter für Fachinformatiker Anwendungsentwicklung und Systemintegration, IHK-Prüfer und Hochschuldozent für Programmierung und Software-Engineering.

12 comments on “SQL-Aufgaben in der schriftlichen IHK-Prüfung – Anwendungsentwickler-Podcast #117

  1. Marco sagt:

    Ich finde den Podcast prinzipiell sehr gut. Aber einige Aussagen in dieser Ausgabe sind mir (seit mehr als 10 Jahren Datenbankentwickler) doch ziemlich suspekt: „Sub-SELECTs kommen im wahren Leben kaum vor und sind immer total langsam“? Wie kommt man denn darauf? Ich treffe täglich Sub-SELECTs und dass nicht nur in meinem eigenen Code. Und sie sind auch niemals grundsätzlich langsam. Zum Einen weil ein gescheiter Optimizer von sich aus in der Lage ist falsch eingesetzte Sub-SELECTs trotzdem korrekt zu „Planen“, zum Anderen setzt man sie häufig gerade aus Performance-Gesichtspunkten ein. Und letztlich ist auch die Aussage dass diese nicht lesbar wären Kappes, auch hier gilt: gerade zur Strukturierung großer Statements können Sub-Statements sehr gut beitragen.

    Irgendwie erinnert mich dieser Beitrag an meine eigene Berufsschulzeit: Den Ausbildern und Lehrern mangelt es oft nicht an theoretischem Wissen. Dafür aber ganz gewaltig an Praxis. Ich sehe dass auch bei mir im Unternehmen: Das schwächste Glied in der Entwicklerriege ist sonderbarerweise der, der sonderbarerweise seinen Tage auch als IT-Ausbilder verbringt.

  2. Stefan Macke sagt:

    Hallo Marco,

    danke für dein Feedback. Du hast recht damit, dass ich im Alltag nicht so viel mit SQL-Abfragen arbeite. Aber genug Erfahrung, um den Umgang damit lehren zu können, habe ich sehrwohl. Und von einer einzigen vielleicht zu hinterfragenden Aussage auf meine gesamte „schwache“ Qualifikation zu schließen, finde ich dann doch recht unpassend.

    In dieser Episode geht es ja außerdem um die Beantwortung der Fragen in der IHK-Prüfung, die ohnehin recht speziell sind. Und dabei ist mir aufgefallen, dass viele Musterlösungen unnötigerweise (!) mit Subqueries arbeiten, obwohl sie mit weniger (Schreib-)Aufwand und auch noch performanter z.B. mit einem GROUP BY lösbar wären (Beispiel: sql – Should I choose subquery or ‚group by‘ for faster performance. Dass Subqueries durchaus ihren Platz in der Praxis haben und manchmal auch einfach nötig sind, weil es keine andere Lösung gibt, ist mir durchaus bewusst. Das heißt aber nicht, dass sie der goldene Hammer für alle Datenbankprobleme sind und man sie in jeder SQL-Aufgabe der Abschlussprüfung verwenden sollte oder gar muss. Und dieser Eindruck entsteht bei mir, wenn ich die Klausuren korrigiere.

    Ansonsten freue ich mich über ein konkretes Praxisbeispiel von dir, das die „Überlegenheit“ (oder zumindest Gleichwertigkeit) von Subqueries gegenüber GROUP BY demonstriert! 🙂

    Viele Grüße!
    Stefan

  3. choe sagt:

    hallo Stefan,

    vielen Dank für Ihre Mühe. In einem halben Jahr schreibe ich meine Abschlussprüfung. Ich habe vor einer Woche angefangen, Ihren Prodcats zu hören, die sind wirklich sehr hilfreich für mich.
    Ich habe jetzt eine Frage, werden Punkte für Grammatik- oder Schreibfehler bei der Beantwortung von Fragen abgezogen?
    liebe Grüße
    chloe

  4. Stefan Macke sagt:

    Hallo chloe, nein, dafür werden keine Punkte abgezogen. Jedenfalls bei uns im Ausschuss nicht. Wenn der Text allerdings völlig unverständlich ist, kann man aber natürlich inhaltlich keine Punkte geben.

  5. Stefan sagt:

    Eine kleine Anmerkung: BETWEEN enthält die Grenzen, entspricht also einem >=, <= und nicht > und <. Ist halt die Frage, ob das Wort „zwischen“ die Grenzen beinhaltet oder nicht.

  6. Stefan Macke sagt:

    Hallo Stefan, ja, da hast du recht. Das sollte man natürlich bei der Formulierung der Abfrage berücksichtigen! 🙂

  7. Sinan sagt:

    Für den anfänglichen leichten Einstieg in die SQL Suchsprache kann ich nur diese Seite empfehlen:
    https://sql-island.informatik.uni-kl.de/
    Ist kostenlos und bringt einem Step by Step vieles bei.
    Super Podcast 🙂

  8. Stefan Macke sagt:

    Hallo Sinan, danke für den Tipp! Das ist eine spaßige Alternative zum Durcharbeiten dicker SQL-Bücher!

  9. John sagt:

    Bei dem Zeitdruck während der Prüfung kann ich aus meiner Erfahrung überhaupt nicht mitgehen.
    Ich bin kein schneller Bearbeiter und habe als ca. 60-70 % bereits gegangen waren meine Zwischenprüfung abgegeben und dennoch war ich 25 Minuten vor der Zeit fertig.

    Nun, kurz vor der Prüfung führen wir im Azubiverbund regelmäßige Prüfungssimulationen durch im gleichen Rahmen mit vorangegangenen Prüfungen. Bisher ist es erst ein Mal dazugekommen, dass jemand in einem der 3 Teile noch mehr Zeit wollte, aber das auch nur, weil er alle 5 Schritte bearbeitet hatte.
    Das ist übrigens oftmals auch ohne Probleme machbar.
    Liest man sich die Korrekturhinweise der IHK durch, sind die Antworten oft nur sehr knapp formuliert – oftmals fraglich knapp. Jedoch sollte jedem bewusst sein, keine Romane zu schreiben.

    Bei „SQL sind freie Punkte“ kann ich jedoch komplett zustimmen. Durch mehrere Umstände kannte ich bis zur Vorbereitung auf die Prüfung 0 % SQL und konnte dennoch in einem Prüfungsjahr, in dem 2x SQL in GA1 und 1x SQL in GA2 dran kamen, gute 50 Punkte in den SQL-Aufgaben mitnehmen, die Lösung gibt es doch fast schon als Anhang mit dazu (Syntax Zettel).

    Nach einem 6 h Kurs auf Udemy zu SQL ärgere ich mich nun, wenn ich eben nicht volle Punktzahl habe.

  10. Stefan Macke sagt:

    Schön, dass du mir da zustimmst. Ich glaube, wer sich ein wenig (6h Kurs ist doch schonmal gut) mit SQL beschäftigt, kann hier wirklich gut die Punkte mitnehmen.

  11. Fatima Gaspar sagt:

    Stefan du bist der beste, danke für die podcast and Emails. Ich höre mir deine podcast immer an. Ich bin schon fast süchtig. Mit dir macht das Lernen Spaß. Ganz liebe Grüße,

    Fatima

  12. Stefan Macke sagt:

    Danke, das freut mich! 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax