Referentni vodič za MySQL. Primjeri SQL upita MySQL bazi podataka Izrada izmjena u nekoliko redaka uz uvjet odabira

naredba UPDATE— mijenja postojeći zapis ili više zapisa u tablici SQL. Mijenja postojeće vrijednosti u tablici ili glavnoj tablici prikaza.

Naredba UPDATE Sintaksa naredbe

Sintaksa naredbe UPDATE

naredba UPDATE. Osnovne ključne riječi i parametri naredbe UPDATE

  • shema - identifikator dopuštenja, obično isti kao neko korisničko ime
  • prikaz tablice - naziv tablice SQL, u kojem se mijenjaju podaci; ako je pogled definiran, podaci se mijenjaju u glavnoj tablici SQL reprezentacija
  • podupit_1 - podupit, koji poslužitelj tretira na isti način kao pogled
  • Solumn - stupac tablice SQL ili podnesaka SQL, čija se vrijednost mijenja; ako je stupac tablice iz rečenice SET izostavljena, vrijednost stupca ostaje nepromijenjena
  • ekspr - ; ovaj izraz može sadržavati glavne varijable i izborne indikatorske varijable
  • podupit_2 - nova vrijednost dodijeljena odgovarajućem stupcu
  • podupit_3 - nova vrijednost dodijeljena odgovarajućem stupcu

GDJE- definira raspon redaka koji se mijenjaju onima za koje postoji određeni uvjet PRAVI; ako je ovaj izraz izostavljen, svi redovi u tablici ili prikazu su izmijenjeni.
Kada se izda odobrenje, bilo koje Okidač AŽURIRANJE, definiran na tablici.
Podupiti. Ako ponuda SET sadrži podupit, vraća točno jedan redak za svaki izmijenjeni redak. Svaka vrijednost u rezultatu podupita dodijeljena je odgovarajućim stupcima popisa u zagradama. Ako podupit ne vrati nijedan redak, stupac se dodjeljuje NULL. Podupiti može odabrati podatke iz modificirane tablice. Ponuda SET može kombinirati izraze i podupiti.

Primjer naredbe UPDATE 1
Promjena ocjene za sve kupce na vrijednost jednaku 200:

Kupci SET ocjena = 200;

Primjer naredbe UPDATE 2
Zamjena vrijednosti stupca u svim redcima tablice općenito se rijetko koristi. Stoga u ekipi, kao u ekipi IZBRISATI, možete koristiti predikat. Da biste izvršili navedenu zamjenu vrijednosti stupca ocjena, za sve kupce koje opslužuje prodavatelj Giovanni (snum = 1003), trebate unijeti:

Kupci SET ocjena = 200 GDJE snum = 1001;

3. primjer naredbe SQL UPDATE
U rečenici SET Možete navesti bilo koji broj vrijednosti za stupce, odvojene zarezima:

Emp SET posao = 'VODITELJ', sal = sal + 1000, deptno = 20 WHERE ename = 'JONES';

Primjer naredbe UPDATE 4
U rečenici SET možete navesti NULL vrijednost bez korištenja posebne sintakse (kao što je IS NULL). Dakle, ako želite postaviti sve ocjene kupaca iz Londona (grad = 'London') na NULL, unijeli biste:

Kupci SET rating = NULL WHERE city = 'London';

Primjer naredbe UPDATE 5
Objašnjava upotrebu sljedeće sintakse naredbi:

  • Oba oblika rečenice SET zajedno u jednoj izjavi.
  • Podupit.
  • WHERE klauzula koja ograničava raspon redaka koji se mogu mijenjati.

Emp a SET deptno =
(IZABERI deptno FROM dept WHERE loc = 'BOSTON'), (sal, comm) = ( IZABERI 1.1*AVG(sal), 1.5*AVG(comm) FROM emp b WHERE a.deptno = b.deptno) WHERE deptno IN ( IZABERI deptno FROM dept WHERE loc = 'DALLAS' OR loc = 'DETROIT');

Gornja izjava čini sljedeće:

  • Modificira samo one zaposlenike koji rade u Dallasu ili Detroitu
  • Postavlja vrijednost stupca deptno za zaposlenike iz Bostona
  • Određuje plaću svakog zaposlenika na 1,1 puta prosječnu plaću cijelog odjela
  • Postavlja proviziju svakog zaposlenika na 1,5 puta prosječnu proviziju za cijeli odjel

Ovaj vodič za MySQL objašnjava kako koristiti MySQL UPDATE izjava sa sintaksom i primjerima.

Sintaksa

U svom najjednostavnijem obliku, sintaksa za naredbu UPDATE prilikom ažuriranja jedne tablice u MySQL-u je:

AŽURIRAJ tablicu SET stupac1 = izraz1, stupac2 = izraz2, ... ;

Međutim, potpuna sintaksa za naredbu MySQL UPDATE prilikom ažuriranja jedne tablice je:

