SQLShack

Im vorherigen Artikel haben wir zwei Tabellen erstellt, und jetzt können wir den Befehl SQL INSERT INTO TABLE verwenden und diese Tabellen mit Daten füllen. Um dies zu tun, bereiten wir Anweisungen in Excel vor und fügen diese Anweisungen dann in SQL Server ein und führen sie aus. Wir werden auch den Inhalt beider Tabellen vor und nach diesen Befehlen mit der SELECT-Anweisung überprüfen. Also, fangen wir an.

INSERT INTO TABLE Anweisung

Es macht keinen Sinn, Datenbankstrukturen zu erstellen und keine Daten in der Datenbank zu haben. Die INSERT INTO TABLE-Anweisung ist die, die wir verwenden werden, um dieses Problem zu lösen. Es ist eine der vier wichtigen SQL DML-Anweisungen (Data Manipulation Language) SELECT … FROM , INSERT INTO TABLE, UPDATE … SET und DELETE FROM… Die vollständige Syntax ist ziemlich komplex, da INSERT INTO auch eine sehr komplexe Anweisung sein kann. Bitte schauen Sie sich hier die vollständige Syntax von T-SQL INSERT INTO TABLE an .

In diesem Artikel verwenden wir eine vereinfachte, aber auch gebräuchlichste Syntax:

INSERT INTO table_name (column_list) VALUES (column_values);

In einer solchen INSERT INTO-Anweisung müssen Sie den Tabellennamen definieren, in den Sie Daten einfügen, alle Spalten auflisten (vielleicht verwenden Sie alle, aber vielleicht nur einige) und dann alle Werte auflisten. Beachten Sie, dass Spaltenwerte mit der Definition des Spaltentyps übereinstimmen sollten (z. B. können Sie keinen Textwert in die numerische Spalte / das numerische Attribut einfügen).

Wenn Sie alle Werte in die Tabelle einfügen, müssen Sie nicht alle Spalten nach dem Tabellennamen auflisten und Sie können eine noch vereinfachte Syntax verwenden:

INSERT INTO table_name VALUES (column_values);

Ich persönlich bevorzuge es, alle Spaltennamen aufzulisten, da dieser Ansatz auch dann funktionieren würde, wenn wir der vorhandenen Tabelle neue Spalten hinzufügen.

  • Hinweis: Die INSERT INTO TABLE-Anweisung kann so geschrieben werden, dass mehrere Zeilen mit 1 Anweisung eingefügt oder sogar mit der SELECT-Anweisung kombiniert werden.

Die vereinfachte Syntax für einen solchen Fall, in dem INSERT- und SELECT-Anweisungen kombiniert werden, ist unten angegeben:

INSERT INTO destination_table (column_list, …)
SELECT column_list
FROM source_table
WHERE condition;

INSERT INTO TABLE example

Bevor wir etwas tun, überprüfen wir, was in unseren Tabellen gespeichert ist. Dies ist das Modell, das wir im vorherigen Artikel erstellt haben. Sie können sehen, dass wir eine Tabelle haben, in der wir Daten zu Ländern und eine andere zu Städten speichern. Sie sind auch miteinander verwandt, aber wir werden darüber im folgenden Artikel sprechen:

 IN TABELLE EINFÜGEN - Datenmodell

 INSERT INTO TABLE - data model

Um den Inhalt dieser beiden Tabellen zu überprüfen, verwenden wir zwei einfache SELECT-Anweisungen:

1
2

WÄHLEN SIE * AUS Land;
WÄHLEN SIE * AUS Stadt;

Obwohl SELECT nicht das Thema dieses Artikels ist, sollte erwähnt werden, dass die grundlegende Syntax lautet:

SELECT 1 or more attributes FROM table;

Der Stern (*) nach SELECT repräsentiert, dass wir die Werte aller Attribute / Spalten aus dieser Tabelle im Abfrageergebnis anzeigen möchten.

Diese beiden Tabellen enthalten erwartungsgemäß nichts, und SQL Server gibt das Ergebnis zurück, wie in der Abbildung unten gezeigt. Anweisungen geben die Namen der Spalten aus den Tabellen zurück, die wir in der SELECT-Abfrage verwendet haben, aber unter diesen Spaltennamen befindet sich nichts. Sie können dies als leere Excel-Tabelle mit definierten Spaltennamen (Überschriften) betrachten. Sie wissen, welche Art von Daten dort sein sollten, aber es gibt nichts:

Das müssen wir ändern.

Zuerst füllen wir die Country-Tabelle mit den folgenden INSERT INTO TABLE-Anweisungen:

1
2
3
4
5

