JayDeee Geschrieben 19. November 2003 Teilen Geschrieben 19. November 2003 Moin, gibt es im Netz irgendwo ein SQL Handbuch online oder zum runterladen ?? ich suche in erster Linie Tipps zum erstellen von Abfragen.... Danke Gruß JayDee Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DerMatze Geschrieben 19. November 2003 Teilen Geschrieben 19. November 2003 Servus, just try this Thread: http://forum.fachinformatiker.de/showthread.php?s=&threadid=49732 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
JayDeee Geschrieben 19. November 2003 Autor Teilen Geschrieben 19. November 2003 die haben wohl die seite geändert zu mindestens paßt der Link nicht hab es aber jetzt doch auf der Seite gefunden .... DANKE Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
just_me Geschrieben 19. November 2003 Teilen Geschrieben 19. November 2003 gibt es im Netz irgendwo ein SQL Handbuch online oder zum runterladen ??http://www.google.de/search?sourceid=navclient&hl=de&ie=UTF-8&oe=UTF-8&q=sql+tutorial round about 691'000 Resultate ... no comment. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
JayDeee Geschrieben 19. November 2003 Autor Teilen Geschrieben 19. November 2003 sorry, hätte ja sein könne, dass jemand eine gute quelle empfehlen kann .... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DerMatze Geschrieben 19. November 2003 Teilen Geschrieben 19. November 2003 Können manche auch: http://horatio.wiwi.uni-frankfurt.de/sql/intro.html http://www.sqlreference.de/ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
just_me Geschrieben 19. November 2003 Teilen Geschrieben 19. November 2003 roger that. Zwischen ... im Netz irgendwo ein SQL Handbuch ...und... eine gute quelle empfehlen ...sehe ich zwar gravierende Unterschiede, aber hey, was soll's. Meine Lieblingsquellen: Platz 1: Die Onlinehilfe des MS SQL Servers 2000 Klar strukturiert, umfangreich, und zu fast jeder Möglichkeit ein nachvollziehbares Beispiel. Schlicht ein Muster für eine perfekte Onlinehilfe. Platz 2: Dr. Gordon Russell Obwohl man sich hier registrieren muss, kann ich diese Seite nur empfehlen. Umfangreiche Tutorials, die kaum Fragen offen lassen, die gleichzeitig wie ein "Spiel" aufgebaut sind, da man sich für komplexere Bereiche erst "qualifizieren", alos einfachere "Levels" absolvieren muss. ("Spaß"&Arbeit nett kombiniert.) Platz 3: der SQLcourse Einfach genial: Einfach UND genial. verständliche Erläuterungen, und Möglichkeiten zum Üben. Platz 4: der SQLzoo Hier fallen zwar die Erläuterungen eher kurz aus, aber dafür kann man sich mit Hilfe von niedlichen Aufgaben gleich mal selbst testen und so learning-by-doing intensiv betreiben. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
VfB Geschrieben 12. Februar 2010 Teilen Geschrieben 12. Februar 2010 Hallo zusammen. Der Thread ist zwar schon uralt, aber vielleicht kann mir ja trotzdem jemand helfen. Bin auf der Suche nach einem SQL Tutorial dem Link von just_me auf die Seite von Dr. Gordon Russell gestoßen. Habe nun das Problem, dass ich im 3. Tutorial des Öfteren an den gestellten Aufgaben scheitere. Leider habe ich nirgendwo Lösungsvorschläge gefunden. Hat sich vielleicht jemand mit diesem Tutorial auseinander gesetzt und hat Musterlösungen? Grüße Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
VfB Geschrieben 12. Februar 2010 Teilen Geschrieben 12. Februar 2010 Edit meint, ich wollte "auseinandergesetzt" schreiben. http://forum.fachinformatiker.de/images/smilies/cool.gif Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
.NETter Geschrieben 12. Februar 2010 Teilen Geschrieben 12. Februar 2010 Bei welcher Aufgabe genau? Ich habe das vor Urzeiten mal gemacht, aber vielleicht kann ich helfen. Gruß, Thomas Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
VfB Geschrieben 12. Februar 2010 Teilen Geschrieben 12. Februar 2010 Hallo NETter, danke für Dein Hilfsangebot. Ich habe halt die Hoffnung, dass noch jemand einen Account hat und seine Lösungen ab dem 3. Tutorial Teil kurz zusammenfassen kann. Ich möchte auf keinen Fall so unverschämt sein und alle Aufgaben hier rein stellen, aber vielleicht kannst Du mir zu den folgenden Aufgaben helfen. Teilweise bekomme ich die Aufgaben mit "where" Bedingungen gelöst, allerdings nicht mit der "geforderten" JOIN Bedingung. Zum Beispiel die Nr.1: "List the full names of employees who have been on any Accounting course." select distinct forenames, surname from employee, empcourse, course where course.courseno = empcourse.courseno and empcourse.empno = employee.empno and cname LIKE '%Accounting%' ; Gibt die richtige Antwort, bekomme aber keine funktionierende JOIN Bedingung hin. select distinct forenames, surname from employee JOIN empcourse ON (employee.empno = empcourse.empno), course JOIN empcourse ON (course.courseno = empcourse.courseno) where cname LIKE '%Accounting%' order by (surname) ; Da sind die zwei Richtigen Namen dabei, allerdings auch 7 falsche. Verstehe diese Join Sache noch nicht (und wie ich ein smilie eingebe verstehe ich irgendwie auch nicht.. ) Aufgabe 3: List all employees by surname and forenames who have been on a course in 1988. select distinct surname, forenames from employee, empcourse, course where employee.empno = empcourse.empno and empcourse.courseno = course.courseno and cdate between '01.Jan.1988' and '31.Dec.1988' ; Wie müsste da eine JOIN Bedingung aussehen? Aufgabe 4: List in alphabetical order of department name then surname and then forename, the current position of all employees. select position from jobhistory, employee, department where employee.depno = department.depno and employee.empno = jobhistory.empno and enddate IS NULL order by dname asc, surname asc ,forenames asc ; Da stimmt selbst diese Abfrage nicht. Und wie müsste eine JOIN Abfrage aussehen? Du siehst, Fragen über Fragen. Das Problem ist halt, dass man sich da komplett eindenken und die Tutorial Tabellen durchschauen müsste, denn ich glaube nicht, dass Du Dich nach den Jahren noch daran erinnern kannst. Aber vielleicht erkennt der Profi den Fehler auch so... Ich bedanke mich auf jeden Fall schon mal im Voraus! Grüße Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
.NETter Geschrieben 12. Februar 2010 Teilen Geschrieben 12. Februar 2010 Hallo, hier mal die Antwort für die Aufgabe 3.1: select DISTINCT(surname), forenames from employee inner join empcourse on employee.empno = empcourse.empno inner join course on empcourse.courseno = course.courseno WHERE course.cname LIKE '%Accounting%'; Aufgabe 3.3: select DISTINCT(surname), forenames from employee inner join empcourse on employee.empno = empcourse.empno inner join course on empcourse.courseno = course.courseno WHERE (course.cdate >= to_date( '01.01.1988','DD.MM.YYYY')) AND (course.cdate <= to_date( '31.12.1988','DD.MM.YYYY')); und hier auch noch Aufgabe 3.4: select department.dname, employee.surname, employee.forenames , jobhistory.position from employee INNER JOIN department ON employee.depno = department.depno INNER JOIN jobhistory ON employee.empno = jobhistory.empno WHERE jobhistory.enddate IS NULL ORDER BY department.dname, employee.surname, employee.forenames; aber bitte nicht einfach als gegeben hinnehmen sondern mit Joins auseinander setzen :-) Hoffe das hilft Dir weiter :-) gruß, Thomas Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
.NETter Geschrieben 12. Februar 2010 Teilen Geschrieben 12. Februar 2010 Hallo, erstmal das Wichtigste! <-- findest Du beim Erstellen der Nachricht auf der rechten Seite im Menü Smileys Ne, jetzt im Ernst... Ich habe gesehen, dass Du Joins mit einem "," trennst. Dein SQL: select distinct forenames, surname from employee JOIN empcourse ON (employee.empno = empcourse.empno), course JOIN empcourse ON (course.courseno = empcourse.courseno) where cname LIKE '%Accounting%' order by (surname) Mein SQL: select DISTINCT(surname), forenames from employee inner join empcourse on employee.empno = empcourse.empno inner join course on empcourse.courseno = course.courseno WHERE course.cname LIKE '%Accounting%'; Auch mehrere Joins werden ohne Komma hintereinander geschrieben. Wenn man jetzt vom einfachen Join (INNER JOIN) ausgeht, so werden aus beiden abgefragten Tabellen die Zeilen zurück gegeben die ein Gegenstück in der zweiten Tabelle besitzen. Beispiel: Tabelle: Mitarbeiter Felder: maid (PK), vorname, nachname, abtid Tabelle: Abteilung Felder: abtid (PK), abtname Daten der Tabelle Mitarbeiter: 1; Max; Mustermann; 2; 2; Bill; Gates; 1; 3; Peter; Meier; 2; Daten der Tabelle Abteilung: 2; Abteilung2; 3; Abteilung3; Also mal einen INNER JOIN: select Mitarbeiter.*, Abteilung.* from Mitarbeiter inner join Abteilung ON Mitarbeiter.abtid = Abteilung.abtid; Als Ergebnis würdest Du ungefähr folgendes erhalten: Max; Mustermann; 2; 2; Abteilung2; Peter; Meier; 2; 2; Abteilung2 Bill Gates taucht nicht auf weil es in der "verjointen" Tabelle Abteilung keine Abteilung mit der Nummer 1 gibt. Ebenso taucht Abteilung 3 nicht auf weil es keinen Mitarbeiter gibt der einen Eintrag für Abteilung 3 besitzt. Jetzt mal eben über drei Tabellen****************************** Die Anforderung hat sich geändert und ein Mitarbeiter muss nun mehreren Abteilungen zugeordnet werden können. Also ändern wir den Aufbau der DB wie folgt: Tabelle: Mitarbeiter Felder: maid (PK), vorname, nachname Tabelle: Abteilung Felder: abtid (PK), abtname Tabelle: Mitarbeiter_Abteilung Felder: maid, abtid So können wir jeden Mitarbeiter beliebig vielen Abteilungen zuordnen. Aber jetzt müssen auch drei Tabellen abgefragt werden um an Daten aus Mitarbeiter und Abteilungen zu kommen. Erster Inner Join: select * from Mitarbeiter inner join Mitarbeiter_Abteilung on Mitarbeiter.maid = Mitarbeiter_Abteilung.maid --Aus diesem Join ergibt sich nun eine Rückgabe (wie oben gesehen) --diese Rückgabe kannst Du einfach mit einer weiteren Tabelle verjoinen :-) inner join Abteilung on Mitarbeiter_Abteilung.abtid = Abteilung.abtid So erhältst Du alle Felder aus den drei Tabellen die einen Bezug zueinander haben. Das Select * ersetzt du dann einfach durch die Felder die du auch benötigst. Hoffe alle Klarheiten beseitigt zu haben :-) Gruß, Thomas Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
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.