Actualizarea Mysql este o interogare complexă de actualizare. Sintaxă UPDATE. Exemplu de actualizare a unei coloane



Conținutul articolului
1. Cele mai simple interogări MySQL
2. Interogări simple SELECT
3. Interogări simple INSERT (intrare nouă).
4. Interogări simple de ACTUALIZARE (suprascriere, adăugare).
5. Interogări simple DELETE (ștergeți înregistrarea).
6. Interogări simple DROP (ștergerea tabelului).
7. Interogări complexe MySQL
8. Interogări MySQL și variabile PHP

1. Cele mai simple interogări SQL

1. Afișează o listă cu TOATE bazele de date.

SHOW baze de date;
2. Listează TOATE tabelele din baza de date nume_base.

SHOW tabele în baza_name;

2. Interogări simple SELECT la baza de date MySQL

SELECTAȚI– o interogare care selectează datele existente din baza de date. Puteți specifica parametrii de selecție specifici pentru selecție. De exemplu, esența cererii în limba rusă sună astfel: SELECTAȚI astfel de coloane FROM așa sau așa tabel WHERE parametrul unei astfel de coloane este egal cu valoarea.

1. Selectează TOATE datele din tabelul tbl_name.

SELECT * FROM nume_tbl;
2. Afișează numărul de înregistrări din tabelul tbl_name.

SELECT count(*) FROM nume_tbl;
3. Selectează (SELECT) din tabelul (FROM) tbl_name limit (LIMIT) 3 înregistrări, începând de la 2.

SELECT * FROM tbl_name LIMIT 2,3;
4. Selectează (SELECT) TOATE (*) înregistrările din tabelul (FROM) nume_tbl și le sortează (ORDER BY) după câmpul id în ordine.

SELECT * FROM tbl_name ORDER BY id;
5. Selectează (SELECT) TOATE înregistrările din (FROM) tabelul tbl_name și le sortează (ORDER BY) după câmpul id în ordine inversă.

SELECT * FROM tbl_name ORDER BY id DESC;
6. Selectează ( SELECTAȚI) TOATE (*) înregistrările de la ( DIN) Mese utilizatoriiși le sortează ( COMANDA PENTRU) pe teren idîn ordine crescătoare, limită ( LIMITĂ) primele 5 intrări.

SELECTAȚI * DIN utilizatori COMANDĂ PENTRU ID LIMIT 5;
7. Selectează toate înregistrările din tabel utilizatorii, unde este câmpul fname corespunde valorii Gena.

SELECT * FROM utilizatorii WHERE fname="Gena";
8. Selectează toate înregistrările din tabel utilizatorii, unde valoarea câmpului fnameîncepe cu GE.

SELECTAȚI * FROM utilizatorii WHERE fname LIKE „Ge%”;
9. Selectează toate înregistrările din tabel utilizatorii, Unde fname se termină cu N / Ași sortează înregistrările în ordine crescătoare a valorii id.

SELECTAȚI * FROM users WHERE fname LIKE „%na” ORDER BY id;
10. Selectează toate datele din coloane fname, numele de la masă utilizatorii.

SELECT fname, lname FROM utilizatori;

11. Să presupunem că aveți o țară în tabelul cu datele utilizatorilor. Deci, dacă doriți să afișați NUMAI o listă de valori care apar (astfel încât, de exemplu, Rusia să nu fie afișată de 20 de ori, ci doar o dată), atunci folosim DISTINCT. Va scoate Rusia, Ucraina, Belarus din masa valorilor repetate. Astfel, de la masă utilizatorii difuzoare țară Vor fi scoase TOATE valorile UNICE

SELECTAȚI ȚARA DISTINȚĂ FROM utilizatori;
12. Selectează TOATE datele rândului din tabel utilizatorii Unde vârstă are valorile 18,19 și 21.

SELECTAȚI * FROM utilizatorii WHERE age IN (18,19,21);
13. Selectează valoarea MAXIMĂ vârstă in masa utilizatorii. Adică dacă ai cea mai mare valoare din tabelul tău vârstă(de la vârsta engleză) este 55, atunci rezultatul interogării va fi 55.

