Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk mengubah suai nilai medan dalam mysql

Bagaimana untuk mengubah suai nilai medan dalam mysql

青灯夜游
青灯夜游asal
2021-12-02 13:53:1927742semak imbas

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

Bagaimana untuk mengubah suai nilai medan dalam mysql

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:

  • Pertama, dalam UPDATE kekunci Selepas perkataan, nyatakan nama jadual data yang akan dikemas kini.
  • Kedua, klausa 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.
  • Ketiga, gunakan syarat dalam klausa WHERE untuk menentukan baris yang akan dikemas kini. Klausa 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_PRIORITYBerkesan untuk enjin storan yang hanya menggunakan penguncian aras meja (seperti MyISAM, MERGE, MEMORY).
  • Pengubah suai IGNORE membenarkan pernyataan KEMASKINI untuk terus mengemas kini baris walaupun ralat berlaku. Baris yang menyebabkan ralat (seperti pelanggaran kunci pendua) tidak dikemas kini.

2. Contoh KEMASKINI MySQL

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Adakah mysql sumber terbuka?Artikel seterusnya:Adakah mysql sumber terbuka?