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 1: Die Sprache erlernen

Werte einfügen mit Zielspaltenangabe

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Geben Sie beim Einfügen neuer Datensätze gezielt die Zielspalten an. In diesem Video sehen Sie, welche Vorteile und Annehmlichkeiten Sie durch diese Variante gewinnen können. Lernen Sie aber auch die Fallen kennen, denen Sie besser aus dem Weg gehen sollten.

Transkript

Wann Sie bei einem "INSERT" besser die Zielspalten angeben und wie das funktioniert, zeige ich Ihnen in diesem Video. Wir möchten hier zum Beispiel in die Personaltabelle einen neuen Mitarbeiter eintragen. Wenn wir die Zielspalten nicht angeben, müssen wir ja für jede Spalte einen Wert bereitstellen. Was bedeutet das, wenn wir jetzt eine Tabelle verwenden, die sehr viele Spalten hat? Wir müssen hier genau aufpassen, damit wir exakt die richtige Anzahl an Werten auch bereit stellen. Deshalb habe ich mir auch hier im Objekt-Explorer die Spalten zur Anzeige gebracht, damit ich hier jetzt wenigstens ein wenig eine Kontrolle habe. Ich fange also mit der Personalnummer an. Zum Beispiel vergebe ich "999", weil von dieser weiß ich, dass sie noch nicht vergeben ist. Als Nachname, ich bin heute einmal kreativ, also nehme ich den "Mustermann". Vorname den "Max". Als nächstes kommt der Titel. Max Mustermann hat jetzt weder einen Titel, noch einen akademischen Grad. Wenn ich die Zielspalten nicht angebe, dann muss ich hier explizit ein NULL eintragen. Ich kann nicht einfach zum Beispiel hier zwei Mal mit einem Komma weiter machen. Das würde einen Fehler erzeugen. Das heißt, ich muss explizit nichts eintragen, indem ich hier zwei Mal "NULL" für den Titel und den akademischen Grad definiere. Dann kommt Geschlecht, hier verwende ich "2" als Kürzel für männlich. Abteilung nehme ich den "EK", den Einkauf. Vorgesetzter "101", die Personalnummer. Sozialversicherungsnummer weiß ich jetzt noch nicht, also werde ich hier auch nichts eintragen. Jetzt muss ich natürlich hier immer kontrollieren, ob ich hier etwas eintragen muss. Sozialversicherungsnummer ist NULL-Level, das heißt, ich kann das leer lassen, das ist OK. Dann das Geburtsdatum, nehmen wir irgendein Datum her: "1980/01/05", den ersten Mai. Dann den Familienstand, wissen wir nicht, lassen wir leer, "NULL". Die Straße, Sie merken schon, wenn Sie mir hier zusehen, dass das Ganze sehr mühsam und sehr umständlich wirkt, die "Testgasse 7" in "A-8010 Graz". Telefonnummer möchte ich noch nicht erfassen, also "NULL". Mobilnummer ebenso nicht. Dann die Bankdaten auch nicht, "NULL". Die Bankleitzahl "NULL", Kontonummer ebenso "NULL". Eintrittsdatum ist heute, also verwende ich die Funktion "SYSDATETIME" z.B. und Austritt natürlich "NULL", gibt es noch nicht. Hinweis gibt es auch keinen. Und Gehalt soll es "2.500 Euro" geben. Ich hoffe, ich habe mich in der Reihenfolge nicht vertan. Wenn das der Fall ist, dann sollte das Einfügen hier funktionieren. Ich führe die Anweisung aus, und das hat auch tatsächlich funktioniert, ich habe diesen einen Datensatz hier eingefügt. Aber natürlich war das Ganze jetzt nicht sehr benutzerfreundlich. Sie sehen, ich habe sehr viele NULL-Werte hier definiert bzw. definieren müssen. Das heißt, je mehr Spalten eine Tabelle aufweist, desto effizienter ist es, bei der Eingabe die Zielspalten anzugeben. Und das wollen wir jetzt auch tun. "INSERT into wave.Personal". Und jetzt gebe ich hier in der INSERT-Klausel in Klammer meine Zielspalten an. Z.B. die Personalnummer möchte ich befüllen, ich möchte den Vornamen befüllen, den Nachnamen. Sie merken schon, ich habe jetzt die Reihenfolge dieser Spalten auch nicht so definiert, wie sie in der Tabellenstruktur definiert sind. Das habe ich absichtlich gemacht und das darf ich auch tun. Wenn ich die Zielspalten angebe, kann ich es in der Reihenfolge angeben, wie ich es möchte. Ich möchte dann als nächstes die Abteilung erfassen, ich möchte den Vorgesetzten erfassen, ich möchte was noch erfassen? Die Adresse, das heißt die Straße. Ich gehe jetzt in eine neue Zeile. Das Länderkennzeichen, die Postleitzahl und den Ort. Worauf muss ich jetzt achten, wenn ich auf diese Art und Weise vorgehe? Ich kann all jene Spalten weg lassen, nicht angeben, die NULL-Level sind. Denn diese bekommen dann den Wert "NULL". Das heißt, überall hier, wo ich explizit ein "NULL" eingetragen habe, die kann ich jetzt weg lassen, wenn ich hier die Zielspalten angebe. Alle Spalten, die nicht angegeben werden, bleiben entweder leer, oder, wenn sie einen Standardwert haben, wird ein Standardwert definiert. Ich kontrolliere jetzt noch einmal, ob es hier noch eine Spalte gibt, die ich befüllen muss. Aha, ja Gehalt ist als "NOT NULL" definiert, D.h. das werde ich natürlich auch dann eingeben. Kontrollieren wir noch etwas, ob noch irgendwo eine Spalte als "NOT NULL"-- ich habe hier natürlich in dieser Beispiel-Datenbank nicht zu viele Spalten als "NOT NULL" definiert, damit es hier leichter funktioniert. In der Praxis werden wahrscheinlich mehr Spalten als "NOT NULL" definiert. Geschlecht muss ich auch noch eingeben, das ist auch als "NOT NULL" definiert. Beziehungsweise ich lasse es jetzt einmal bewusst weg, damit wir sehen, was in diesem Fall jetzt passiert. In der VALUES-Klausel muss ich mich jetzt ja nun an diese Reihenfolge halten, so wie ich es hier eingegeben habe. Also ich fange mit der Personalnummer an, "998". Vorname "Waltraud". Nachname "Musterfrau". Abteilung "Marketing". Vorgesetzter ebenso Personalnummer "101". Straße "Mustergasse 99". Jetzt kommt das Länderkennzeichen "D", Postleitzahl "89000 München". Und als Gehalt "3.400 Euro". Prinzipiell habe ich, glaube ich, jetzt die Reihenfolge so gewählt und die Anzahl, wie ich es hier in der INSERT-Klausel definiert habe. Und ich führe jetzt diese Anweisung aus. Und wie wir erwartet haben, bekomme ich jetzt eine Fehlermeldung. Der Wert "NULL" kann in die Geschlechts-Spalte nicht eingefügt werden. Sie dürfen also Spalten, die als "NOT NULL" definiert sind, nicht weg lassen, außer sie haben einen Standardwert. Das heißt, ich muss jetzt zusätzlich hier noch das Geschlecht definieren und für das Geschlecht natürlich auch einen Wert definieren, in dem Fall "1" für weiblich. Nun versuche ich das Ganze ein weiteres Mal. Ich führe die Anweisung aus und jetzt hat das Ganze funktioniert. Betrachten wir uns also das Ergebnis: "WHERE Personalnummer = 998". Unser Datensatz ist eingefügt worden, und wenn wir uns so die einzelnen Werte hier ansehen, dann werden wir sehen, dass es auch Werte gibt, die wir nicht eingetragen haben, z.B. das Eintrittsdatum. Ich habe Ihnen schon vorher erwähnt, dass alle Spalten, die wir nicht angeben einen NULL-Wert bekommen, außer es ist ein Standardwert definiert. Für das Eintrittsdatum ist ein solcher definiert und deshalb ist dieser hier vergeben worden. So eine Spalte dürfen Sie also auch dann weg lassen, wenn Sie als "NOT NULL" definiert ist. Denn sie bekommt ja den Standardwert und damit einen gültigen Wert in der Datenbank. Verwenden Sie also in der Praxis beim Einfügen die Variante mit der Zielspalten-Angabe, wenn die Tabelle, in die Sie einen Datensatz einfügen, sehr viele Spalten enthält. Das ist wesentlich übersichtlicher. Alle Spalten, die Sie nicht befüllen möchten, oder die mit einem Standardwert belegt sind, können Sie weg lassen. Sie geben dazu in der INSERT-Klausel die Zielspalten an, die Sie befüllen möchten, wobei Sie die Reihenfolge hier beliebig definieren können. In der VALUES-Klausel müssen Sie sich dann an die hier vorgegebene Reihenfolge halten, wenn Sie einen neuen Datensatz einfügen möchten.

SQL Grundkurs 1: Die Sprache erlernen

Arbeiten Sie sich in die Grundlagen der Datenbanksprache SQL am Beispiel von Microsoft SQL Server, Oracle und MySQL ein und lassen Sie sich die praktische Nutzung erklären.

14 Std. 40 min (112 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

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!