Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

SQL Grundkurs 2: Aufgaben und Lösungen

Beispiel 6: Einfügen mit Sequenz, Identity und Autoinkrement

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Fügen Sie eine neue Bestellung für ausgewählte Artikel ein. Die Bestellnummer wird bei Microsoft SQL Server und bei MySQL über eine Identity bzw. ein Autoinkrement, bei Oracle über eine Sequenz automatisch vergeben.

Transkript

Mit diesem Beispiel möchten wir das Einfügen von neuen Datensätzen abschließen. Deshalb fällt dieses Beispiel nun auch etwas umfangreicher aus. In diesem Beispiel wollen wir zwei Dinge tun, Wir wollen zuerst eine neue Bestellung erfassen und später dann simulieren, dass diese Bestellung geliefert wird. Dazu muss diese dann in die Tabelle Wareneingang übernommen werden. Um eine Bestellung zu erfassen, benötigen wir zwei Tabellen. Einerseits die Tabelle Bestellungen und andererseits die Bestellpositionen. Werfen wir zu Beginn gleich einmal einen Blick in die zwei Tabellen. Dazu habe ich diese Anweisungen vorbereitet. In der Tabelle "bestellungen" finden wir die Bestellnummer als Primärschlüssel, das Datum der Bestellung, die Lieferantennummer als Fremdschlüssel zur Lieferantentabelle, die Personalnummer des Bearbeiters. Auch diese stellt einen Fremdschlüssel zu einer anderen Tabelle, in dem Fall zur Tabelle Personal dar. Außerdem besteht die Möglichkeit, Eine Bemerkung zu einer Bestellung zu erfassen, bzw. der Status muss auch definiert werden. der Status "2" steht in diesem Fall für abgeschlossen, "1" für erfasst, d. h diese Bestellung ist noch nicht hinausgegangen. Wenn wir also eine Bestellung erfassen, müssen wir darauf achten, dass eine gültige Lieferantennummer wie auch eine gültige Personalnummer erfasst werden. Für unser Beispiel möchten wir z. B. den Lieferanten mit der Nummer "1.001" verwenden. Das ist die "Grazer Besteck- und Haushaltswaren GmbH" Als Bearbeiter suchen Sie sich einen beliebigen Einkäufer aus. In der Tabelle "personal" finden wir in der Abteilung Einkauf diese drei Mitarbeiter, "Marion Hoier", "Lorenz Meister" und "Anita Kossegg". Welchen Sie von dieses dreien verwenden möchten, überlasse ich Ihnen. Außerdem sollen in der Bestellung folgende Artikel, jeweils mit einer Menge von "12" eingefügt werden. Diese werden dazu aus der Tabelle "artikel" ausgelesen. Und zwar mit der Artikelnummer "1.499" durchgehend bis "1.504". Die Bezeichnung muss ebenso in die Bestellposition eingefügt werden, wie der Einkaufspreis. Dieser ist als Preis zu übernehmen. Werfen wir noch einen Blick in die Tabelle "bestellpositionen", dann sehen wir hier die zu übernehmenden Werte, Artikelnummer, Bezeichnung, und Preis in Form des Einkaufspreises. Rabatt können wir mit "0" übergeben, bei Menge wie erwähnt jeweils "12". Wir müssen nun darauf achten beim Einfügen dass auch jeweils eine gültige Positionsnummer mit "1" beginnend vergeben wird. Als Tipp dazu: Verwenden Sie die Funktion ROWNUM beim SQL Server, die ROW_NUM-Pseudospalte bei Oracle, und eine Variable bei MySQL. Dazu verwenden Sie beim Microsoft SQL Server die Funktion ROW_NUMBER, bei Oracle die Interne Pseudospalte ROWNUM und bei MySQL benötigen Sie dazu eine Variable, die beim Einfügen hochgezählt wird. Achten Sie außerdem darauf, dass Sie beim Einfügen die Bestellnummer, die zuvor automatisch vergeben worden ist, auslesen und ebenso korrekt übergeben. Beim Microsoft SQL Server wird die Bestellnummer automatisch über eine IDENTITY definiert, muss also nicht mit eingegeben werden. Ähnlich bei MySQL, hier ist das gleiche über so ein Auto-Inkrement implementiert. Bei Oracle müssen dazu eine SEQUENCE verwenden, Diese SEQUENCE wird direkt beim Einfügen des Datensatzes mit angegeben. Diese Sequenz trägt bei Oracle den Namen "best" wie Bestellung, "b-e-s-t", "_nr" wie Nummer. Im zweiten Schritt soll diese Bestellung in einen Wareneingang übergeführt werden. Dafür soll die Lieferscheinnummer "GB20150409" verwendet werden. Die Wareneingangsnummer wird beim SQL Server ab der Version 2012 über die Sequenz "wae_seq" definiert. Das gleiche passiert wieder bei Oracle. Auch hier wird die Sequenz verwendet. Da es bei MySQL keine eigenen Sequenzen gibt, Wird auch hier ein Auto-Inkrement für die Vergabe der Wareneingangsnummer eingesetzt. Als Bearbeiter können diesmal wieder einen beliebigen Mitarbeiter aus der Tabelle "lager" auswählen. Werfen wir noch einen Blick in die benötigten Tabellen, um den Überblick besser zu bekommen. In der Tabelle "wareneingang" werden die Wareneingänge erfasst. Diese Wareneingangsnummer wird hier, entweder über ein Auto-Inkrement, oder über eine Sequenz definiert. Das Datum für den Wareneingang wird ähnlich wie bei der Bestellung auch automatisch über einen Standardwert vergeben. Das gleiche gilt für den Status, der hier auch denselben Wert, wie bei einer Bestellung annehmen kann. "1" steht für erfasst, "2" für abgeschlossen, d. h. der Wareneingang und deren Artikel sind auch schon im Lager zugebucht worden. Der Lieferant für den Wareneingang ist ebenso zu übergeben wie die Lieferscheinnummer und die Personalnummer des Lagermitarbeiters. Als Lagermitarbeiter können Sie einen Als Wareneingangspositionen Als Wareneingangspositionen fügen wir alle Positionen der gelieferten Bestellung ein. Auch hier können wir die Wareneingangsnummer übergeben. Auch die Positionsnummer kann, wenn Sie möchten, von der Bestellung beibehalten werden. Artikelnummern und Bezeichnungen werden übernommen, ebenso die Menge. Vorerst werden wir alle Positionen dem Lager "1" zuweisen, wir werden danach noch mit einem kleinen Update später einmal eine Änderung vornehmen. Vorläufig soll das aber ausreichend sein. Das heißt es geht jetzt darum, dass Sie jetzt hier in diesem Beispiel zuerst eine Bestellung eingeben, und bei dieser Bestellung, Artikelinformationen auslesen. Danach soll ein neuer Wareneingang erfasst werden, wobei die Informationen aus der Bestellung ausgelesen, und übertragen werden. Sinn und Zweck ist, das soll die Situation simulieren, dass ein Wareneingang direkt mit den Informationen der gelieferten Bestellung bestückt wird Ich hoffe die Aufgabenstellung ist nun nicht allzu schwierig und Sie können sie umsetzen. Sie können das Ganze, wenn Sie lieber möchten natürlich auch in Teilschritten umsetzen, und sich jeweils die Teile der Lösung betrachten. Ich wünsche Ihnen viel Erfolg bei der Umsetzung.

SQL Grundkurs 2: Aufgaben und Lösungen

Vertiefen Sie Ihre SQL-Kenntnisse. In diesem Workshop erhalten Sie zahlreiche Beispielaufgaben, die Sie selbst lösen können. Anschließend zeigt Ihnen der Trainer die Lösung.

7 Std. 41 min (61 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieses Training setzt SQL-Kenntnisse voraus, wie sie beispielsweise in „SQL lernen und anwenden“ vermittelt werden.

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!