Heim > System-Tutorial > LINUX > Hauptteil

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

WBOY
Freigeben: 2024-07-18 19:06:39
Original
1140 Leute haben es durchsucht
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] ... ]
Nach dem Login kopieren

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)
Nach dem Login kopieren
Fügen Sie ein einzelnes Datenelement ein
MariaDB [mydb]> INSERT INTO user VALUES(1,'test','test',NOW(),NOW(),'127.0.0.1');
Nach dem Login kopieren

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');
Nach dem Login kopieren

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

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

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)
Nach dem Login kopieren
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');
Nach dem Login kopieren
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]
Nach dem Login kopieren
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
Nach dem Login kopieren
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;
Nach dem Login kopieren
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[位置偏移量,]行数
Nach dem Login kopieren
Die erste Zeile beginnt bei 0, also Folgendes:

SELECT * FROM user LIMIT 2,2;  //从第3行开始,取两行,即取第3、4条记录。
Nach dem Login kopieren
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';
Nach dem Login kopieren
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');
Nach dem Login kopieren
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 ...]]
Nach dem Login kopieren
删除所有数据

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

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

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

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!

Quelle:linuxprobe.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage