ホームページ  >  記事  >  システムチュートリアル  >  Mariadb 学習のまとめ (4): データの挿入、削除、変更

Mariadb 学習のまとめ (4): データの挿入、削除、変更

WBOY
WBOYオリジナル
2024-07-18 19:06:391100ブラウズ
MASUKKAN data masukkan

INSERT format pernyataan:

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] ... ]

Struktur meja adalah seperti berikut:

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)
Masukkan sekeping data
MariaDB [mydb]> INSERT INTO user VALUES(1,'test','test',NOW(),NOW(),'127.0.0.1');

Oleh kerana dalam banyak kes beberapa nilai adalah lalai, jadi kami boleh menentukan lajur untuk memasukkan data, manakala lajur lain menggunakan nilai lalai, seperti berikut:

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

Begitu juga, memasukkan data lajur tertentu juga boleh ditulis seperti ini:

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

Ini hanya akan memasukkan nama pengguna dan kata laluan, dan menggunakan nilai lalai untuk nilai lain.

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)
Masukkan berbilang baris data

Banyak kali kita perlu menggunakan satu pernyataan INSERT untuk memasukkan berbilang rekod ke dalam jadual data Kita boleh menulisnya seperti ini:

MariaDB [mydb]> INSERT INTO user(username,password) VALUES('test4','test4'),('test5',
    -> 'test5');
Keutamaan yang tidak dapat dijelaskan?

Mariadb 学習のまとめ (4): データの挿入、削除、変更

Apabila enjin storan yang digunakan (MyISAM, MEMORY, MERGE) menggunakan kunci aras meja, anda boleh menggunakan dua kata kunci LOW_PRIORITY | Apabila menggunakan kata kunci LOW_PRIORITY, data ditulis apabila tiada pelanggan membaca jadual sekali lagi.
Apabila HIGH_PRIORITY digunakan, pernyataan INSERT mempunyai keutamaan yang sama dengan pernyataan SELECT. (dasar lalai)

Jadi, apabila pernyataan SELECT dilaksanakan sebelum pernyataan INSERT dilaksanakan, INSERT menyekat dan menunggu SELECT dibaca, tetapi pada masa ini, jika SELECT memasuki jadual sekali lagi, SELECT disekat (kunci baca boleh dibaca secara langsung), tetapi pada masa ini kerana Penyataan INSERT mempunyai keutamaan yang sama seperti pernyataan SELECT, jadi SELECT tidak boleh dilaksanakan sehingga INSERT selesai, jadi INSERT boleh menambah LOW_PRIORITY untuk mengoptimumkan kelajuan bacaan.

Baca perlahan-lahan di sini, saya tidak tahu banyak tentang kunci.

Ubah suai data
KEMASKINI sintaks pernyataan adalah seperti berikut:

UPDATE [LOW_PRIORITY] [IGNORE] table_reference 
  [PARTITION (partition_list)]
  SET col1={expr1|DEFAULT} [,col2={expr2|DEFAULT}] ...
  [WHERE where_condition]
  [ORDER BY ...]
  [LIMIT row_count]
Kemas kini semua
Apabila klausa WHERE tidak digunakan untuk mengekang syarat pemilihan, semua data dikemas kini Sebagai contoh, masa log masuk semua rekod dalam jadual pengguna diubah suai menjadi sekarang:

MariaDB [mydb]> UPDATE user SET logtime=NOW();
Query OK, 5 rows affected (0.01 sec)
Rows matched: 5  Changed: 5  Warnings: 0
Kemas kini IP log masuk tiga orang berdaftar pertama kepada 127.0.0.1
MariaDB [mydb]> UPDATE user SET logip='127.0.0.1' ORDER BY regtime LIMIT 3;
Pernyataan ORDER BY boleh digunakan dalam SELECT UPDATE DELETE, dsb., untuk menunjukkan susunan medan jadual yang harus diikuti semasa mengeluarkan, memadam dan mengemas kini jadual.

Sebagai contoh, dalam perkara di atas, ORDER BY regtime mengatur kemas kini dalam susunan positif mengikut masa pendaftaran dan hanya mengemas kini tiga baris pertama dengan pernyataan LIMIT.

Gunakan DESC untuk menentukan susunan imbas kembali, contohnya: ORDER BY regtime DESC

LIMIT pernyataan: digunakan untuk mengehadkan bilangan hasil pertanyaan.

Penggunaan:

LIMIT[位置偏移量,]行数
Barisan pertama bermula pada 0, jadi yang berikut:

SELECT * FROM user LIMIT 2,2;  //从第3行开始,取两行,即取第3、4条记录。
Gunakan pernyataan WHERE untuk memilih baris tertentu untuk kemas kini
MariaDB [mydb]> UPDATE user SET logip='192.168.1.2' WHERE username='test2';
Oleh kerana terdapat banyak perkara dalam klausa WHERE, saya tidak akan menyiarkan terlalu banyak kandungan di sini.

KEUTAMAAN_RENDAH: Ini sama dengan KEUTAMAAN_RENDAH INSERT.

GANTIKAN kenyataan
MariaDB [mydb]> REPLACE INTO user VALUES(1,'test111','test111',NOW(),NOW(),'192.168.1.1');
Pernyataan di atas ialah SQL lanjutan MariaDB, yang bersamaan dengan memadamkan rekod pendua (kunci utama atau indeks unik) dan menambah rekod baharu.

Nampak agak tawar? ....

Padam data

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';

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

以上がMariadb 学習のまとめ (4): データの挿入、削除、変更の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。