Ghid de referință MySQL. Exemple de interogări SQL la baza de date MySQL Efectuarea de modificări la mai multe rânduri cu o condiție de selecție

Comanda UPDATE— modifică o înregistrare existentă sau mai multe înregistrări dintr-un tabel SQL. Modifică valorile existente într-un tabel sau în tabelul principal al vizualizării.

UPDATE Sintaxa comenzii

UPDATE Sintaxa comenzii

Comanda UPDATE. Cuvinte cheie și parametri de bază ai comenzii UPDATE

  • schema - un identificator de permisiune, de obicei același cu un nume de utilizator
  • vedere la masă - numele tabelului SQL, în care datele sunt modificate; dacă este definită o vedere, datele sunt modificate în tabelul principal SQL reprezentare
  • subinterogare_1 - subinterogare, pe care serverul îl tratează în același mod ca o vizualizare
  • Cucoloană - coloana tabelului SQL sau depuneri SQL, a cărui valoare se modifică; dacă coloana tabelului este dintr-o propoziție A STABILIT este omisă, valoarea coloanei rămâne neschimbată
  • expr - ; această expresie poate conține variabile principale și variabile indicatoare opționale
  • subinterogare_2 - valoare nouă atribuită coloanei corespunzătoare
  • subinterogare_3 - valoare nouă atribuită coloanei corespunzătoare

UNDE- definește intervalul de rânduri care urmează să fie modificate de cele pentru care este o anumită condiție ADEVĂRAT; dacă această expresie este omisă, toate rândurile din tabel sau din vizualizare sunt modificate.
Când se eliberează o aprobare, orice UPDATE declanșator, definit pe tabel.
Subinterogări. Dacă oferta A STABILIT conţine subinterogare, returnează exact un rând pentru fiecare rând modificat. Fiecare valoare din rezultatul subinterogării este atribuită coloanelor corespunzătoare din listă în paranteze. Dacă subinterogarea nu returnează niciun rând, coloana este atribuită NUL. Subinterogări poate selecta date din tabelul modificat. Oferi A STABILIT poate combina expresii și subinterogări.

Exemplul 1 de comandă UPDATE
Modificarea evaluării pentru toți cumpărătorii la o valoare egală cu 200:

Clienți A STABILIT rating = 200;

Exemplul 2 de comandă UPDATE
Înlocuirea unei valori de coloană pe toate rândurile unui tabel este, în general, utilizată rar. Deci în echipă, ca și în echipă ȘTERGE, puteți folosi un predicat. Pentru a efectua înlocuirea specificată a valorilor coloanei de rating, pentru toți clienții care sunt serviți de vânzătorul Giovanni (snum = 1003), trebuie să introduceți:

Clienți A STABILIT rating = 200 WHERE snum = 1001;

Exemplul 3 de comandă SQL UPDATE
Într-o propoziție A STABILIT Puteți specifica orice număr de valori pentru coloane, separate prin virgule:

Emp A STABILIT job = 'MANAGER', sal = sal + 1000, deptno = 20 WHERE ename = 'JONES';

Exemplul 4 de comandă UPDATE
Într-o propoziție A STABILIT puteți specifica o valoare NULL fără a utiliza vreo sintaxă specială (cum ar fi IS NULL). Astfel, dacă doriți să setați toate evaluările clienților din Londra (oraș = „Londra”) la NULL, veți introduce:

Clienți A STABILIT rating = NULL WHERE oraș = 'Londra';

Exemplul 5 de comandă UPDATE
Explică utilizarea următoarei sintaxe a comenzii:

  • Ambele forme de propoziție A STABILITîmpreună într-o singură declarație.
  • Subinterogare.
  • O clauză WHERE care limitează intervalul de rânduri care pot fi modificate.

Emp a A STABILIT deptno =
(SELECTAȚI deptno FROM dept WHERE loc = 'BOSTON'), (sal, comm) = ( SELECTAȚI 1.1*AVG(sal), 1.5*AVG(comm) FROM emp b WHERE a.deptno = b.deptno) WHERE deptno IN ( SELECTAȚI deptno FROM dept WHERE loc = 'DALLAS' SAU loc = 'DETROIT');

Declarația de mai sus face următoarele:

  • Modifică numai acei angajați care lucrează în Dallas sau Detroit
  • Setează valoarea coloanei deptno pentru angajații din Boston
  • Stabilește salariul fiecărui angajat la 1,1 ori salariul mediu al întregului departament
  • Stabilește comisionul fiecărui angajat la 1,5 ori comisionul mediu pentru întregul departament

Acest tutorial MySQL explică cum să utilizați MySQL Declarație UPDATE cu sintaxa si exemple.

Sintaxă

În forma sa cea mai simplă, sintaxa pentru instrucțiunea UPDATE atunci când actualizați un tabel în MySQL este:

UPDATE table SET coloana1 = expresia1, coloana2 = expresia2, ... ;

Cu toate acestea, sintaxa completă pentru instrucțiunea MySQL UPDATE atunci când actualizați un tabel este:

