Dalam mysql, anda boleh menggunakan pernyataan UPDATE untuk mengubah suai nilai medan Penyataan UPDATE boleh mengubah suai nilai medan satu baris, sekumpulan baris atau semua baris dalam jadual data. KEMASKINI nama jadual SET medan 1 = nilai 1[,medan2=nilai2...] [WHERE condition]".
Persekitaran pengendalian tutorial ini: sistem windows7, versi mysql8, komputer Dell G3.
Dalam mysql, anda boleh menggunakan pernyataan UPDATE untuk mengubah suai nilai medan.
Pernyataan KEMASKINI boleh mengemas kini data sedia ada dalam jadual dan boleh mengubah suai nilai medan satu baris, sekumpulan baris atau semua baris dalam jadual data.
Sintaks pernyataan MySQL UPDATE
digambarkan di bawah:
UPDATE 表名 SET 字段1=值1[,字段2=值2…] [WHERE 条件]
Dalam pernyataan UPDATE
di atas:
UPDATE
kekunci Selepas perkataan, nyatakan nama jadual data yang akan dikemas kini. SET
menentukan lajur untuk diubah suai dan nilai baharu. Untuk mengemas kini berbilang lajur, gunakan senarai yang dipisahkan koma. Sediakan nilai untuk ditetapkan dalam setiap tugasan lajur sebagai literal, ungkapan atau subkueri. WHERE
adalah pilihan. Jika klausa WHERE
ditinggalkan, pernyataan UPDATE
akan mengemas kini semua baris dalam jadual. Sila ambil perhatian bahawa klausa WHERE
adalah sangat penting, jadi anda jangan lupa untuk menyatakan syarat untuk kemas kini. Kadangkala, anda mungkin hanya mahu menukar satu baris; namun, anda mungkin terlupa untuk menulis klausa WHERE
, menyebabkan semua baris dalam jadual dikemas kini secara tidak sengaja.
MySQL menyokong dua pengubah suai dalam pernyataan UPDATE
. Pengubah suai
LOW_PRIORITY
mengarahkan pernyataan UPDATE
untuk menangguhkan kemas kini sehingga tiada sambungan untuk membaca data daripada jadual. LOW_PRIORITY
Berkesan untuk enjin storan yang hanya menggunakan penguncian aras meja (seperti MyISAM, MERGE, MEMORY). Kami menggunakan beberapa jadual dalam pangkalan data sampel MySQL untuk berlatih menggunakan pernyataan UPDATE
.
2.1 MySQL KEMASKINI contoh lajur tunggal
Dalam contoh ini, kami akan mengemas kini e-mel Mary Patterson kepada e-mel baharu123@qq.com
.
Pertama, untuk memastikan e-mel yang dikemas kini berjaya, gunakan pernyataan SELECT berikut untuk menanyakan e-mel employees
daripada jadual Mary
:
SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;
Laksanakan pernyataan pertanyaan di atas dan dapatkan hasil berikut -
+-----------+-----------+----------------------+ | firstname | lastname | email | +-----------+-----------+----------------------+ | Mary | Patterson | mpatterso@qq.com | +-----------+-----------+----------------------+ 1 row in set
Langkah kedua, gunakan pernyataan UPDATE
untuk mengemas kini e-mel Mary
kepada e-mel baharu: 123@qq.com
, seperti yang ditunjukkan dalam pertanyaan berikut:
UPDATE employees SET email = '123@qq.com' WHERE employeeNumber = 1056;
Oleh kerana dalam pernyataan di atas, anda hanya ingin mengemas kini satu baris, gunakan klausa WHERE
untuk menentukan bahawa baris dengan nombor pekerja 1056
dikemas kini . Klausa SET
menetapkan nilai lajur e-mel kepada e-mel baharu.
Ketiga , laksanakan pernyataan SELECT
sekali lagi untuk mengesahkan perubahan.
SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;
Laksanakan pernyataan pertanyaan di atas sekali lagi dan dapatkan keputusan berikut-
+-----------+-----------+---------------------+ | firstname | lastname | email | +-----------+-----------+---------------------+ | Mary | Patterson | 123@qq.com | +-----------+-----------+---------------------+ 1 row in set
2.2 MySQL KEMASKINI berbilang lajur
Untuk mengemas kini berbilang lajur Nilai dalam perlu diberikan dalam klausa SET
. Sebagai contoh, penyata berikut mengemas kini nama akhir dan lajur e-mel nombor pekerja 1056
:
UPDATE employees SET lastname = 'Hill', email = 'mary.hill@qq.com' WHERE employeeNumber = 1056;
Selepas melaksanakan penyataan di atas, tanya rekod dengan nombor pekerja: 1056
, seperti ditunjukkan di bawah -
+-----------+----------+----------------------+ | firstname | lastname | email | +-----------+----------+----------------------+ | Mary | Hill | mary.hill@qq.com | +-----------+----------+----------------------+ 1 row in set
2.3 Contoh MySQL UPDATE menggunakan pernyataan SELECT
Anda boleh menggunakan pernyataan SELECT
untuk menanyakan data daripada jadual lain untuk memberikan nilai SET
fasal.
Sebagai contoh, dalam jadual customers
, sesetengah pelanggan tidak mempunyai wakil jualan. Lajur salesRepEmployeeNumber
mempunyai nilai NULL
seperti berikut:
mysql> SELECT customername, salesRepEmployeeNumber FROM customers WHERE salesRepEmployeeNumber IS NULL; +--------------------------------+------------------------+ | customername | salesRepEmployeeNumber | +--------------------------------+------------------------+ | Havel & Zbyszek Co | NULL | | Porto Imports Co. | NULL | | Asian Shopping Network, Co | NULL | | Natrlich Autos | NULL | | ANG Resellers | NULL | | Messner Shopping Network | NULL | | Franken Gifts, Co | NULL | | BG&E Collectables | NULL | | Schuyler Imports | NULL | | Der Hund Imports | NULL | | Cramer Spezialitten, Ltd | NULL | | Asian Treasures, Inc. | NULL | | SAR Distributors, Co | NULL | | Kommission Auto | NULL | | Lisboa Souveniers, Inc | NULL | | Stuttgart Collectable Exchange | NULL | | Feuer Online Stores, Inc | NULL | | Warburg Exchange | NULL | | Anton Designs, Ltd. | NULL | | Mit Vergngen & Co. | NULL | | Kremlin Collectables, Co. | NULL | | Raanan Stores, Inc | NULL | +--------------------------------+------------------------+ 22 rows in set
Kami boleh menyediakan wakil jualan dan kemas kini kepada pelanggan ini.
Untuk melakukan ini, anda perlu memilih pekerja secara rawak dengan jawatan employees
daripada jadual Sales Rep
dan mengemas kininya ke jadual employees
.
Pernyataan pertanyaan berikut secara rawak memilih pekerja yang kedudukannya employees
daripada jadual Sales Rep
.
SELECT employeeNumber FROM employees WHERE jobtitle = 'Sales Rep' ORDER BY RAND() LIMIT 1;
Untuk mengemas kini nombor pekerja wakil jualan (customers
) dalam jadual employeeNumber
, kami meletakkan pertanyaan di atas dalam klausa UPDATE
pernyataan SET
seperti yang ditunjukkan di bawah :
UPDATE customers SET salesRepEmployeeNumber = (SELECT employeeNumber FROM employees WHERE jobtitle = 'Sales Rep' LIMIT 1) WHERE salesRepEmployeeNumber IS NULL;
Jika anda menanyakan data dalam jadual customers
selepas melaksanakan penyata kemas kini di atas, anda akan melihat bahawa setiap pelanggan mempunyai wakil jualan. Dalam erti kata lain, pertanyaan berikut tidak mengembalikan sebarang data baris.
SELECT salesRepEmployeeNumber FROM customers WHERE salesRepEmployeeNumber IS NULL; `
[Cadangan berkaitan: tutorial video mysql]
Atas ialah kandungan terperinci Bagaimana untuk mengubah suai nilai medan dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!