Heim  >  Artikel  >  System-Tutorial  >  Zusammenfassung des Mariadb-Lernens (4): Einfügen, Löschen und Ändern von Daten

Zusammenfassung des Mariadb-Lernens (4): Einfügen, Löschen und Ändern von Daten

WBOY
WBOYOriginal
2024-07-18 19:06:391102Durchsuche
INSERT Daten einfügen

INSERT-Anweisungsformat:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
 [INTO] tbl_name [PARTITION (partition_list)] [(col,...)]
 {VALUES | VALUE} ({expr | DEFAULT},...),(...),...
 [ ON DUPLICATE KEY UPDATE
   col=expr
     [, col=expr] ... ]

Die Tabellenstruktur ist wie folgt:

MariaDB [mydb]> DESC user;
+----------+-------------+------+-----+---------------------+----------------+
| Field    | Type        | Null | Key | Default             | Extra          |
+----------+-------------+------+-----+---------------------+----------------+
| id       | int(11)     | NO   | PRI | NULL                | auto_increment |
| username | varchar(10) | NO   |     | NULL                |                |
| password | varchar(10) | NO   |     | NULL                |                |
| regtime  | timestamp   | NO   |     | CURRENT_TIMESTAMP   |                |
| logtime  | timestamp   | NO   |     | 0000-00-00 00:00:00 |                |
| logip    | varchar(20) | YES  |     | NULL                |                |
+----------+-------------+------+-----+---------------------+----------------+
6 rows in set (0.01 sec)
Fügen Sie ein einzelnes Datenelement ein
MariaDB [mydb]> INSERT INTO user VALUES(1,'test','test',NOW(),NOW(),'127.0.0.1');

Da einige Werte in vielen Fällen Standardwerte sind, können wir wie folgt angeben, für welche Spalten Daten eingefügt werden sollen, während andere Spalten Standardwerte verwenden:

MariaDB [mydb]> INSERT INTO user(username,password) VALUES('test2','test2');

Ähnlich kann das Einfügen spezifischer Spaltendaten auch so geschrieben werden:

MariaDB [mydb]> INSERT INTO user SET username='test3',password='test3';

Dadurch werden nur der Benutzername und das Passwort eingefügt und die Standardwerte für andere Werte verwendet.

MariaDB [mydb]> SELECT * FROM user;
+----+----------+----------+---------------------+---------------------+-----------+
| id | username | password | regtime             | logtime             | logip     |
+----+----------+----------+---------------------+---------------------+-----------+
|  1 | test     | test     | 2018-02-24 15:43:41 | 2018-02-24 15:43:41 | 127.0.0.1 |
|  2 | test2    | test2    | 2018-02-24 15:45:16 | 0000-00-00 00:00:00 | NULL      |
|  3 | test3    | test3    | 2018-02-24 15:46:56 | 0000-00-00 00:00:00 | NULL      |
+----+----------+----------+---------------------+---------------------+-----------+
3 rows in set (0.00 sec)
Fügen Sie mehrere Datenzeilen ein

Oft müssen wir eine INSERT-Anweisung verwenden, um mehrere Datensätze in die Datentabelle einzufügen. Wir können es so schreiben:

MariaDB [mydb]> INSERT INTO user(username,password) VALUES('test4','test4'),('test5',
    -> 'test5');
Unerklärliche Prioritäten?

Zusammenfassung des Mariadb-Lernens (4): Einfügen, Löschen und Ändern von Daten

Wenn die verwendete Speicher-Engine (MyISAM, MEMORY, MERGE) Sperren auf Tabellenebene verwendet, können Sie die beiden Schlüsselwörter LOW_PRIORITY | verwenden Bei Verwendung des Schlüsselworts LOW_PRIORITY werden Daten geschrieben, wenn kein Client die Tabelle erneut liest.
Bei Verwendung von HIGH_PRIORITY hat die INSERT-Anweisung dieselbe Priorität wie die SELECT-Anweisung. (Standardrichtlinie)