UPDATE [ LOW_PRIORITY ] [ IGNORE ] table SET column1 = expression1, column2 = expression2, ... ] ;

Sintaxa pentru instrucțiunea UPDATE atunci când actualizați un tabel cu date dintr-un alt tabel în MySQL este:

UPDATE table1 SET column1 = (SELECT expression1 FROM table2 WHERE condiții) ;

Sintaxa pentru instrucțiunea MySQL UPDATE atunci când actualizați mai multe tabele este:

UPDATE table1, table2, ... SET coloana1 = expresie1, coloana2 = expresie2, ... WHERE tabel1.coloană = tabel2.coloană ȘI condiții;

Parametri sau Argumente

LOW_PRIORITY Opțional. Dacă este furnizată LOW_PRIORITY, actualizarea va fi amânată până când nu vor fi citite procese din masa. LOW_PRIORITY poate fi folosită cu tabelele MyISAM, MEMORY și MERGE care utilizează blocarea la nivel de tabel. IGNORE Opțional. Dacă este furnizat IGNORE, toate erorile întâlnite în timpul actualizării sunt ignorate. Dacă o actualizare a unui rând ar duce la încălcarea unei chei primare sau a indexului unic, actualizarea pe rândul respectiv nu este efectuată. column1, column2 Coloanele pe care doriți să le actualizați. expresie1, expresie2 Noile valori de atribuit coloana 1, coloana2. Asa de coloana 1 expresie1, coloana2 i s-ar atribui valoarea de expresie2, și așa mai departe. Condiții WHERE Opțional. Condițiile care trebuie îndeplinite pentru ca actualizarea să se execute. ORDER BY expresie Opțional. Poate fi folosit în combinație cu LIMIT pentru a sorta înregistrările în mod corespunzător atunci când se limitează numărul de înregistrări care trebuie actualizate. LIMIT number_rows Opțional. Dacă este furnizat LIMIT, acesta controlează numărul maxim de înregistrări de actualizat în tabel. Cel mult, numărul de înregistrări specificat de număr_rânduri vor fi actualizate în tabel.

Exemplu - Actualizați o singură coloană

Să ne uităm la un exemplu foarte simplu de interogare MySQL UPDATE.

UPDATE customers SET last_name = "Anderson" WHERE customer_id = 5000;

Acest exemplu MySQL UPDATE ar actualiza nume lui „Anderson” în Clienți masa unde Număr de înregistrare client este 5000.

Exemplu - Actualizați mai multe coloane

Să ne uităm la un exemplu MySQL UPDATE în care s-ar putea să doriți să actualizați mai mult de o coloană cu o singură instrucțiune UPDATE.

UPDATE customers SET state = "California", customer_rep = 32 WHERE customer_id > 100;

Când doriți să actualizați mai multe coloane, puteți face acest lucru separând perechile coloană/valoare cu virgule.

stat la „California” și la client_rep la 32 unde Număr de înregistrare client este mai mare de 100.

Exemplu - Actualizați tabelul cu date dintr-un alt tabel

Să ne uităm la un exemplu de ACTUALIZARE care arată cum să actualizați un tabel cu date dintr-un alt tabel în MySQL.

UPDATE clienții
SET oraș = (SELECTARE oraș
DE LA furnizori
WHERE suppliers.supplier_name = customers.customer_name)
WHERE client_id > 2000;

Acest exemplu de UPDATE ar actualiza numai Clienți tabel pentru toate înregistrările în care Număr de înregistrare client este mai mare decât 2000. Când cel numele furnizorului de la furnizori tabelul se potrivește cu Numele clientului de la Clienți masa, cel oraș din tabelul furnizorilor ar fi copiat în oraș câmp în Clienți masa.

Exemplu - Actualizați mai multe tabele

Să ne uităm la un exemplu MySQL UPDATE în care ați putea dori să efectuați o actualizare care implică mai mult de un tabel într-o singură instrucțiune UPDATE.

UPDATE clienți, furnizori SET customers.city = furnizori.city WHERE customers.customer_id = furnizori.furnizor_id;

Acest exemplu de instrucțiune MySQL UPDATE ar actualiza oraș câmp în Clienți masa la oraș de la furnizori masa unde Număr de înregistrare client se potrivește cu furnizor_id.

Actualizarea datelor dintr-o bază de date înseamnă modificarea valorilor din înregistrările de tabel existente. În acest caz, este posibil să modificați atât valorile câmpurilor dintr-un grup de rânduri (chiar și toate rândurile tabelului), cât și să editați valoarea unui câmp într-un rând individual.

În SQL, puteți modifica o înregistrare într-un tabel de bază de date folosind comanda UPDATE. În forma sa cea mai minimă, comanda de actualizare a datelor arată astfel:

ACTUALIZAȚI câmp SET tabel = valoare

Aici, ACTUALIZAȚI– o comandă care indică faptul că cererea este de actualizare a datelor;

masa– denumirea tabelului în care se vor face modificări;

