veranschaulichen DML (Data Manipulation Language) bezieht sich auf die Betriebsanweisungen zum Hinzufügen, Löschen und Ändern der Datenbank. Es gibt drei Haupttypen: INSERT, UPDATE und DELETE, die für Einfügen, Aktualisieren und Löschen stehen. Dies sind die Grundkenntnisse, die beim Erlernen von MySQL beherrscht werden müssen. Der Inhalt in [] kann in der Syntax weggelassen werden. INSERT-Operation Zeile für Zeile einfügen Das Syntaxformat ist wie folgt: in t_name [(column_name1,columnname_2,...)] Werte (val1,val2) einfügen; Oder fügen Sie in t_name Folgendes ein: setze column_name1 = val1, column_name2 = val2; 1. Die Feldnamen und -werte müssen in Anzahl, Typ und Position konsistent sein, da sonst Ausnahmen auftreten können. 2. Das Nicht-Null-Feld muss einen eingefügten Wert haben, andernfalls wird eine Nicht-Null-Ausnahmemeldung gemeldet. Wenn Sie in ein Feld, das Nullwerte zulässt, keine Daten eingeben möchten, werden weder das Feld noch der Wert angezeigt oder der Wert wird durch Nullwerte ersetzt. 3. Bei numerischen Typen muss der Wert nicht in einfache Anführungszeichen gesetzt werden. Bei anderen Typen wie Zeichentypen oder Datumstypen muss der Wert in einfache Anführungszeichen gesetzt werden. 4. Wenn der Spaltenname nach dem Tabellennamen weggelassen wird, bedeutet dies, dass alle Felder der Tabelle abgedeckt sind. Die Reihenfolge der Werte muss mit der Reihenfolge der Felder in der Tabelle übereinstimmen. 5. Die zweite oben erwähnte Grammatik ist komplizierter zu schreiben und wird heute selten verwendet. Probieren Sie es aus: mysql> desc `Benutzer1`; +---------+--------------+------+-----+---------+----------------+ | Feld | Typ | Null | Schlüssel | Standard | Extra | +---------+--------------+------+-----+---------+----------------+ | id | bigint(20) | NEIN | PRI | NULL | auto_increment | | Name | varchar(20) | NEIN | | NULL | | | Alter | int(11) | NEIN | | 0 | | | Adresse | varchar(255) | JA | | NULL | | +---------+--------------+------+-----+---------+----------------+ 4 Reihen im Set mysql> einfügen in `user1`(Name, Alter, Adresse) Werte('Marke', 20, 'Fuzhou'); Abfrage OK, 1 Zeile betroffen mysql> einfügen in „Benutzer1“ (Alter, Adresse) Werte (20, „Fuzhou“); 1364 - Das Feld „Name“ hat keinen Standardwert mysql> in „Benutzer1“ einfügen Werte(„sol“, 21, „xiamen“); 1136 - Die Spaltenanzahl stimmt nicht mit der Werteanzahl in Zeile 1 überein. mysql> in „Benutzer1“ einfügen Werte (null, „sol“, 21, „xiamen“); Abfrage OK, 1 Zeile betroffen mysql> wähle * von `Benutzer1`; +----+-------+-----+---------+ | ID | Name | Alter | Adresse | +----+-------+-----+---------+ | 3 | Marke | 20 | Fuzhou | | 4 | Sol | 21 | Xiamen | +----+-------+-----+---------+ 2 Reihen im Set Stapeleinfügung Das Syntaxformat ist wie folgt: in t_name [(column_name1,column_name2)] Werte einfügen (val1_1,val1_2),(val2_1,val2_2)...); Oder fügen Sie in t_name [(Spaltenname1,Spaltenname2)] ein, wählen Sie o_name1,o_name2 aus o_t_name [Where-Bedingung]; 1. In der ersten Syntax oben muss die Anzahl der Werte nach den Werten der Anzahl der übereinstimmenden Spalten entsprechen. Sie können mehrere durch Kommas getrennte Werte festlegen, um die Effizienz beim Einfügen von Daten zu verbessern. 2. In der zweiten Syntax müssen Anzahl, Reihenfolge und Typ der Felder in der Auswahlabfrage und der Felder in den eingefügten Daten konsistent sein. Das Einfügefeld kann weggelassen werden, was bedeutet, dass alle Felder der Tabelle t_name eingefügt werden. Bedingung optional. Probieren Sie es aus: mysql> einfügen in `Benutzer1`(Name, Alter, Adresse) Werte('Marke',20,'Fuzhou'),('Sol',21,'Xiamen'); Abfrage OK, 2 Zeilen betroffen Datensätze: 2 Duplikate: 0 Warnungen: 0 mysql> wähle * von `Benutzer1`; +----+-------+-----+---------+ | ID | Name | Alter | Adresse | +----+-------+-----+---------+ | 5 | Marke | 20 | Fuzhou | | 6 | Sol | 21 | Xiamen | +----+-------+-----+---------+ 2 Reihen im Set mysql> Beschreibung `Benutzer2`; +---------+--------------+------+-----+---------+----------------+ | Feld | Typ | Null | Schlüssel | Standard | Extra | +---------+--------------+------+-----+---------+----------------+ | id | bigint(20) | NEIN | PRI | NULL | auto_increment | | Name | varchar(20) | NEIN | | NULL | | | Alter | int(11) | NEIN | | 0 | | | Adresse | varchar(255) | JA | | NULL | | | Geschlecht | int(11) | NEIN | | 1 | | +---------+--------------+------+-----+---------+----------------+ 5 Reihen im Set mysql> füge in „Benutzer2“ ein (Name, Alter, Adresse, Geschlecht), wähle Name, Alter, Adresse, null aus „Benutzer1“ aus; Abfrage OK, 2 Zeilen betroffen Datensätze: 2 Duplikate: 0 Warnungen: 0 mysql> wähle * von `Benutzer2`; +----+-------+-----+---------+------+ | ID | Name | Alter | Adresse | Geschlecht | +----+-------+-----+---------+------+ | 7 | Marke | 20 | Fuzhou | 1 | | 8 | Sol | 21 | Xiamen | 1 | +----+-------+-----+---------+------+ 2 Reihen im Set UPDATE-Vorgang Datenaktualisierung Das Syntaxformat ist wie folgt: aktualisiere t_name [[als] Alias] setze [Alias.]Spaltenname1 = Wert1,[Alias.]Spaltenname2 = Wert2 [wobei Bedingung]; 1. Alias bedeutet Alias. Je einfacher der Alias, desto besser die Erkennung. Er ist leicht zu identifizieren und bequem zu bedienen. Wenn kein Alias vorhanden ist, ist der Tabellenname der Alias. 2. Das „as“ im „as“-Alias ist ebenfalls optional, und die „where“-Bedingung ist ebenfalls optional, sodass Benutzer die erforderlichen Daten auswählen können, die bestimmte Bedingungen für die Aktualisierung erfüllen. Probieren Sie es aus: mysql> wähle * von `Benutzer2`; +----+-------+-----+---------+------+ | ID | Name | Alter | Adresse | Geschlecht | +----+-------+-----+---------+------+ | 7 | Marke | 20 | Fuzhou | NULL | | 8 | Sol | 21 | Xiamen | NULL | +----+-------+-----+---------+------+ 2 Reihen im Set mysql> aktualisiere „Benutzer2“ als u2, setze u2.name = „Held“, u2.Alter=23, u2.Geschlecht=1, wobei ID=7; Abfrage OK, 1 Zeile betroffen Übereinstimmende Zeilen: 1 Geändert: 1 Warnungen: 0 mysql> wähle * von `Benutzer2`; +----+------+-----+---------+------+ | ID | Name | Alter | Adresse | Geschlecht | +----+------+-----+---------+------+ | 7 | Held | 23 | Fuzhou | 1 | | 8 | Sol | 21 | Xiamen | NULL | +----+------+-----+---------+------+ 2 Reihen im Set Eine andere Möglichkeit besteht darin, mehrere Tabellen gleichzeitig zu aktualisieren, wobei unterschiedliche Aliase und bestimmte Bedingungen zur Einschränkung verwendet werden. Dies wird jedoch nicht empfohlen, da es fehleranfällig und schwierig zu verwalten ist. DELETE-Vorgang Delete-Methode Das Syntaxformat ist wie folgt: lösche [Alias] aus t_name [[als] Alias] [where-Bedingung]; 1. Wie oben steht Alias für Alias. Wenn kein Alias vorhanden ist, ist der Tabellenname der Alias. 2. Wenn die Tabelle einen Alias hat, muss dem Löschbefehl der Alias folgen, sonst meldet die Datenbank eine Ausnahme. Probieren Sie es aus: mysql> wähle * von `Benutzer2`; +----+------+-----+---------+------+ | ID | Name | Alter | Adresse | Geschlecht | +----+------+-----+---------+------+ | 7 | Held | 23 | Fuzhou | 1 | | 8 | Sol | 21 | Xiamen | NULL | +----+------+-----+---------+------+ 2 Reihen im Set mysql> löschen aus „Benutzer2“ als Alias, wobei Geschlecht=1; 1064 - Ihre SQL-Syntax weist einen Fehler auf. Überprüfen Sie im Handbuch zu Ihrer MySQL-Serverversion die richtige Syntax für die Verwendung in der Nähe von „as alias where sex=1“ in Zeile 1. mysql> lösche Alias aus „Benutzer2“ als Alias, wo Geschlecht=1; Abfrage OK, 1 Zeile betroffen mysql> wähle * von `Benutzer2`; +----+------+-----+---------+------+ | ID | Name | Alter | Adresse | Geschlecht | +----+------+-----+---------+------+ | 8 | Sol | 21 | Xiamen | NULL | +----+------+-----+---------+------+ 1 Reihe im Set 3. Wenn Sie alle Daten in der Tabelle löschen möchten, müssen Sie die Where-Bedingung am Ende nicht einfügen, verwenden Sie sie aber mit Vorsicht. mysql> wähle * von `Benutzer2`; +----+-------+-----+----------+-----+ | ID | Name | Alter | Adresse | Geschlecht | +----+-------+-----+----------+-----+ | 8 | Sol | 21 | Xiamen | 0 | | 10 | Marke | 21 | Fuzhou | 1 | | 11 | Helen | 20 | Quanzhou | 0 | +----+-------+-----+----------+-----+ 3 Reihen im Set mysql> aus „Benutzer2“ löschen; Abfrage OK, 3 Zeilen betroffen mysql> wähle * von `Benutzer2`; Leeres Set Löschen durch Abschneiden Das Syntaxformat ist wie folgt: t_name abschneiden; mysql> wähle * von `Benutzer2`; +----+-------+-----+----------+-----+ | ID | Name | Alter | Adresse | Geschlecht | +----+-------+-----+----------+-----+ | 12 | Marke | 21 | Fuzhou | 1 | | 13 | Helen | 20 | Quanzhou | 0 | | 14 | Sol | 21 | Xiamen | 0 | +----+-------+-----+----------+-----+ 3 Reihen im Set mysql> schneide „Benutzer2“ ab; Abfrage OK, 0 Zeilen betroffen mysql> wähle * von `Benutzer2`; Leeres Set Es sieht „Löschen“ sehr ähnlich, aber wenn Sie die Daten erneut einfügen, werden Sie feststellen, dass der automatisch inkrementierte Primärschlüssel wieder bei 1 beginnt, während „Löschen“ direkt den ursprünglichen automatisch inkrementierten Wert hinzufügt. Siehe das ID-Feld unten. mysql> einfügen in „Benutzer2“ (Name, Alter, Adresse, Geschlecht) Werte („Marke“, 21, „Fuzhou“, 1), („Helen“, 20, „Quanzhou“, 0), („Sol“, 21, „Xiamen“, 0); Abfrage OK, 3 Zeilen betroffen Datensätze: 3 Duplikate: 0 Warnungen: 0 mysql> wähle * von `Benutzer2`; +----+-------+-----+----------+-----+ | ID | Name | Alter | Adresse | Geschlecht | +----+-------+-----+----------+-----+ | 1 | Marke | 21 | Fuzhou | 1 | | 2 | Helen | 20 | Quanzhou | 0 | | 3 | Sol | 21 | Xiamen | 0 | +----+-------+-----+----------+-----+ 3 Reihen im Set Was ist also der Unterschied zwischen Abschneiden und Löschen? Lassen Sie es uns klären. Vergleich zwischen Truncate und Delete 1. Abschneiden bedeutet, die Daten in der Tabelle zu löschen und Speicherplatz in der Tabelle freizugeben, löscht jedoch nicht die Schemadefinition (Tabellenstruktur) der Tabelle. Da keine Where-Bedingung vorhanden ist, wird die gesamte Tabelle gelöscht, anstatt bestimmte Zeilen zu löschen. 2. Die Löschanweisung wird zum Löschen von Datenzeilen in der Tabelle verwendet. Darauf können Bedingungen folgen, um die Dimension und den Umfang der Löschung zu steuern. Jedes Mal, wenn eine Zeile aus der Tabelle gelöscht wird, wird der Löschvorgang der Zeile als Transaktion für mögliche Rollback-Vorgänge im Protokoll gespeichert. 3. Die Ähnlichkeiten zwischen Truncate und Delete bestehen darin, dass sie nur Daten löschen, die Tabellenstruktur und ihre Spalten, Einschränkungen, Indizes usw. jedoch nicht geändert werden. 4. Wenn durch einen Fremdschlüssel eingeschränkt, kann Truncate nicht verwendet werden. Es können nur Delete-Anweisungen ohne Where-Klausel verwendet werden. 5. Der Truncate-Vorgang wird im Protokoll aufgezeichnet und der Löschvorgang wird im Rollback-Segment platziert. Bei Ausführung wird er erst wirksam, nachdem die Transaktion festgeschrieben wurde. Daher wird der Löschtrigger (falls vorhanden) durch Löschen ausgelöst, Truncate jedoch nicht. 6. Wenn das Auto-Increment-Feld wie oben getestet eingeschlossen ist, wird der Wert der Auto-Increment-Spalte nach dem Löschen der Truncate-Methode auf 1 initialisiert. Die Löschmethode sollte je nach Situation beurteilt werden (wenn alle Daten gelöscht werden und die Datenbank nicht neu gestartet wird, wird das vorherige Maximum + 1 verwendet; wenn die Datenbank neu gestartet wird, wird der Anfangswert der Auto-Increment-Spalte neu berechnet). 7. Es gibt auch Drop. Die Drop-Anweisung löscht die Tabelle einschließlich ihrer Struktur, Daten, von der Tabelle abhängigen Einschränkungen, Trigger, Indizes usw. Oben finden Sie den detaillierten Inhalt der MySQL-Datenoperation-DML-Anweisung. Weitere Informationen zu MySQL-DML-Anweisungen finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Reacts Übergang von Klassen zu Hooks
>>: Automatisierter Docker-Build – Diagramm des Implementierungsprozesses für automatisierte Builds
Inhaltsverzeichnis Array-Deduplizierung 1. from()...
In diesem Artikel sind einige sogenannte Spezifik...
Um mehrere Sites auf einem Server bereitzustellen...
Die Version von vsCode wurde in den letzten Tagen...
Methode 1: INSERT INTO t1(Feld1,Feld2) VALUE(v001...
Installieren Sie die entpackte Version von Mysql ...
Tipps zur Verwendung von Docker 1. Bereinigen Sie...
Inhaltsverzeichnis MySQL-Abfragebaumstruktur 1. Ü...
1. Geschäftshintergrund Die Verwendung einer Mask...
In diesem Artikel erfahren Sie, wie Sie das Probl...
In diesem Artikelbeispiel wird der spezifische Co...
Harbor ist ein Registry-Server auf Unternehmenseb...
Bildbeschleuniger Manchmal ist es schwierig, Bild...
Verwenden Sie CSS, um eine 3D-Fotowand zu erstell...
Bereits zu Kernel 2.6-Zeiten wurde ein neues Sich...