Wenn also eine SELECT-Anweisung ausgeführt wird, bevor die INSERT-Anweisung ausgeführt wird, blockiert INSERT und wartet darauf, dass SELECT gelesen wird. Wenn zu diesem Zeitpunkt jedoch erneut SELECT in den Zeitplan eintritt, wird SELECT blockiert (die Lesesperre kann dies verhindern). direkt gelesen werden), aber zu diesem Zeitpunkt, weil Die INSERT-Anweisung hat die gleiche Priorität wie die SELECT-Anweisung, sodass SELECT erst ausgeführt werden kann, wenn INSERT abgeschlossen ist. Daher kann INSERT LOW_PRIORITY hinzufügen, um die Lesegeschwindigkeit zu optimieren.

Lesen Sie es hier langsam, ich weiß nicht viel über Schlösser.

Daten ändern Die Syntax der
UPDATE-Anweisung lautet wie folgt:

UPDATE [LOW_PRIORITY] [IGNORE] table_reference 
  [PARTITION (partition_list)]
  SET col1={expr1|DEFAULT} [,col2={expr2|DEFAULT}] ...
  [WHERE where_condition]
  [ORDER BY ...]
  [LIMIT row_count]
Alle aktualisieren
Wenn die WHERE-Klausel nicht zum Einschränken der Auswahlbedingungen verwendet wird, werden alle Daten aktualisiert. Beispielsweise wird die Anmeldezeit aller Datensätze in der Benutzertabelle wie folgt geändert:

MariaDB [mydb]> UPDATE user SET logtime=NOW();
Query OK, 5 rows affected (0.01 sec)
Rows matched: 5  Changed: 5  Warnings: 0
Aktualisieren Sie die Login-IP der ersten drei registrierten Personen auf 127.0.0.1
MariaDB [mydb]> UPDATE user SET logip='127.0.0.1' ORDER BY regtime LIMIT 3;
Die ORDER BY-Anweisung kann in SELECT UPDATE DELETE usw. verwendet werden, um anzugeben, welche Feldanordnung der Tabelle beim Ausgeben, Löschen und Aktualisieren der Tabelle befolgt werden soll.

Im obigen Beispiel dient ORDER BY regtime zum Sortieren und Aktualisieren in der Reihenfolge nach der Registrierungszeit, und nur die ersten drei Zeilen werden mit der LIMIT-Anweisung aktualisiert.

Verwenden Sie DESC, um die Flashback-Anordnung anzugeben, zum Beispiel: ORDER BY regtime DESC

LIMIT-Anweisung: Wird verwendet, um die Anzahl der Abfrageergebnisse zu begrenzen.

Verwendung:

LIMIT[位置偏移量,]行数
Die erste Zeile beginnt bei 0, also Folgendes:

SELECT * FROM user LIMIT 2,2;  //从第3行开始,取两行,即取第3、4条记录。
Verwenden Sie die WHERE-Anweisung, um bestimmte Zeilen für die Aktualisierung auszuwählen
MariaDB [mydb]> UPDATE user SET logip='192.168.1.2' WHERE username='test2';
Da die WHERE-Klausel viele Dinge enthält, werde ich hier nicht zu viel Inhalt veröffentlichen.

LOW_PRIORITY: Dies ist dasselbe wie LOW_PRIORITY von INSERT.

REPLACE-Anweisung
MariaDB [mydb]> REPLACE INTO user VALUES(1,'test111','test111',NOW(),NOW(),'192.168.1.1');
Die obige Anweisung ist das erweiterte SQL von MariaDB, das dem Löschen doppelter Datensätze (Primärschlüssel oder eindeutiger Index) und dem Hinzufügen neuer Datensätze entspricht.

Es scheint ein bisschen geschmacklos zu sein? ....

Daten löschen

DELETE语语法:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE] 
    FROM tbl_name [PARTITION (partition_list)]
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT row_count]
    [RETURNING select_expr 
      [, select_expr ...]]
删除所有数据

不使用WHERE语句来约束条件时,则删除所有数据,如下:

MariaDB [mydb]> DELETE FROM user;
使用WHERE语句约束选中行
MariaDB [mydb]> DELETE FROM user WHERE username='test1';

那么?这篇文章就简单写到这吧~~

Das obige ist der detaillierte Inhalt vonZusammenfassung des Mariadb-Lernens (4): Einfügen, Löschen und Ändern von Daten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn