Harry05 Geschrieben 19. November 2016 Geschrieben 19. November 2016 (bearbeitet) Aloha läute, ich habe probleme mit Datenbanken also ich komm ihrgend wie nicht über den Tellerrand bzw. ich stecke fest hab mich fest gefahren, so wie ein Kolbenfresser. Fühle mich auch wie in einer while schleife die Statisch auf true gesetzt ist, also eine dauerschleife. Denn ich möchte und versuche es zu verstehen. Meine probleme sind right/left joins subselect group by .... mit having Muss auch sagen das ich mir Sql abfragen nahe zu selbst beibringen musste, wie auch immer. benutzte Hilfen http://amazing-sql.com/download/ http://www.schulserver.hessen.de/darmstadt/lichtenberg/SQLTutorial/home.html nur diese kenne ich auswendig und fühle mich als würde ich mich selber verarschen. Mir ist das nich ganz ins Blut rübergegangen, ich weis nicht ganz wie die setzt zudeuten sind die Joins und subselect andeuten. Bearbeitet 19. November 2016 von Harry05 Zitieren
Fauch Geschrieben 19. November 2016 Geschrieben 19. November 2016 (bearbeitet) Ich fand http://sqlzoo.net noch nett, ist aber im Endeffekt das gleiche in grün. Ich kann mich nicht daran erinnern, dass in einer IHK-Prüfung schonmal explizit mit right/left joins gearbeitet werden musste - kann mich da aber täuschen. Subselects sind eigentlich recht einfach - die brauchst du immer dann, wenn die Kriterien einer "WHERE"-Bedingung noch spezialisiert werden müssen. "Having ist das Where des Group-By" macht Having eigentlich relativ deutlich. Allgemein zu SQL: Manchmal bringt die IHK da ganz einfach Aufgaben dran, die recht schwer sind. Z.B. bei uns in der Prüfung kam eine Aufgabe dran, bei der laut Musterlösung 4 geschachtelte Subselects zu verwenden waren. Finde ich ja etwas übertrieben solch eine Aufgabe auf dem Papier zu lösen, aber naja. Ansonsten gibt's halt bei SQL relativ einfach Teilpunkte dafür, dass man allein schon die richtigen Spalten hinter das SELECT schreibt. Bearbeitet 19. November 2016 von Fauch Zitieren
stefan.macke Geschrieben 19. November 2016 Geschrieben 19. November 2016 vor einer Stunde schrieb Fauch: Ich kann mich nicht daran erinnern, dass in einer IHK-Prüfung schonmal explizit mit right/left joins gearbeitet werden musste - kann mich da aber täuschen. Da kann ich widersprechen. Es gab schon mehrere Aufgaben, die ein LEFT OUTER JOIN erforderten. In einem Beispiel sollten u.a. Ferienhäuser mit ihren Kundenbuchungen ermittelt werden und es gab auch Häuser ohne Buchungen. vor einer Stunde schrieb Fauch: Ansonsten gibt's halt bei SQL relativ einfach Teilpunkte dafür, dass man allein schon die richtigen Spalten hinter das SELECT schreibt. Das kann ich bestätigen! Bei vielen Aufgaben gibt es die Hälfte der Punkte schon für ein "Auflisten" der Spalten und Tabellen. Also unbedingt immer hinschreiben, auch wenn man den Rest der Aufgabe vielleicht nicht lösen kann! Zitieren
Mackenzie Geschrieben 19. November 2016 Geschrieben 19. November 2016 vor 31 Minuten schrieb stefan.macke: Da kann ich widersprechen. Es gab schon mehrere Aufgaben, die ein LEFT OUTER JOIN erforderten. In einem Beispiel sollten u.a. Ferienhäuser mit ihren Kundenbuchungen ermittelt werden und es gab auch Häuser ohne Buchungen. Gilt das hier für FIAEler? Oder auch in den ganzheitlichen Aufgaben für FISIs und FIAEs? Zitieren
Fauch Geschrieben 19. November 2016 Geschrieben 19. November 2016 vor 1 Stunde schrieb Mackenzie: Gilt das hier für FIAEler? Oder auch in den ganzheitlichen Aufgaben für FISIs und FIAEs? Meistens sind die SQL-Aufgaben aus der GA2 (dem was die beiden Berufe gemeinsam haben) deutlich einfacher. Hier ist sogar öfters schon ein join das höchste der Gefühle. Garantien gibt's aber keine. Zitieren
Whiz-zarD Geschrieben 19. November 2016 Geschrieben 19. November 2016 Wenn ich mal einen Knoten im Kopf habe, dann nehme ich mir immer dieses Bild als Hilfe: Das Zeigt, welche Menge man bei welchem Join bekommt. Ein Right Join benutzt man eigentlich auch recht selten. Am häufigsten sind die Inner und Left Joins. Ich selber entwickle ja auch seit fünf Jahren Stored Procedures mit PL/SQL (Eine Sprache von Oracle) und kann mich nicht daran erinnern, jemals ein Right Join gemacht zu haben. Ich versuche es immer mit einem Left Join abzubilden, weil es dann leichter zu verstehen ist. Man bildet eine Grundmenge und schränkt diese Menge mit einem Left oder Inner Join ein. JimTheLion reagierte darauf 1 Zitieren
stefan.macke Geschrieben 19. November 2016 Geschrieben 19. November 2016 vor einer Stunde schrieb Fauch: Meistens sind die SQL-Aufgaben aus der GA2 (dem was die beiden Berufe gemeinsam haben) deutlich einfacher. Hier ist sogar öfters schon ein join das höchste der Gefühle. Das stimmt. Dafür kommen aber öfter mal andere Abfragen wie UPDATE oder CREATE TABLE dran anstatt "schwierige" SELECTs. Zitieren
Fauch Geschrieben 19. November 2016 Geschrieben 19. November 2016 vor 45 Minuten schrieb stefan.macke: Das stimmt. Dafür kommen aber öfter mal andere Abfragen wie UPDATE oder CREATE TABLE dran anstatt "schwierige" SELECTs. Fairerweise muss man hierzu aber noch anmerken, dass ein Blatt mit der Syntax der Prüfung beigelegt ist. Zitieren
Harry05 Geschrieben 19. November 2016 Autor Geschrieben 19. November 2016 vor einer Stunde schrieb Whiz-zarD: Wenn ich mal einen Knoten im Kopf habe, dann nehme ich mir immer dieses Bild als Hilfe: Das Zeigt, welche Menge man bei welchem Join bekommt. Ein Right Join benutzt man eigentlich auch recht selten. Am häufigsten sind die Inner und Left Joins. Ich selber entwickle ja auch seit fünf Jahren Stored Procedures mit PL/SQL (Eine Sprache von Oracle) und kann mich nicht daran erinnern, jemals ein Right Join gemacht zu haben. Ich versuche es immer mit einem Left Join abzubilden, weil es dann leichter zu verstehen ist. Man bildet eine Grundmenge und schränkt diese Menge mit einem Left oder Inner Join ein. ist left join nicht das selbe wie right join ? wichtig ist wie tabellen angeordnet sind ?? z.b a left b oder b right a komm nicht das gleiche raus ?? Zitieren
stefan.macke Geschrieben 20. November 2016 Geschrieben 20. November 2016 vor 7 Stunden schrieb Harry05: z.b a left b oder b right a komm nicht das gleiche raus ?? Nein. A LEFT OUTER JOIN B -> alle Sätze aus A und verknüpfte Sätze aus B, falls vorhanden. Falls kein passender Satz in B vorhanden ist, werden NULL-Werte für die Spalten geliefert. A RIGHT OUTER JOIN B -> alle Sätze aus B und verknüpfte Sätze aus A, falls vorhanden, ansonsten NULL-Werte. Zitieren
stefan.macke Geschrieben 20. November 2016 Geschrieben 20. November 2016 vor 7 Stunden schrieb Fauch: Fairerweise muss man hierzu aber noch anmerken, dass ein Blatt mit der Syntax der Prüfung beigelegt ist. Darauf würde ich mich als Prüfling nicht verlassen. SQL ist so wichtig, dass man es einfach können muss. Und es stehen auch nicht immer alle benötigten Befehle auf dem Beiblatt. Zumindest in GA1 für FIAE gab es schon mehrfach Aufgaben, die nicht nur mit der Befehlsreferenz lösbar waren. Es waren z.B. UNION oder ANY nicht angegeben. Zitieren
Whiz-zarD Geschrieben 20. November 2016 Geschrieben 20. November 2016 (bearbeitet) vor 54 Minuten schrieb stefan.macke: Nein. A LEFT OUTER JOIN B -> alle Sätze aus A und verknüpfte Sätze aus B, falls vorhanden. Falls kein passender Satz in B vorhanden ist, werden NULL-Werte für die Spalten geliefert. A RIGHT OUTER JOIN B -> alle Sätze aus B und verknüpfte Sätze aus A, falls vorhanden, ansonsten NULL-Werte. Er fragte aber ob, A LEFT OUTER JOIN B nicht das selbe ist, wie B RIGHT OUTER JOIN A und ja, das ist das selbe. In beiden Fällen ist die Grundmenge A. Darum versuche ich immer als erstes die Grundmenge zu schreiben, bevor ich die Menge mit einem LEFT OUTER JOIN filtere. Das lässt sich semantisch besser lesen. Aber die Frage, ob LEFT OUTER JOIN nicht das selbe ist, wie RIGHT OUTER JOIN muss mit einem Nein beantwortet werden. Es kommt hier auf die Reihenfolge an, wie die Mengen zueinander stehen. Bearbeitet 20. November 2016 von Whiz-zarD Zitieren
Harry05 Geschrieben 20. November 2016 Autor Geschrieben 20. November 2016 vor 4 Stunden schrieb Whiz-zarD: Er fragte aber ob, A LEFT OUTER JOIN B nicht das selbe ist, wie B RIGHT OUTER JOIN A und ja, das ist das selbe. In beiden Fällen ist die Grundmenge A. Darum versuche ich immer als erstes die Grundmenge zu schreiben, bevor ich die Menge mit einem LEFT OUTER JOIN filtere. Das lässt sich semantisch besser lesen. Aber die Frage, ob LEFT OUTER JOIN nicht das selbe ist, wie RIGHT OUTER JOIN muss mit einem Nein beantwortet werden. Es kommt hier auf die Reihenfolge an, wie die Mengen zueinander stehen. SOOOOO Meinte ich das !!! ok man muss achten an welcher stelle die Tabellen sind. Wie erschliest sich den das aus dem aufgaben Text den nun?? gib es identifizierungs wörter wie Z.b bei GROUB BY (je oder pro [nicht immer 100%])? also (grundmenge Immer A ) left B ??? aus Amasing Sql -> Welche Studenten haben bisher noch keine Prüfung abgelegt? Gebe deren ID, Vorname und Nachname in der angegebene Reihenfolge an. Antwort -> SELECT id, vorname, nachname FROM studenten LEFT JOIN pruefungen ON studenten.id = pruefungen.student WHERE pruefungen.student IS NULL; --------------------------------------------------------------------------------- aus Amasing Sql ->Von welchen Vorlesungen sind bisher noch keine Prüfungen abgelegt worden? Gebe die ID und den Titel der Vorlesungen in der angegebenen Reihenfolge aus. Antwort -> SELECT id, titel FROM vorlesungen LEFT JOIN pruefungen ON vorlesungen.id = pruefungen.vorlesung WHERE pruefungen.vorlesung IS NULL; ---------------------------------------------------------------------------------------- aus Amasing Sql ->Welche Studenten hören welche Vorlesungen? Gebe bitte die Vornamen als 'Vorname', die Nachnamen als 'Nachname' und die Vorlesungs-ID als 'Vorlesungs_ID' aus. Sortiere das Ergebnis aufsteigend nach der Vorlesungs-ID. Erfasse auch diejenigen Studenten welche gegenwärtig keine Vorlesungen hören. Antwort ->SELECT studenten.vorname, studenten.nachname, hoeren.vorlesung AS vorlesungs_id FROM hoeren RIGHT JOIN studenten ON studenten.id = hoeren.student ORDER BY vorlesungs_id; Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.