SELECTează max(vârsta) FROM utilizatori;
14. Selectați datele din tabel utilizatorii pe câmpuri NumeȘi vârstă UNDE vârstă ia cea mai mică valoare.

SELECT numele, min(vârsta) FROM utilizatori;
15. Selectați datele din tabel utilizatorii pe teren Nume UNDE id NU ESTE EGAL CU 2.

SELECTAȚI numele FROM utilizatorii WHERE id!="2";

3. Interogări simple INSERT (intrare nouă).

INTRODUCE– o interogare care vă permite să inserați INITIAL o înregistrare în baza de date. Adică creează o înregistrare NOUĂ (linie) în baza de date.

1. Face intrare nouă in masa utilizatorii, în câmp Nume inserează Serghei, iar în câmp vârstă inserează 25. Astfel, un nou rând cu aceste valori este adăugat la tabel. Dacă există mai multe coloane, atunci cele rămase vor rămâne fie goale, fie cu valori implicite.

INSERT INTO utilizatori (nume, vârstă) VALUES ("Sergey", "25");

4. Interogări simple UPDATE la baza de date MySQL

ACTUALIZAȚI– o interogare care vă permite să RESERVAȚI valorile câmpurilor sau să ADĂUGAȚI ceva la un rând deja existent în baza de date. De exemplu, există o linie gata făcută, dar parametrul de vârstă trebuie rescris în ea, deoarece s-a schimbat în timp.

1. În tabel utilizatorii vârstă devine 18.

UPDATE utilizatorii SET varsta = "18" WHERE id = "3";
2. Totul este la fel ca în prima solicitare, arată doar sintaxa solicitării, unde două sau mai multe câmpuri sunt suprascrise.
In masa utilizatorii WHERE id este egal cu valoarea a 3 câmpuri vârstăîmplinește 18 ani și țară Rusia.

UPDATE utilizatori SET varsta = "18", tara = "Rusia" WHERE id = "3";

5. Interogări simple DELETE (ștergere înregistrare) în baza de date MySQL

ȘTERGE– o interogare care șterge un rând dintr-un tabel.

1. Îndepărtează un rând din tabel utilizatorii UNDE id este egal cu 10.

DELETE FROM users WHERE id = "10";

6. Interogări simple DROP (ștergere tabel) la o bază de date MySQL

CĂDERE BRUSCA– o interogare care șterge un tabel.

1. Şterge întregul tabel nume_tbl.

DROP TABLE nume_tbl;

7. Interogări complexe către baza de date MySQL

Interogări interesante care pot fi utile chiar și pentru utilizatorii experimentați

SELECTează id, numele, țara FROM utilizatori, administratori WHERE TO_DAYS(NOW()) - TO_DAYS(data_înregistrării)<= 14 AND activation != "0" ORDER BY registration_date DESC;
Această interogare complexă SELECTEAZĂ coloane id, nume, țarăÎN TABELE utilizatori, admini UNDE Data Înregistrării(data) nu mai vechi 14 zilele I activare NU ESTE EGAL 0 , Filtrează după Data Înregistrăriiîn ordine inversă (noul mai întâi).

UPDATE utilizatori SET varsta = "18+" WHERE varsta = (SELECTARE varsta FROM utilizatorii WHERE barbat = "barbat");
Mai sus este un exemplu de așa-numitul cerere în cadrul unei cereriîn SQL. Actualizați vârsta utilizatorilor la 18+, unde sexul este masculin. Nu recomand astfel de opțiuni de solicitare. Din experiența personală, voi spune că este mai bine să creați mai multe separate - acestea vor fi procesate mai rapid.

8. Interogări de baze de date MySQL și PHP

În interogările MySQL dintr-o pagină PHP, puteți insera variabile ca valori comparate etc. Câteva exemple

1. Selectează toate înregistrările din tabel utilizatorii, unde este câmpul fname corespunde valorii variabilei $nume.

SELECTAȚI * FROM utilizatorii WHERE fname="$nume";
2. În tabel utilizatorii WHERE id este egal cu valoarea a 3 câmpuri vârstă modificări ale valorii variabilei $age.

UPDATE utilizatorii SET age = "$age" WHERE id = "3";

Atenţie! Dacă sunteți interesat de orice alt exemplu, atunci scrieți o întrebare în comentarii!

În acest tutorial veți învăța cum să utilizați Instrucțiunea MySQL UPDATE cu sintaxa si exemple.

Descriere

Instrucțiunea MySQL UPDATE folosit pentru a actualiza înregistrările existente într-un tabel din baza de date Date MySQL. Există trei sintaxe pentru instrucțiunea UPDATE, în funcție de tipul de actualizare pe care doriți să o efectuați.

Sintaxă

O formă simplă de sintaxă pentru instrucțiunea UPDATE atunci când actualizați un singur tabel în MySQL:

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

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

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

Parametri sau Argumente

LOW_PRIORITY - opțional. Dacă este specificată LOW_PRIORITY, actualizarea va fi amânată până când nu vor fi citite procese din tabel. LOW_PRIORITY poate fi folosită cu tabelele MyISAM, MEMORY și MERGE care folosesc blocarea la nivel de tabel.
IGNORE - optional. Dacă este furnizat IGNORE, toate erorile întâlnite în timpul actualizării sunt ignorate. Dacă o actualizare pe un rând ar încălca o cheie primară sau un index unic, actualizarea pe rândul respectiv va eșua.
column1, column2 sunt coloanele pe care doriți să le actualizați.
expresie1, expresie2 — valori noi pentru atribuirea coloanei1, coloanei2. Deci, coloanei1 i se atribuie valoarea expresiei1, coloanei2 i se atribuie valoarea expresiei2 și așa mai departe.
Condiții WHERE - opțional. Condiții care trebuie îndeplinite pentru ca actualizarea să aibă loc.
ORDER BY expresie - opțional. Poate fi folosit împreună cu LIMIT pentru a sorta înregistrările în mod corespunzător, limitând în același timp numărul de înregistrări care trebuie actualizate.
LIMIT number_rows - opțional. Dacă se specifică LIMIT, acesta controlează numărul maxim de înregistrări de actualizat în tabel. Numărul maxim de înregistrări specificat în fișierul number_rows va fi actualizat în tabel.

Exemplu de actualizare a unei coloane

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

În acest exemplu MySQL, UPDATE a actualizat câmpul last_name la „Ford” din tabelul clienți, unde customer_id = 500.

Exemplu de actualizare a mai multor coloane

Să ne uităm la exemplul MySQL UPDATE, unde puteți actualiza mai mult de o coloană folosind o singură instrucțiune UPDATE.

Dacă doriți să actualizați mai multe coloane, puteți face acest lucru separând perechile coloană/valoare cu virgule.
Acest exemplu de instrucțiune MySQL UPDATE a actualizat starea la „Nevada” și customer_rep la 23, unde customer_id este mai mare de 200.

Exemplu de actualizare a unui tabel cu date dintr-un alt tabel

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

MySQL

Acest exemplu de ACTUALIZARE va actualiza numai tabelul clienți pentru toate înregistrările în care customer_id este mai mare de 5000. Când furnizor_name din tabelul furnizori se potrivește cu customer_name din tabelul clienți, orașul din tabelul furnizori va fi copiat în câmpul oraș din tabelul clienți.

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 utilizat î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ți 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.

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 Comenzi SQL ACTUALIZARE INEKE:

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 UPDATE SQL sau INEKE nu se aplică.

Această funcție în MySQL> Linie de comanda efectul executării instrucțiunilor SQL este același.

exemple

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

UPDATE sintaxa

Sintaxa unui singur tabel:
ACTUALIZAȚI shya_tabletsh
A STABILIT column_name1=expresia1 [, Nume_ coloana2=expresie2 ...]


Sintaxă cu mai multe tabele:

UPDATE nume_tabel [, nume_tabel...] ​​SET nume_coloană 1=expresie1 [,nume_coloană2=expresie2...]
Instrucțiunea UPDATE actualizează coloanele rândurilor de tabel existente cu valori noi. Clauza SET enumeră coloanele care trebuie modificate și valorile care le sunt alocate. Dacă este specificată clauza WHERE, aceasta specifică ce rânduri trebuie actualizate. În caz contrar, toate rândurile din tabel sunt actualizate. Dacă este specificată clauza ORDER BY, rândurile vor fi actualizate în ordinea specificată. Construcția LIMIT impune o limită a numărului de rânduri care trebuie actualizate.
Declarația UPDATE acceptă următorii modificatori:

  1. Dacă este specificat cuvântul cheie LOW_PRIORITY, UPDATE este amânat până când toți ceilalți clienți au terminat de citit tabelul.
  2. Dacă este specificat cuvântul cheie IGNORE, operațiunea de actualizare nu va eșua chiar dacă apar erori de cheie duplicat. Rândurile care provoacă conflicte nu vor fi actualizate.

