Einführung in Insert in MySQL

Das Hauptziel eines Datenbanksystems besteht darin, Daten in Tabellen zu speichern. Um die Funktionalität in der Datenbank zu definieren, haben wir verschiedene Arten von SQL-Befehlen. In diesem Thema lernen wir Insert in MySQL kennen.

SQL-Befehle können in folgende Kategorien unterteilt werden:

  • DDL (Datendefinitionssprache)
  • DML (Datenbearbeitungssprache)
  • DQL (Datenabfragesprache)
  • DCL (Data Control Language)
  • TCL (Transaction Control Language)

In diesem Artikel konzentrieren wir uns hauptsächlich auf DML. Wie wir den Namen Data Manipulation language sehen können, benötigen wir nach dem Erstellen der Tabelle / Datenbank DML-Befehle, um etwas zu manipulieren. Die Verwendung dieser Befehle hat den Vorteil, dass wir im Falle falscher Änderungen einen Rollback durchführen bzw. den Rollback rückgängig machen können.

Im Folgenden sind die Befehle in DML aufgeführt:

1. INSERT: Zum Einfügen neuer Zeilen in die Tabelle.

INSERT into employee
Values(101, 'abcd');

2. LÖSCHEN: Dient zum Löschen einer einzelnen Zeile oder ganzer Datensätze in einer Tabelle.

DELETE TABLE employee;

3. UPDATE: Dient zum Aktualisieren vorhandener Datensätze in einer Tabelle.

UPDATE employee
SET col1 = new_col
WHERE condition;

Syntax des Einfügebefehls in MySQL

Wir können die INSERT INTO-Anweisung auf zwei Arten schreiben.

Weg Nr. 1

INSERT INTO table_name
VALUES (value1, value2, ….);

Weg Nr. 2

INSERT INTO table_name (column1, column2, …….)
VALUES (value1, value2, ….);

  • INSERT INTO table_name ist der Befehl, der eine neue Zeile in eine Tabelle mit dem Namen "table_name" in der MySQL-Datenbank einfügt.
  • (column_1, column_2, …) sind die Spaltennamen, in denen ein neuer Datensatz hinzugefügt wird.
  • VALUES (value_1, value_2, …) gibt die Werte an, die in die neue Zeile eingefügt werden sollen.

Beim Hinzufügen neuer Datensätze müssen wir beim Erstellen der Tabellenstruktur auf die definierten Datentypen achten.

  • Zeichenfolge : Alle Zeichenfolgenwerte sollten in einfache Anführungszeichen eingeschlossen werden.
  • Numerisch: Numerische Werte dürfen nicht in einfache oder doppelte Anführungszeichen eingeschlossen werden.
  • Datum: Diese Datentypen sollten in einfachen Anführungszeichen mit dem Format "JJJJ-MM-TT" stehen.

Nehmen wir an, es gibt eine 'Mitarbeiter'-Tabelle, die aus den folgenden Attributen besteht:

Emp_id Emp_name Telefon Email Abteilung Manager Stadt
1001Vinay9876543219CSRSudhirBangalore
1002Raaj9764527848ESStephenHyderabad
1003Sakti9567382784AutomotiveVedBhubaneswar

Wenn wir Werte für alle Spalten einer Tabelle hinzufügen, müssen wir die Spaltennamen in der Abfrage nicht angeben, aber wir müssen sicherstellen, dass unser neuer Datensatz der in der Tabelle definierten Reihenfolge der Spalten folgt.

INSERT INTO employee
VALUES (1004, 'Ravi', 9856478398, ' ', 'marketing', 'shiv', 'kolkata');

Wenn wir nicht alle Werte von Spalten haben und einige von ihnen einfügen, müssen wir die Spaltennamen in der Abfrage angeben.

INSERT INTO employee (emp_id, emp_name, phone, email, manager)
VALUES (1005, 'sam', 9856478398, ' ', 'shivankar');

Implementierung des Einfügebefehls in MySQL

Angenommen, wir haben die folgenden Listen mit neuen Datensätzen, die zum Hinzufügen zur STUDENT-Datenbanktabelle erforderlich sind.

Roll_noVornameFamilienname, NachnameStandardTelefonProzentsatzStadt
1SandeepKumar10987645672689, 33Cuttack
2Shyam976Bhubaneswar
3SaktiNaik646376577676
4Sid89864876986Kolkata
5VinayKumar1092

Wir werden diese Zeilen einzeln in die Datenbank einfügen.

  • Beginnen wir mit Sandeep. Hier sind 'Roll_no', 'Standard', 'Phone' und 'Percentage' numerische Felder, daher werden die Werte in dieser Spalte ohne Anführungszeichen eingefügt.

INSERT INTO student
VALUES (1, 'Sandeep', 'Kumar', 10, 9876456726, 89.33, 'Cuttack');