UPDATE [ LOW_PRIORITY ] [ IGNORE ] tablica SET stupac1 = izraz1, stupac2 = izraz2, ... ] ;

Sintaksa za naredbu UPDATE prilikom ažuriranja jedne tablice podacima iz druge tablice u MySQL-u je:

UPDATE table1 SET column1 = (SELECT izraz1 FROM table2 WHERE uvjeti) ;

Sintaksa za naredbu MySQL UPDATE pri ažuriranju više tablica je:

UPDATE tablica1, tablica2, ... SET stupac1 = izraz1, stupac2 = izraz2, ... WHERE tablica1.stupac = tablica2.stupac AND uvjeti;

Parametri ili argumenti

LOW_PRIORITY Izborno. Ako je naveden LOW_PRIORITY, ažuriranje će biti odgođeno dok ne bude procesa koji čitaju iz stol. LOW_PRIORITY se može koristiti s tablicama MyISAM, MEMORY i MERGE koje koriste zaključavanje na razini tablice. ZANEMARI Opcionalno. Ako je omogućeno IGNORE, sve pogreške koje se pojave tijekom ažuriranja se zanemaruju. Ako bi ažuriranje retka rezultiralo kršenjem primarnog ključa ili jedinstvenog indeksa, ažuriranje tog retka se ne izvodi. stupac1, stupac2 Stupci koje želite ažurirati. izraz1, izraz2 Nove vrijednosti koje treba dodijeliti stupac1, stupac2. Tako stupac1 izraz1, stupac2 bi se dodijelila vrijednost izraz2, i tako dalje. WHERE uvjeti Neobavezno. Uvjeti koji moraju biti ispunjeni da bi se ažuriranje izvršilo. ORDER BY izraz Opcionalno. Može se koristiti u kombinaciji s LIMIT za prikladno sortiranje zapisa kada se ograničava broj zapisa koji se ažuriraju. LIMIT number_rows Opcionalno. Ako je navedeno LIMIT, ono kontrolira maksimalan broj zapisa za ažuriranje u tablici. Najviše, broj zapisa koje određuje broj_redova ažurirat će se u tablici.

Primjer - ažuriranje jednog stupca

Pogledajmo vrlo jednostavan primjer MySQL UPDATE upita.

AŽURIRAJ klijente SET last_name = "Anderson" WHERE customer_id = 5000;

Ovaj primjer MySQL UPDATE bi ažurirao prezime na "Anderson" u kupaca stol gdje je customer_id je 5000.

Primjer - ažuriranje više stupaca

Pogledajmo primjer MySQL UPDATE gdje biste mogli ažurirati više od jednog stupca s jednom naredbom UPDATE.

AŽURIRAJ klijente SET state = "California", customer_rep = 32 WHERE customer_id > 100;

Ako želite ažurirati više stupaca, to možete učiniti odvajanjem parova stupac/vrijednost zarezima.

država u "Kaliforniju" i kupac_predstavnik do 32 gdje je customer_id je veći od 100.

Primjer - ažuriranje tablice podacima iz druge tablice

Pogledajmo primjer UPDATE koji pokazuje kako ažurirati tablicu podacima iz druge tablice u MySQL-u.

AŽURIRAJ klijente
POSTAVITE grad = (ODABERITE grad
OD dobavljača
WHERE dobavljači.naziv_dobavljača = kupci.naziv_kupca)
WHERE customer_id > 2000;

Ovaj primjer UPDATE ažurirao bi samo kupaca tablica za sve zapise u kojima se customer_id veći je od 2000. Kada je ime dobavljača od dobavljači tablica odgovara Ime kupca od kupaca stol, Grad iz tablice dobavljača bi se kopirao u Grad polje u kupaca stol.

Primjer - ažuriranje više tablica

Pogledajmo primjer MySQL UPDATE gdje biste mogli izvršiti ažuriranje koje uključuje više od jedne tablice u jednoj izjavi UPDATE.

UPDATE kupci, dobavljači SET kupci.grad = dobavljači.grad WHERE kupci.customer_id = dobavljači.dobavljač_id;

Ovaj primjer izjave MySQL UPDATE ažurirao bi Grad polje u kupaca stol za Grad od dobavljači stol gdje je customer_id odgovara dobavljač_id.

Ažuriranje podataka u bazi podataka znači promjenu vrijednosti u postojećim zapisima tablice. U ovom slučaju moguće je mijenjati vrijednosti polja u grupi redaka (čak i svih redaka tablice) i uređivati ​​vrijednost polja u pojedinačnom retku.

U SQL-u možete promijeniti zapis u tablici baze podataka pomoću naredbe UPDATE. U svom minimalnom obliku, naredba za ažuriranje podataka izgleda ovako:

AŽURIRAJ tablica SET polje = vrijednost

Ovdje, AŽURIRAJ– naredba koja označava da je zahtjev za ažuriranje podataka;

stol– naziv tablice u kojoj će se vršiti izmjene;

SET– naredba iza koje slijede polja odvojena zarezom s dodijeljenim vrijednostima;