A STABILIT– o comandă urmată de câmpuri separate prin virgulă cu valori atribuite;

camp– câmp tabel la care se va face modificarea;

sens– o nouă valoare care va fi introdusă în câmp.


De exemplu, dacă trebuie să setați un câmp din toate rândurile unui tabel la zero, puteți rula următoarea interogare:

ACTUALIZAȚI preț SET bunuri = 0

În acest caz, câmpul preț din absolut toate rândurile disponibile ale tabelului va lua valoarea 0.

Schimbarea unei valori

Modificarea valorilor tuturor câmpurilor dintr-un tabel este extrem de rară. Cel mai adesea este necesar să se schimbe valoarea unei anumite intrări. Pentru a face acest lucru, la sfârșitul liniei cu comanda UPDATE, se va adăuga o directivă WHERE, care specifică o condiție care determină pe ce linie trebuie efectuată operația de actualizare.

Acolo este o masa:

De exemplu, trebuie să actualizăm costul unui produs cu valoarea lui cunoscută num. Pentru a face acest lucru, rulați următoarea interogare:

ACTUALIZAȚI mărfuri SET preț = 150 WHERE num = 2

Acum, înainte de operația de modificare a câmpurilor, va fi selectat un rând care îndeplinește condiția num = 2. Există doar un astfel de rând în tabel. În acest stoc, prețul va fi modificat la valoarea 150. Ca urmare, obținem un tabel cu prețul modificat al produsului.

Efectuarea de modificări la mai multe linii cu o condiție de selecție

Dacă vă amintiți toată diversitatea condiţiile din cerere, vă puteți imagina cât de diverse pot fi mostrele. Prin urmare, interogările de actualizare pot fi executate fie cu un rând, fie cu un grup de rânduri, fie cu toate rândurile tabelului. Totul depinde de sarcina cu care vă confruntați, precum și de rândurile de tabel pe care trebuie să efectuați operațiuni de actualizare.

De exemplu, dorim să reducem la jumătate prețul tuturor bunurilor care costă în prezent 100 sau mai mult. Cerere:

ACTUALIZAȚI mărfuri SET preț = preț / 2 WHERE preț >= 100

Condiție UNDE aici conține o regulă conform căreia vor fi selectate doar produsele cu preț egal sau mai mare de 100, iar acele produse cu preț sub 100 nu vor fi afectate de cerere.

preț = preț / 2– formula prin care se va calcula noul preț al mărfurilor. Noul preț va fi scris egal cu vechiul preț împărțit la doi.

Ca urmare a executării unei astfel de interogări, vom obține un tabel cu înregistrările modificate:

Actualizarea valorilor în câmpurile cu mai multe rânduri

Dacă este necesară actualizarea mai multor câmpuri simultan, toate câmpurile cu valorile lor sunt indicate după directiva SET, separate prin virgulă. De exemplu, trebuie să schimbați numele și prețul unui produs cu codul 2 în „fier”, care costă 300:

ACTUALIZAȚI bunuri SET titlu = "fier" , price = 300 WHERE num = 2 !}

Această interogare va atribui fiecărui câmp de potrivire dintr-un rând valoarea sa. Iar condiția va indica în ce linie vor fi făcute modificările.


Următoarele sunt principalele tipuri de operațiuni de actualizare. Pe baza acestora, sunt generate interogări pentru a rezolva majoritatea problemelor de modificare a datelor în dezvoltare folosind SQL.

Dacă trebuie să schimbăm sau să actualizăm datele în MySQL, putem folosi comanda SQL UPDATE pentru a funcționa. ,

gramatică

Mai jos este comanda UPDATE pentru a schimba sintaxa SQL generală a datelor MySQL Sheet:

UPDATE table_name SET field1=new-value1, field2=new-value2

  • Puteți actualiza unul sau mai multe câmpuri în același timp.
  • Puteți specifica orice condiție în clauza WHERE.
  • De asemenea, puteți actualiza datele într-un tabel separat.

Când trebuie să actualizați datele specificate în rândurile unui tabel, INEKE este foarte util.

Linie de comandă pentru a actualiza datele

Mai jos vom actualiza w3big_tbl specificat în tabelul de date folosind comanda SQL UPDATE:

exemple

Următorul exemplu va actualiza tabelul de date ca valoare de câmp w3big_title w3big_id 3:

# mysql -u root -p parola; Introdu parola:****** mysql> folosește w3big; Baza de date schimbată mysql> UPDATE w3big_tbl -> SET w3big_title="Learning JAVA" -> WHERE w3big_id=3; Query OK, 1 row affected (0.04 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> !}

Utilizați scriptul PHP pentru a actualiza datele

Funcția PHP pentru a utiliza mysql_query() pentru a executa instrucțiuni SQL, puteți utiliza instrucțiunea SQL UPDATE sau INEKE nu se aplică.

Această funcție din MySQL> efectul liniei de comandă a executării instrucțiunilor SQL este același.

exemple

Următorul exemplu va actualiza datele w3big_id din câmpul w3big_title 3.