INSERT INTO country (country_name, country_name_eng, country_code) VALUES (‚Deutschland‘, ‚Germany‘, ‚DEU‘);
INSERT INTO country (country_name, country_name_eng, country_code) VALUES (‚Srbija‘, ‚Serbia‘, ‚SRB‘);
INSERT INTO country (country_name, country_name_eng, country_code) VALUES ( ‚Hrvatska‘, ‚Kroatien‘, ‚HRV‘);
INSERT INTO country (country_name, country_name_eng, country_code) VALUES (‚Vereinigte Staaten von Amerika‘, ‚Vereinigte Staaten von Amerika‘, ‚USA‘);
INSERT INTO country (country_name, country_name_eng, country_code) VALUES (‚Polska‘, ‚Poland‘, ‚POL‘);

Daten für fünf Länder wurden erfolgreich eingefügt. Das Ergebnis ist in der Abbildung unten dargestellt. Da wir 5 INSERT INTO TABLE Anweisungen hatten, haben wir 1 „(1 Zeile betroffen)“ Nachricht für jeden dieser fünf Befehle im Abschnitt „Nachrichten:

IN TABELLE EINFÜGEN - Land

Bitte beachten Sie, dass alle Werte (nach den WERTEN) in der gleichen Reihenfolge angeordnet wurden, in der wir die Spalten aufgelistet haben (nach INSERT INTO country). Alle drei Werte sind Texte. Die Abfrage würde auch funktionieren, wenn wir sie nicht richtig angeordnet hätten, da alle denselben Datentyp (Text) haben, die Daten jedoch in den falschen Spalten gespeichert würden. In diesem Fall hätten wir einen semantischen Fehler.

Das nächste, was wir tun müssen, ist, die Stadttabelle zu füllen. Wir tun dies mit den folgenden Anweisungen:

1
2
3
4
5
6

INSERT INTO city (city_name, lat, long, country_id) WERTE (‚Berlin‘, 52.520008, 13.404954, 1);
INSERT INTO city (city_name, lat, long, country_id) WERTE (‚)‘, 44.787197, 20.457273, 2);
INSERT INTO city (city_name, lat, long, country_id) WERTE (‚)‘, 45.815399, 15.966568, 3);
INSERT INTO city (city_name, lat, long, country_id) WERTE (‚New York‘, 40.73061, -73.935242, 4);
INSERT INTO city (city_name, lat, long, country_id) WERTE (‚Los Angeles‘, 34.052235, -118.243683, 4);
INSERT INTO city (city_name, lat, long, country_id) WERTE (‚)‘, 52.237049, 21.017532, 5);

Nach der Ausführung dieser Anweisungen war dies das Ergebnis. Wie erwartet wurden 6 Zeilen hinzugefügt. Und noch einmal haben wir 1 Nachricht für jede Einfügung im Abschnitt Nachrichten:

City

In diesem Fall hätten wir ein Problem, wenn wir Werte nicht auf die gleiche Weise aufgelistet hätten, sondern Spalten aufgelistet hätten, weil ihre Datentypen nicht gleich sind (sie sind – in der Reihenfolge: Text, Dezimalzahl, Dezimalzahl, Ganzzahl). Diese Art von Fehler wird als Syntaxfehler bezeichnet, und das DBMS selbst würde verhindern, dass die Abfrage überhaupt ausgeführt wird.

SELECT – Check what was inserted

Jetzt überprüfen wir noch einmal, was in unseren Tabellen gespeichert ist. Wir verwenden die gleichen zwei SELECT-Anweisungen, die wir zuvor verwendet haben:

1
2

WÄHLEN SIE * AUS Land;
WÄHLEN SIE * AUS Stadt;

Das Ergebnis ist in der Abbildung unten dargestellt. Bitte beachten Sie, dass wir nach dem Ausführen von Abfragen jetzt die Abschnitte Ergebnisse und Nachrichten unter Abfragen haben:

 SELECT-Anweisungen

Wir können daraus schließen, dass beide Tabellen in unserer Datenbank Daten enthalten, und jetzt sind wir bereit, mit etwas viel Coolerem zu „spielen“.

Mit Excel IN TABELLE EINFÜGEN

In vielen Fällen müssen Sie mehrere SQL-Anweisungen basierend auf dem Ihnen bereitgestellten Dataset ausführen. Dies gilt nicht nur für die Anweisung INSERT INTO TABLE, sondern auch für die Anweisungen UPDATE und DELETE. Es macht keinen Sinn, diese Anweisungen manuell einzugeben, aber Sie sollten lieber einen intelligenteren Ansatz wählen – bereiten Sie Formeln (oder ein Skript) vor, die diesen Teil automatisieren. In solchen Situationen bevorzuge ich Excel und Formeln.