Dacă utilizați coloane dintr-un tabel nume_tabelîn expresii, UPDATE folosește valoarea curentă a coloanelor. De exemplu, următoarea declarație crește coloana de vârstă cu unul:
mysql> UPDATE persondata SET age=age+l;
Atribuțiile din UPDATE se fac de la stânga la dreapta. De exemplu, următoarea declarație dublează valoarea coloanei de vârstă și apoi o incrementează cu una: mysql> UPDATE personaj SET varsta=varsta*2, varsta=varsta+l;
Dacă setați valoarea unei coloane la oricare ar fi aceasta, MySQL detectează acest lucru și nu se actualizează.
Dacă actualizați o coloană care a fost declarată NOT nulă la NULL, aceasta este setată la valoarea implicită adecvată pentru tipul de date specific și crește contorul de avertizare cu unul. Valoarea implicită este 0 pentru coloanele numerice, șirul gol ("") pentru coloanele cu caractere și "null" pentru coloanele cu dată și oră.
UPDATE returnează numărul de rânduri care au fost actualizate efectiv. În MySQL 3.22 și mai târziu, funcția mysql_info(). interfata software CU API returnează numărul de rânduri care s-au potrivit cu interogarea și au fost actualizate și numărul de avertismente care au apărut în timpul ACTUALIZĂRII.
Începând cu MySQL 3.23, puteți utiliza limit număr de linii pentru a limita domeniul de aplicare al UPDATE.
Construcția LIMIT funcționează după cum urmează:

  1. Înainte de MySQL 4.0.13, LIMIT era o limită a numărului de rânduri procesate. Operatorul a ieșit imediat ce s-a actualizat număr de linii rânduri care au îndeplinit condiția WHERE.
  2. De la MySQL 4.0.13, limita este limita de potrivire a șirurilor. Operatorul iese imediat ce găsește număr de linii rânduri care îndeplinesc condiția WHERE, indiferent dacă au fost efectiv actualizate.

Dacă instrucțiunea UPDATE include o clauză ordonată, atunci rândurile sunt actualizate în ordinea specificată de această clauză. ORDER BY poate fi folosit începând cu MySQL 4.0.0.
Începând cu MySQL 4.0.0, este, de asemenea, posibil să efectuați operațiuni de ACTUALIZARE care funcționează pe mai multe tabele simultan:
UPDATE items,month SET items.price=month.price WHERE items.id-month. id/ Acest exemplu demonstrează o îmbinare interioară folosind operatorul virgulă, dar UPDATE cu mai multe tabele pot folosi orice tip de îmbinare permis în instrucțiunea SELECT, de exemplu, LEFT JOIN.
Pe o notă!

  • Nu puteți utiliza ORDER BY sau LIMIT în instrucțiuni UPDATE cu mai multe tabele.
Înainte de MySQL 4.0.18, era necesar să aveți privilegiul UPDATE pe toate tabelele utilizate într-o UPDATE cu mai multe tabele, chiar dacă acestea nu erau actualizate efectiv. Începând cu MySQL 4.0.18, astfel de tabele ale căror coloane sunt doar citite, dar nu sunt actualizate trebuie să aibă doar privilegiul SELECT.
Dacă utilizați o instrucțiune UPDATE cu mai multe tabele pe tabele InnoDB care au definite constrângeri de cheie străină, optimizatorul MySQL le poate procesa într-o ordine diferită de cea specificată de relațiile lor părinte-copil. În acest caz, declarația va eșua și tranzacția va fi anulată. În schimb, actualizați un singur tabel și bazați-vă pe proprietatea ON UPDATE, care oferă motorul InnoDB pentru actualizare automata tabele aferente.


Top