polje– polje tablice u koje će se izvršiti promjena;

značenje– nova vrijednost koja će se unijeti u polje.


Na primjer, ako trebate postaviti polje u svim recima tablice na nulu, možete pokrenuti sljedeći upit:

AŽURIRAJ roba SET cijena = 0

U ovom slučaju, polje cijene u apsolutno svim dostupnim redovima tablice će imati vrijednost 0.

Promjena jedne vrijednosti

Promjena vrijednosti svih polja u tablici iznimno je rijetka. Najčešće je potrebno promijeniti vrijednost određenog unosa. Da biste to učinili, na kraju retka s naredbom UPDATE bit će dodana direktiva WHERE koja specificira uvjet koji određuje na kojem retku treba izvršiti operaciju ažuriranja.

Postoji tablica:

Na primjer, trebamo ažurirati cijenu proizvoda njegovom vrijednošću koja nam je poznata num. Da biste to učinili, pokrenite sljedeći upit:

AŽURIRAJ roba SET cijena = 150 WHERE num = 2

Sada će prije operacije promjene polja biti odabran red koji zadovoljava uvjet num = 2. U tablici postoji samo jedan takav red. U ovoj akciji cijena će se promijeniti na vrijednost 150. Kao rezultat toga dobivamo tablicu s promijenjenom cijenom proizvoda.

Izrada izmjena u više redaka s uvjetom odabira

Ako se sjetite sve raznolikosti uvjete u zahtjevu, možete zamisliti koliko uzorci mogu biti raznoliki. Stoga se upiti ažuriranja mogu izvršiti s jednim redom, s grupom redaka ili sa svim redcima tablice. Sve ovisi o zadatku s kojim se suočavate, kao io tome na kojim redovima tablice morate izvršiti operacije ažuriranja.

Na primjer, želimo prepoloviti cijenu sve robe koja trenutno košta 100 ili više. Zahtjev:

AŽURIRAJ roba SET cijena = cijena / 2 WHERE cijena >= 100

Stanje GDJE ovdje sadrži pravilo prema kojem će biti odabrani samo proizvodi čija je cijena jednaka ili veća od 100, a na proizvode s cijenom ispod 100 zahtjev neće utjecati.

cijena = cijena / 2– formulu po kojoj će se izračunati nova cijena robe. Nova cijena bit će ispisana jednako staroj cijeni podijeljenoj s dva.

Kao rezultat izvršenja takvog upita, dobit ćemo tablicu s promijenjenim zapisima:

Ažuriranje vrijednosti u više polja redaka

Ako je potrebno ažurirati nekoliko polja odjednom, sva polja sa svojim vrijednostima su naznačena iza direktive SET, odvojena zarezima. Na primjer, trebate promijeniti naziv i cijenu proizvoda s kodom 2 u "željezo", koji košta 300:

AŽURIRAJ roba SET title = "željezo" , price = 300 WHERE num = 2 !}

Ovaj će upit svakom odgovarajućem polju u nizu dodijeliti njegovu vrijednost. A uvjet će pokazati u kojem retku će se promjene izvršiti.


Slijede glavne vrste operacija ažuriranja. Na temelju njih generiraju se upiti za rješavanje većine problema modifikacije podataka u razvoju pomoću SQL-a.

Ako trebamo promijeniti ili ažurirati podatke u MySQL-u, možemo koristiti naredbu SQL UPDATE za rad. ,

gramatika

Slijedi naredba UPDATE za promjenu opće SQL sintakse MySQL Sheet Data:

UPDATE table_name SET polje1=nova-vrijednost1, polje2=nova-vrijednost2

  • Možete ažurirati jedno ili više polja istovremeno.
  • Možete navesti bilo koji uvjet u klauzuli WHERE.
  • Također možete ažurirati podatke u zasebnoj tablici.

Kada trebate ažurirati podatke navedene u recima tablice, INEKE je vrlo koristan.

Naredbeni redak za ažuriranje podataka

U nastavku ćemo ažurirati w3big_tbl naveden u podatkovnoj tablici pomoću SQL naredbe UPDATE:

primjeri

Sljedeći primjer će ažurirati podatkovnu tablicu kao w3big_title w3big_id vrijednost polja 3:

# mysql -u root -p lozinka; Unesite lozinku:******* mysql> use w3big; Baza podataka promijenjena mysql> AŽURIRAJ w3big_tbl -> POSTAVI w3big_title="Učenje JAVA-e" -> WHERE w3big_id=3; Query OK, 1 row affected (0.04 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> !}

Koristite PHP skriptu za ažuriranje podataka

PHP funkcija za korištenje mysql_query() za izvršavanje SQL naredbi, možete koristiti naredbu SQL UPDATE ili se INEKE ne primjenjuje.

Ova funkcija u MySQL> naredbenom retku učinak izvršavanja SQL naredbi je isti.

primjeri

Sljedeći primjer će ažurirati podatke w3big_id u polju w3big_title 3.