SQL Grundkurs 2: Aufgaben und Lösungen

Beispiel 3: Spalten hinzufügen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Erweitern Sie die Tabellen wawi.kunden und wawi.personal um neue akademische Grade nach dem Bologna-System, die nach dem Namen angeführt werden. Dazu muss jeweils eine neue Spalte in den beiden Tabellen ergänzt werden.

Transkript

In diesem Beispiel geht es darum, zu einer bestehenden Tabellen neue Spalten hinzuzufügen. Konkret wollen wir eine Änderung vornehmen, die eigentlich schon sehr notwendig ist, nämlich finden wir ins unseren Tabellen "Kunden" sowie "Personal" zwar einen akademischen Grad, aber es gibt noch keine Unterscheidung, um die klassischen akademischen Grade und die neuen nach Bologna-System Bachelor und Master, die hier nicht vor, sondern nach dem Namen geschrieben werden. Damit wir das in der Datenbank auch sauber trennen können und dann später vielleicht auch einen Adresskopf korrekt ausgeben können, brauchen wir dazu eine eigene Spalte. Das ist eine Erweiterung, die ich in letzter Zeit bei sehr vielen meiner Kunden vorgenommen habe. Wir sehen hier einerseits Kunden, also Personal, mit Kundennummern, Nachname, Vorname und eben diesem akademischen Grad ausgegeben. Fügen Sie nun diese zwei neuen Spalten beziehungsweise diese Spalte und zwei unterschiedliche Tabellen mit einer Länge von 15 Zeichen als Text ein. Die Eingabe für diese Spalte ist natürlich nicht verpflichtend, da ja nicht jeder Kunde oder Mitarbeiter einen akademischen Grad aufweisen muss. Pausieren Sie nun das Video und lösen Sie die Aufgabe. Wenn Sie damit fertig sind, fahren Sie mit dem Video fort *und sehen Sie sich meine Musterlösung an. Betrachten wir nun diese Lösung als erstes mit dem MySQL-Server. Um eine neue Spalte für eine Tabelle hinzuzufügen, brauchen wir die Alter-Table-Anweisung. Mit dem Zusatz "ADD" fügen wir die neue Spalte hinzu. Ich habe dieser Spalte den Namen "akadgrad2" gegeben, da können Sie natürlich argumentieren, dass das nicht besonders kreativ ist, ich habe es aber so gemacht und füge den hinzu. Der Zusatz "NOT NULL" muss hier unterbleiben, da wir ja gesagt haben, dass die Eingabe nicht verpflichtend ist. Generell wird eine neue Spalte immer hinten ergänzt, sie kann bei einer bestehenden Tabelle nicht irgendwo dazwischen eine Spalte einfügen, das heißt, ich muss dann halt bei meinem Select-Statement beim Auslesen der Daten darauf Rücksicht nehmen, wenn ich die Spalte weiter vorne ausgegeben haben möchte. Ich führe einmal die erste Anweisung für die Kundentabelle aus. Wir sehen, das hat funktioniert. Und die gleiche Anweisung, sie sehen, eigentlich nur der Name der Tabelle ist hier anders, gleiche Anweisung für die Personaltabelle. Nun betrachten wir das Ergebnis. In meinem "SELECT" habe ich diese Spalte hier schon mit aufgenommen. Momentan steht hier noch nirgends ein Wert drin. Ich habe hier zwei Update-Statements vorbereitet, um hier exemplarisch bei zwei Kunden etwas einzutragen. Bei der Kundennummer "125" einen Bachelor of Science und der Master of Science bei der Kundennummer "138". Auch diese zwei Anweisungen führe ich jetzt hier aus. Das Update hat funktioniert. Ich kontrolliere das Ergebnis. Und nun sehen wir, ich mache das jetzt kurz aus hier unten, dass wir das besser sehen, einmal den Bachelor of Science und hier einmal den Master of Science in dieser neuen Spalte. Das Gleiche wiederhole ich jetzt hier einmal für die Personaltabelle, auch hier habe ich zwei Statements vorbereitet, die ich nun gemeinsam ausführe. Und ich bestätige das Einfügen mit einem "COMMIT", bevor wir uns das Ergebnis jetzt hier ausgeben, in dem Fall aus der Personaltabelle. Auch hier habe ich diese zwei Einträge nun vor mir. Also, wir können mit einem "ALTER TABLE", "ADD" jederzeit neue Spalten, allerdings nur von der Struktur der Tabelle her hinten anfügen. Das heißt, wir sehen, dass, wenn ich jetzt hier diese Anweisung kopiere und statt der Angabe der Spalten ein "SELECT * " verwende, ich dann den akademischen Grad jetzt hier habe, sprich den akademischen Grad 2, den "akadgrad2", genau hinten angefügt. Das lässt sich leider nicht anders machen. Um eine dieser Spalten oder auch eine andere wieder zu entfernen, verwende ich die Anweisung "DROP COLUMN", "ALTER TABLE" "CROP COLUMN", Name der Spalte. Auf diese Art und Weise könnte ich eine solche wieder entfernen. Wenn wir uns dieselbe Aufgabenstellung mit Oracle ansehen, sehen wir, dass eigentlich kein Unterschied von der Syntax her besteht. Ich habe hier vorläufig einmal zum Vergleich die Kunden- und Personalinhalte ausgegeben, mit Nachname, Vorname und dem vorhandenen akademischen Grad und habe jetzt hier die entsprechende Anweisung vorbereitet. Der einzige Unterschied ist der Datentyp dass die hier "varchar2" heißen, würde er auch dann verwenden, wenn ich den Zweier nicht hinschreiben würde. Ich führe die erste Anweisung aus und die zweite auch. Es unterscheidet sich hier sonst nicht von dem, was wir unter MySQL gesehen haben, und dann auch hier das Ergebnis nun kontrollieren. Auch hier werden diese Spalten am Ende angefügt, nur weil ich es hier im "SELECT" halt so ausgegeben habe, sehe ich sie direkt dahinter. Ich habe hier mein zwei vorbereiteten Updates, die ich jetzt ausführe und jetzt kontrollieren wir das Ergebnis bei den Kunden. Hier einmal und hier noch einmal, haben wir einen Eintrag. Dasselbe können wir natürlich auch für die Personaltabelle umsetzen. Auch hier füge ich diese zwei Datensätze ein und nachdem ich das Ganze mit einem "COMMIT" festgeschrieben habe, kontrolliere ich hier das Ergebnis. Auch die Anweisung zum Entfernen dieser Spalten ist dieselbe beim Oracle-Server. "ALTER TABLE", "DROP COLUMN" und schon wäre , wenn ich diese Anweisungen ausführe, die Spalte wieder weg. Sehr rasch können wir uns das Ergebnis hier beim Microsoft SQL Server ansehen, denn die Lösung ist eigentlich ident zu dem, was wir bisher gesehen haben, auch hier die Inhalte der beiden Tabellen "kunden" und "personal". Hier die entsprechenden "ALTER TABLE"-Kommandos in der exakt gleichen Syntax, ich kann sie also ohne große Erklärung gleich ausführen. Auch hier habe ich jetzt die entsprechenden Statements und wir sehen jetzt, die Spalte gibt es schon. Einen kleinen Tipp an dieser Stelle zur Benutzung des Editors: Der akademische Grad, den wir gerade angefügt haben, der Editor kennt die Spalte nicht. Da bekomme ich dann gesagt, das ist ein "Ungültiger Spaltenname". Beim Ausführen funktioniert das zwar, aber damit diese Wellenlinie verschwindet, könnten wir hier unter "Bearbeiten" und "IntelliSense" den Befehl "Lokalen Cache aktualisieren" oder "STRG+Umschalt+R", ausführen, dann wird sozusagen dieser "IntelliSense-Cache" aktualisiert und das System weiß jetzt, dass es diese Spalten gibt. Und damit kann ich jetzt so eine Fehlerunterstreichung, so eine rote Wellenlinie, gleich einmal entfernen. Ich führe die vorbereiteten Updates aus. und damit haben wir jetzt hier die entsprechenden Einträge in dieser neuen Spalte vorgenommen. Und dasselbe nun natürlich auch noch nach der Kunden- für die Personaltabelle. Auch hier kontrollieren wir das Ergebnis. Und es hat funktioniert. Also, hier einmal sehr angenehm, weil wir keine Syntaxunterschiede zwischen den einzelnen Datenbank-Managementsystemen feststellen können, auch beim Entfernen der Spalten wieder die gleiche Syntax, "ALTER TABLE", "DROP COLUMN", um eine Spalte zu löschen. "ALTER TABLE", "ADD COLUMN", um eine solche zu ergänzen.

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!