Was ist INSERT IN?
INSERT INTO wird zum Speichern von Daten in den Tabellen verwendet. Der Befehl INSERT erstellt eine neue Zeile in der Tabelle zum Speichern von Daten. Die Daten werden normalerweise von Anwendungsprogrammen bereitgestellt, die über der Datenbank ausgeführt werden.
Grundlegende Syntax
Schauen wir uns die grundlegende Syntax des Befehls INSERT INTO MySQL an:
INSERT INTO `table_name` (Spalte_1, Spalte_2,…) VALUES (Wert_1, Wert_2,…);
HIER
- INSERT INTO `table_name` ist der Befehl, der den MySQL-Server anweist, einer Tabelle mit dem Namen` table_name.` eine neue Zeile hinzuzufügen
- (column_1, column_2,…) gibt die Spalten an, die in der neuen MySQL-Zeile aktualisiert werden sollen
- VALUES (value_1, value_2,…) gibt die Werte an, die der neuen Zeile hinzugefügt werden sollen
Bei der Angabe der Datenwerte, die in die neue Tabelle eingefügt werden sollen, sollte Folgendes berücksichtigt werden:
- String-Datentypen - Alle String-Werte sollten in einfache Anführungszeichen gesetzt werden.
- Numerische Datentypen - Alle numerischen Werte sollten direkt angegeben werden, ohne sie in einfache oder doppelte Anführungszeichen zu setzen.
- Datumsdatentypen - Geben Sie Datumswerte in einfache Anführungszeichen im Format 'JJJJ-MM-TT' ein.
Beispiel:
Angenommen, wir haben die folgende Liste neuer Bibliotheksmitglieder, die der Datenbank hinzugefügt werden müssen.
Ganze Namen | Geburtsdatum | Geschlecht | Physikalische Adresse | Anschrift | Kontakt Nummer | E-Mail-Addresse |
---|---|---|---|---|---|---|
Leonard Hofstadter | Männlich | Woodcrest | 0845738767 | |||
Sheldon Cooper | Männlich | Woodcrest | 0976736763 | |||
Rajesh Koothrappali | Männlich | Fairview | 0938867763 | |||
Leslie Winkle | 14/02/1984 | Männlich | 0987636553 | |||
Howard Wolowitz | 24.08.1981 | Männlich | Süd Park | Postfach 4563 | 0987786553 | Diese E-Mail-Adresse ist vor Spambots geschützt! JavaScript muss aktiviert sein, damit sie angezeigt werden kann. |
Lassen Sie uns die Daten einzeln einfügen. Wir werden mit Leonard Hofstadter beginnen. Wir werden die Kontaktnummer als numerischen Datentyp behandeln und die Nummer nicht in einfache Anführungszeichen setzen.
INSERT IN `Mitglieder` (` vollständige_Namen`, `Geschlecht`,` physische_Adresse`, `Kontaktnummer`) WERTE ('Leonard Hofstadter', 'Männlich', 'Woodcrest', 0845738767);
Durch Ausführen des obigen Skripts wird die 0 von Leonard's Kontaktnummer gelöscht. Dies liegt daran, dass der Wert als numerischer Wert behandelt wird und die Null (0) am Anfang gelöscht wird, da sie nicht signifikant ist.
Um solche Probleme zu vermeiden, muss der Wert in einfache Anführungszeichen gesetzt werden, wie unten gezeigt -
INSERT IN `Mitglieder` (` vollständige_Namen`, `Geschlecht`,` physische_Adresse`, `Kontaktnummer`) WERTE ('Sheldon Cooper', 'Männlich', 'Woodcrest', '0976736763');
Im obigen Fall wird Null (0) nicht gelöscht
Das Ändern der Reihenfolge der Spalten hat keine Auswirkungen auf die INSERT-Abfrage in MySQL, solange die richtigen Werte den richtigen Spalten zugeordnet wurden.
Die unten gezeigte Abfrage zeigt den obigen Punkt.
EINFÜGEN IN "Mitglieder" ("Kontaktnummer", "Geschlecht", "vollständige Namen", "physische Adresse") WERTE ("0938867763", "Männlich", "Rajesh Koothrappali", "Woodcrest");
Bei den obigen Abfragen wurde die Spalte Geburtsdatum übersprungen. Standardmäßig fügt MySQL NULL-Werte in Spalten ein, die in der INSERT-Abfrage weggelassen werden.
Fügen wir nun den Datensatz für Leslie ein, in dem das Geburtsdatum angegeben ist. Der Datumswert sollte in einfache Anführungszeichen im Format 'JJJJ-MM-TT' eingeschlossen werden.
INSERT IN `Mitglieder` (` vollständige_Namen`, `Geburtsdatum`,` Geschlecht`, `physische_Adresse`,` Kontaktnummer`) WERTE ('Leslie Winkle', '1984-02-14', 'Männlich', 'Woodcrest', ' 0987636553 ');
Alle oben genannten Abfragen haben die Spalten angegeben und sie den Werten in der MySQL-Einfügeanweisung zugeordnet. Wenn wir Werte für ALLE Spalten in der Tabelle angeben, können wir die Spalten in der MySQL-Einfügeabfrage weglassen.
Beispiel:-
IN "Mitglieder" -WERTE EINFÜGEN (9, "Howard Wolowitz", "Männlich", "1981-08-24",
"SouthPark", "Postfach 4563", "0987786553", "lwolowitz [at] email.me") ;;
Verwenden Sie jetzt die SELECT-Anweisung, um alle Zeilen in der Mitgliedstabelle anzuzeigen.
SELECT * FROM `members`;
Mitgliedsnummer | ganze Namen | Geschlecht | Geburtsdatum | physikalische Adresse | Anschrift | contct_ number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Weiblich | 21-07-1980 | First Street Grundstück Nr. 4 | Private Tasche | 0759 253 542 | Diese E-Mail-Adresse ist vor Spambots geschützt! JavaScript muss aktiviert sein, damit sie angezeigt werden kann. |
2 | Janet Smith Jones | Weiblich | 23-06-1980 | Melrose 123 | NULL | NULL | Diese E-Mail-Adresse ist vor Spambots geschützt! JavaScript muss aktiviert sein, damit sie angezeigt werden kann. |
3 | Robert Phil | Männlich | 12-07-1989 | 3rd Street 34 | NULL | 12345 | Diese E-Mail-Adresse ist vor Spambots geschützt! JavaScript muss aktiviert sein, damit sie angezeigt werden kann. |
4 | Gloria Williams | Weiblich | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
5 | Leonard Hofstadter | Männlich | NULL | Woodcrest | NULL | 845738767 | NULL |
6 | Sheldon Cooper | Männlich | NULL | Woodcrest | NULL | 976736763 | NULL |
7 | Rajesh Koothrappali | Männlich | NULL | Woodcrest | NULL | 938867763 | NULL |
8 | Leslie Winkle | Männlich | 14-02-1984 | Woodcrest | NULL | 987636553 | NULL |
9 | Howard Wolowitz | Männlich | 24-08-1981 | Süd Park | Postfach 4563 | 987786553 | Diese E-Mail-Adresse ist vor Spambots geschützt! JavaScript muss aktiviert sein, damit sie angezeigt werden kann. |
Beachten Sie, dass die Kontaktnummer für Leonard Hofstadter die Null (0) von der Kontaktnummer entfernt hat. Die anderen Kontaktnummern haben die Null (0) am Anfang nicht fallen lassen.
Einfügen in eine Tabelle aus einer anderen Tabelle
Der Befehl INSERT kann auch verwendet werden, um Daten aus einer anderen Tabelle in eine Tabelle einzufügen. Die grundlegende Syntax ist wie folgt.
INSERT INTO table_1 SELECT * FROM table_2;
Schauen wir uns nun ein praktisches Beispiel an. Zu Demonstrationszwecken erstellen wir eine Dummy-Tabelle für Filmkategorien. Wir werden die neue Kategorietabelle category_archive aufrufen. Das unten gezeigte Skript erstellt die Tabelle.
CREATE TABLE `category_archive` (` category_id` int (11) AUTO_INCREMENT, `category_name` varchar (150) STANDARD NULL,` Anmerkungen` varchar (500) STANDARD NULL, PRIMARY KEY (`category_id`))
Führen Sie das obige Skript aus, um die Tabelle zu erstellen.
Fügen wir nun alle Zeilen aus der Kategorietabelle in die Kategoriearchivtabelle ein. Das unten gezeigte Skript hilft uns dabei.
INSERT IN `category_archive` SELECT * FROM` category`;
Durch Ausführen des obigen Skripts werden alle Zeilen aus der Kategorietabelle in die Kategoriearchivtabelle eingefügt. Beachten Sie, dass die Tabellenstrukturen identisch sein müssen, damit das Skript funktioniert. Ein robusteres Skript ordnet die Spaltennamen in der Einfügetabelle denen in der Tabelle zu, die die Daten enthält.
Die unten gezeigte Abfrage demonstriert ihre Verwendung.
INSERT INTO `category_archive` (category_id, category_name, Anmerkungen) SELECT category_id, category_name, Anmerkungen FROM` category`;
Ausführen der SELECT-Abfrage
SELECT * FROM `category_archive`
gibt die folgenden Ergebnisse unten gezeigt.
Kategorie ID | Kategoriename | Bemerkungen |
---|---|---|
1 | Komödie | Filme mit Humor |
2 | Romantisch | Liebesgeschichten |
3 | Epos | Story acient Filme |
4 | Grusel | NULL |
5 | Science-Fiction | NULL |
6 | Thriller | NULL |
7 | Aktion | NULL |
8 | Romantische Komödie | NULL |
9 | Cartoons | NULL |
10 | Cartoons | NULL |
PHP-Beispiel: In MySQL-Tabelle einfügen
Die Funktion mysqli_query wird zum Ausführen von SQL-Abfragen verwendet.
Mit der Funktion können die folgenden Abfragetypen ausgeführt werden.
- Einfügen
- Wählen
- Aktualisieren
- löschen
Es hat die folgende Syntax.
mysqli_query($db_handle,$query);
HIER,
"mysqli_query (
…) "Ist die Funktion, die die SQL-Abfragen ausführt."$ query" ist die auszuführende SQL-Abfrage
"$ link_identifier" ist optional und kann zum Übergeben des Serververbindungslinks verwendet werden
Beispiel
$servername = "localhost";$username = "alex";$password = "yPXuPT";$dbname = "afmznf";// Create connection$conn = mysqli_connect($servername, $username, $password, $dbname);// Check connectionif (!$conn) {die("Connection failed: " . mysqli_connect_error());}$sql= "INSERT INTO addkeyworddata(link, keyword)VALUES ('https://www.guru99.com/','1000')";if (mysqli_query($conn, $sql)) {echo "New record created successfully".'
';} else {echo "Error: " . $sql. "
" . mysqli_error($conn);}}
Zusammenfassung
- Mit dem Befehl INSERT werden neue Daten zu einer Tabelle hinzugefügt. MySql fügt eine neue Zeile hinzu, sobald der Befehl ausgeführt wird.
- Die Datums- und Zeichenfolgenwerte sollten in einfache Anführungszeichen gesetzt werden.
- Die numerischen Werte müssen nicht in Anführungszeichen gesetzt werden.
- Mit dem Befehl INSERT können auch Daten aus einer Tabelle in eine andere eingefügt werden.