Anmerkung: Da wir Werte für alle Spalten der Schülertabelle haben, müssen wir den Spaltennamen bei Verwendung des Befehls INSERT nicht angeben. Wir müssen jedoch sicherstellen, dass unser Wert der Reihenfolge der Spalten in der Tabelle entspricht.

  • Im Fall von Shyam Record können wir feststellen, dass viele Werte fehlen. Hier müssen wir also die Spaltennamen angeben, in die wir die Werte einfügen möchten.

INSERT INTO student (Roll_no, First_name, Standard, Percentage, City)
VALUES (2, 'Shyam', 9, 76, 'Bhubaneswar');

Hinweis: In diesem Datensatz sind nicht die Werte jeder Spalte enthalten. Aus diesem Grund müssen wir alle Spaltennamen angeben, in die wir unsere Werte einfügen möchten, und in der Reihenfolge dieser Spaltennamen müssen wir auch Werte angeben.

INSERT INTO student (Roll_no, First_name, Last_name, Phone, Percentage)
VALUES (3, 'Sakti', 'naik', 6463765776, 76);

INSERT INTO student (Roll_no, First_name, Standard, Phone, City)
VALUES (4, 'Sid', 8, 9864876986, 'Kolkata');

INSERT INTO student (Roll_no, First_name, Last_name, standard, Percentage)
VALUES (5, 'Vinay', 'Kumar', 10, 92);

Das Ändern der Reihenfolge der Spalten und des Werts hat keine Auswirkungen auf die INSERT-Abfrage, da der richtige Wert nicht der richtigen Spalte zugeordnet werden kann. Daher können Probleme wie das Einfügen eines numerischen Werts in eine Zeichenfolge oder umgekehrt auftreten.

In allen obigen Abfragen fehlen so viele Felder wie Nachname, Telefon, Ort. In solchen Fällen fügt MySQL standardmäßig NULL-Werte in die Spalten ein, die wir in den Abfragen übersprungen haben.

Einfügen in eine Tabelle aus einer anderen Tabelle

Wenn es zwei ähnliche Tabellen gibt und wir Daten von Tabelle_1 bis Tabelle_2 direkt einfügen möchten, um manuelle Arbeit zu vermeiden, können wir auch eine andere Art von INSERT-Abfrage verwenden. In einem solchen Fall müssen wir einen SELECT-Befehl mit dem INSERT-Befehl verwenden. Grundsätzlich gehört der Befehl SELECT zu DQL (Data Query Language), mit dem Daten abgerufen werden. Der Befehl select kann auch mit vielen Arten von Klauseln verwendet werden.

Die grundlegende Syntax zum Einfügen von Datensätzen in eine Tabelle aus einer anderen lautet wie folgt:

INSERT INTO table_1 SELECT * FROM table_2;

Beispiel

Sehen wir uns das folgende Beispiel an:

1. Tabelle bestellen

Best.-NrAuftragsabteilungKundennameContact_noMengeOrt
8465637MöbelPeter86598767661000Delhi
9473636VerzierungenAlex9863769898800Mumbai

2. Order_archive-Tabelle

Best.-NrAuftragsabteilungKundennameContact_noMengeOrt

Hier haben wir 2 Tabellen mit den Namen Order und Order_archive. Wenn wir alle Datensätze aus der Order-Tabelle in das Order_archive verschieben, kann der folgende Code die Aufgabe ausführen:

INSERT INTO Order_archive SELECT * FROM Order;

Wenn wir einige bestimmte Spalten aus der Order-Tabelle in das Order_archive verschieben wollen, dann:

INSERT INTO Order_archive (Order_no, Order_department, Contact_no, Quantity)
SELECT Order_no, Order_department, Contact_no, Quantity FROM Order;

Fazit

Der Befehl Einfügen ist sehr nützlich, da er vom Zeitpunkt der Tabellenerstellung bis zu jedem einzelnen Zeitpunkt ausgeführt wird, an dem der vorhandenen Tabelle weitere Datensätze hinzugefügt werden. Wir können die folgenden Punkte aus diesem Artikel zusammenfassen:

  • Mit dem Befehl INSERT werden der Tabelle neue Daten hinzugefügt.
  • Das Datum und der Zeichenfolgewert sollten in einem einfachen Anführungszeichen stehen.
  • Der numerische Wert sollte nicht in Anführungszeichen stehen.
  • Beim Einfügen von Datensätzen in bestimmte Spalten sollten der Spaltenname und der Wert in derselben Reihenfolge zugeordnet werden.
  • Dieser Befehl kann auch zum Einfügen von Datensätzen aus einer Tabelle in eine andere Tabelle verwendet werden.

Empfohlene Artikel

Dies ist eine Anleitung zum Einfügen in MySQL. Hier diskutieren wir die Implementierung des Befehls Einfügen in MySQL zusammen mit entsprechenden Beispielen und Syntax. Sie können sich auch den folgenden Artikel ansehen.

  1. Was ist das MySQL-Schema?
  2. MySQL String Funktionen
  3. Was ist MySQL?
  4. So installieren Sie MySQL
  5. Beispiele zur Implementierung von INSERT in Oracle