Hinweis: Persönlich finde ich Excel im Kontext von Datenbanken sehr nützlich, wenn ich mehrere Anweisungen erstellen und Ergebnisse präsentieren und / oder Dashboards erstellen muss.

Schauen wir uns diese Formeln an:

 länder Excel

Die Formel zum Einfügen des ersten Landes (Deutschland) lautet:

1
=“ INSERT INTO country (country_name, country_name_eng, country_code) WERTE (‚“ & B2 & „‚, ‚“ & C2 & „‚, ‚“ & D2 & „‚);“

 städte Excel

Die Formel zum Einfügen der ersten Stadt (Berlin) lautet:

1
=“ INSERT INTO city (city_name, lat, long, country_id) WERTE (‚“ & B2 & „‚, “ & C2 & „, “ & D2 & „, “ & E2 & „);“

Fühlen Sie sich frei, diese Formeln zu verwenden, um Ihre Aufgaben zu automatisieren. Wir werden später einen ähnlichen Ansatz verwenden, wenn wir mehrere UPDATE- und DELETE-Anweisungen ausführen (und sogar beim Erstellen von SELECT-Anweisungen).

Fazit

In diesem Artikel haben wir eine der vier wichtigsten SQL–Anweisungen behandelt -INSERT INTO TABLE Anweisung. Wir haben es verwendet, um Tabellen zu füllen, die im vorherigen Artikel erstellt wurden. Dies war eine Voraussetzung, um zu intelligenteren Dingen überzugehen – wie der Datenbanktheorie und vor allem der Rückgabe von Ergebnissen aus unserer Datenbank.

Im kommenden Artikel werden wir über den Primärschlüssel sprechen – was er ist und warum er in den Datenbanken wichtig ist.

Inhaltsverzeichnis

SQL lernen: DATENBANK ERSTELLEN & Tabellenoperationen ERSTELLEN

SQL lernen: IN TABELLE EINFÜGEN

SQL lernen: Primärschlüssel

SQL lernen: Fremdschlüssel

SQL lernen: SELECT-Anweisung

SQL lernen: INNER JOIN vs LEFT JOIN

SQL lernen: SQL-Skripte

SQL lernen: Arten von Beziehungen

SQL lernen: Join multiple tables

SQL lernen: Aggregatfunktionen

SQL lernen: So schreiben Sie eine komplexe SELECT-Abfrage

SQL lernen: Die Datenbank INFORMATION_SCHEMA

SQL lernen: SQL-Datentypen

SQL lernen: Mengenlehre

SQL lernen: Benutzerdefinierte Funktionen

SQL lernen: Benutzerdefinierte gespeicherte Prozeduren

SQL lernen: SQL-Ansichten

SQL lernen: SQL-Trigger

SQL lernen: SQL-Abfragen üben

SQL lernen: Beispiele für SQL-Abfragen

Erfahren Sie SQL: Erstellen Sie einen Bericht manuell mit SQL-Abfragen

Erfahren Sie SQL: SQL Server-Datums- und Zeitfunktionen

Erfahren Sie SQL: Erstellen Sie SQL Server-Berichte mit Datums- und Zeitfunktionen

Erfahren Sie SQL: SQL Server-Pivot-Tabellen

SQL lernen: SQL Server-Export nach Excel

SQL lernen: Einführung in SQL Server-Schleifen

SQL lernen: SQL Server-Cursor

SQL lernen: SQL-Best Practices zum Löschen und Aktualisieren von Daten

SQL lernen: Namenskonventionen

SQL lernen: SQL-bezogene Jobs

SQL lernen: Nicht-Equi-Joins in SQL Server

SQL lernen: SQL Injection

SQL lernen: Dynamisches SQL

  • Autor
  • Neueste Beiträge
 Emil Drkusic
Emil ist ein Datenbankprofi mit mehr als 10 Jahren Erfahrung in allem, was mit Datenbanken zu tun hat. Im Laufe der Jahre war er in der IT- und Finanzbranche tätig und arbeitet heute als Freiberufler.
Seine früheren und gegenwärtigen Engagements reichen von Datenbankdesign und -codierung bis hin zu Lehre, Beratung und Schreiben über Datenbanken. Auch nicht zu vergessen, BI, Algorithmen erstellen, Schach, Philatelie, 2 Hunde, 2 Katzen, 1 Frau, 1 Baby…
Sie finden ihn auf LinkedIn
Alle Beiträge von Emil Drmusic anzeigen

 Emil Drkusic
Neueste Beiträge von Emil Drkusic (alle anzeigen)
  • SQL lernen: Dynamisches SQL – 3. März 2021
  • SQL lernen: SQL Injection – 2. November 2020
  • SQL lernen: Nicht-Equi-Joins in SQL Server – September 29, 2020

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

More: