Mysql frissítési szintaxis. A MySQL lekérdezések FRISSÍTÉSE. Egy érték megváltoztatása

FRISSÍTÉS tbl_name SET col_name1=expr1 [, col_name2=expr2, ...]

Az UPDATE utasítás frissíti az oszlopokat az új értékekkel egy meglévő táblázat soraiban. A SET utasítás megadja, hogy mely oszlopokat kell módosítani, és milyen értékeket kell beállítani bennük. A WHERE záradék, ha van, meghatározza, hogy mely sorok kerülnek frissítésre. Ellenkező esetben az összes sor frissül. Ha ORDER BY kifejezés van megadva, akkor a sorok az abban megadott sorrendben frissülnek.

Ha a LOW_PRIORITY kulcsszó meg van adva, akkor az UPDATE parancs végrehajtása késik, amíg a többi kliens be nem fejezi a táblázat beolvasását.

Ha az IGNORE kulcsszó van megadva, a frissítési parancs akkor sem szakad meg, ha a frissítés duplikált kulcshibát észlel. Az ütközést okozó sorok nem frissülnek.

Ha egy oszlopot a megadott kifejezésből ér el a tbl_name argumentum, akkor az UPDATE parancs az adott oszlop aktuális értékét használja. Például a következő parancs az életkor oszlopot az aktuális értékénél eggyel nagyobb értékre állítja be:

Mysql> UPDATE persondata SET age=age+1;

Az UPDATE parancs balról jobbra rendeli az értékeket. Például a következő parancs megkettőzi az életkor oszlopot, majd növeli azt:

Mysql> UPDATE persondata SET age=age*2, age=age+1;

Ha egy oszlop az aktuális értékre van állítva, akkor a MySQL ezt észleli, és nem frissíti.

Az UPDATE parancs a ténylegesen módosított sorok számát adja vissza. IN MySQL verziók A 3.22-es és újabb verziókban a C API mysql_info() függvény a talált és frissített sorok számát, valamint az UPDATE végrehajtásakor előforduló figyelmeztetések számát adja vissza.

A MySQL 3.23-as verziójában a LIMIT # használatával biztosíthatja, hogy csak a megadott számú sor kerüljön módosításra.

UPDATE szintaxis

Egytáblás szintaxis:
FRISSÍTÉS shya_tabletsh
KÉSZLET oszlop_név1=kifejezés1 [, Név_ oszlop2=kifejezés2...]


Többtáblás szintaxis:

UPDATE table_name [, table_name...] SET oszlopnév 1=kifejezés1 [,oszlop_neve2=kifejezés2...]
Az UPDATE utasítás új értékekkel frissíti a meglévő táblázatsorok oszlopait. A SET záradék felsorolja a módosítandó oszlopokat és a hozzájuk rendelendő értékeket. Ha a WHERE záradék meg van adva, akkor ez meghatározza, hogy mely sorokat kell frissíteni. Ellenkező esetben a táblázat összes sora frissül. Ha az ORDER BY záradékot adjuk meg, a sorok a megadott sorrendben frissülnek. A LIMIT konstrukció korlátozza a frissítendő sorok számát.
Az UPDATE utasítás a következő módosítókat támogatja:

  1. Ha a LOW_PRIORITY kulcsszó van megadva, az UPDATE késik, amíg az összes többi ügyfél be nem olvassa a táblázatot.
  2. Ha az IGNORE kulcsszó meg van adva, a frissítési művelet akkor sem sikerül, ha ismétlődő kulcshibák fordulnak elő. Az ütközést okozó sorok nem frissülnek.

Ha táblázatból származó oszlopokat használ táblázat_neve a kifejezésekben az UPDATE az oszlopok aktuális értékét használja. Például a következő utasítás eggyel növeli az életkor oszlopot:
mysql> UPDATE persondata SET age=age+l;
A hozzárendelések az UPDATE-ben balról jobbra történnek. Például a következő utasítás megduplázza az életkor oszlop értékét, majd eggyel növeli: mysql> személyi adatok FRISSÍTÉSE BEÁLLÍTÁS: életkor=életkor*2, életkor=életkor+l;
Ha beállítja egy oszlop értékét arra, ami az, a MySQL észleli ezt, és nem frissíti.
Ha egy NEM nullává nyilvánított oszlopot NULL-ra frissít, akkor az az adott adattípusnak megfelelő alapértelmezett értékre lesz állítva, és eggyel növeli a figyelmeztetésszámlálót. Az alapértelmezett érték 0 a numerikus oszlopoknál, az üres karakterlánc ("") a karakteres oszlopoknál, és "null" a dátum és idő oszlopoknál.
Az UPDATE a ténylegesen frissített sorok számát adja vissza. A MySQL 3.22 és újabb verzióiban a mysql_info() C API függvény API visszaadja a lekérdezésnek megfelelő és frissített sorok számát, valamint a FRISSÍTÉS során előforduló figyelmeztetések számát.
A MySQL 3.23-tól kezdve használhatja a limitet sorok_száma az UPDATE hatókörének korlátozásához.
A LIMIT konstrukció a következőképpen működik:

  1. A MySQL 4.0.13 előtt a LIMIT korlátozta a feldolgozott sorok számát. Az operátor a frissítés után azonnal kilépett sorok_száma sorok, amelyek megfeleltek a WHERE feltételnek.
  2. A MySQL 4.0.13 óta a limit a karakterlánc-illesztési korlát. A kezelő azonnal kilép, amint megtalálja sorok_száma sorok, amelyek megfelelnek a WHERE feltételnek, függetlenül attól, hogy valóban frissítették-e.

Ha az UPDATE utasítás záradék szerinti sorrendet tartalmaz, akkor a sorok az ebben a záradékban meghatározott sorrendben frissülnek. Az ORDER BY a MySQL 4.0.0-tól kezdve használható.
A MySQL 4.0.0 óta lehetőség van olyan UPDATE műveletek végrehajtására is, amelyek egyszerre több táblán működnek:
UPDATE tételek,hónap SET items.price=hónap.ár WHERE tételek.id-hónap. id/ Ez a példa egy belső összeillesztést mutat be vessző operátor használatával, de a többtáblás UPDATE bármilyen csatlakozási típust használhat SELECT utasítás, például LEFT JOIN.
Jegyzet!

  • Az ORDER BY vagy a LIMIT nem használható többtáblás UPDATE utasításokban.
A MySQL 4.0.18 előtt szükség volt UPDATE jogosultságra a többtáblás UPDATE-ben használt összes táblán, még akkor is, ha ténylegesen nem frissültek. A MySQL 4.0.18-tól kezdve az olyan tábláknak, amelyek oszlopait csak olvassák, de nem frissítik, csak SELECT jogosultsággal kell rendelkezniük.
Ha többtáblás UPDATE utasítást használ olyan InnoDB-táblákon, amelyekben idegenkulcs-megszorítások vannak megadva, a MySQL-optimalizáló a szülő-utód kapcsolatok által meghatározott sorrendtől eltérő sorrendben dolgozhatja fel azokat. Ebben az esetben a nyilatkozat meghiúsul, és a tranzakció visszaáll. Ehelyett frissítsen egyetlen táblát, és hagyatkozzon az ON UPDATE tulajdonságra, amely az InnoDB motort biztosítja automatikus frissítés kapcsolódó táblázatok.

UPDATE parancs- már módosítja meglévő rekordot vagy több rekordban egy táblázatban SQL. Módosítja a meglévő értékeket egy táblázatban vagy a nézet főtáblájában.

UPDATE Command Command Syntax

UPDATE parancs szintaxisa

UPDATE parancs. Alapvető kulcsszavakatés UPDATE parancs paraméterei

  • séma - engedélyazonosító, általában megegyezik valamilyen felhasználónévvel
  • táblázat nézet - táblázat neve SQL, amelyben az adatok megváltoznak; ha egy nézet definiálva van, az adatok a főtáblában módosulnak SQL beadványok
  • allekérdezés_1 – részlekérdezés, amelyet a szerver ugyanúgy kezel, mint egy nézetet
  • Veloszlop - táblázat oszlopa SQL vagy beadványok SQL, amelynek értéke megváltozik; ha a táblázat oszlopa mondatból van KÉSZLET kimarad, az oszlop értéke változatlan marad
  • expr - ; ez a kifejezés tartalmazhat fő változókat és opcionális indikátorváltozókat
  • részlekérdezés_2 - új értéket rendel a megfelelő oszlophoz
  • részlekérdezés_3 - új értéket rendel a megfelelő oszlophoz

AHOL- meghatározza azon sorok tartományát, amelyeket azokkal módosítani kell, amelyekre adott feltétel vonatkozik IGAZ; ha ez a kifejezés kimarad, a táblázat vagy nézet összes sora módosul.
A jóváhagyás kiadásakor bármely UPDATE trigger, meghatározva a táblázatban.
Allekérdezések. Ha az ajánlat KÉSZLET tartalmaz részlekérdezés, pontosan egy sort ad vissza minden egyes módosított sorhoz. Az allekérdezés eredményének minden értéke a megfelelő listaoszlopokhoz van hozzárendelve zárójelben. Ha az allekérdezés nem ad vissza egyetlen sort sem, akkor az oszlop hozzá van rendelve NULL. Allekérdezések adatokat választhat ki a módosított táblából. Ajánlat KÉSZLET kombinálni tudja a kifejezéseket és részlekérdezések.

UPDATE parancs 1. példa
Az összes vásárló értékelésének módosítása 200-ra egyenlő értékre:

Ügyfelek KÉSZLETértékelés = 200;

UPDATE parancs 2. példa
Általában ritkán használják az oszlopértékek cseréjét a táblázat összes sorában. Ezért a csapatban, mint a csapatban TÖRÖL, használhat állítmányt. Az értékelési oszlop értékeinek meghatározott cseréjének végrehajtásához az összes Giovanni eladó által kiszolgált ügyfélnél (snum = 1003) be kell írnia:

Ügyfelek KÉSZLETértékelés = 200 WHERE snum = 1001;

SQL UPDATE parancs 3. példa
Egy mondatban KÉSZLET Az oszlopokhoz tetszőleges számú értéket megadhat, vesszővel elválasztva:

Emp KÉSZLET job = 'MANAGER', sal = sal + 1000, deptno = 20 WHERE ename = 'JONES';

UPDATE parancs 4. példa
Egy mondatban KÉSZLET megadhat NULL értéket speciális szintaxis (például IS NULL) használata nélkül. Így ha az összes vásárlói értékelést Londonból (város = 'London') NULL-ra szeretné állítani, akkor a következőket kell beírnia:

Ügyfelek KÉSZLETértékelés = NULL WHERE város = 'London';

UPDATE parancs 5. példa
Elmagyarázza a következő parancs szintaxis használatát:

  • Mindkét mondatforma KÉSZLET együtt egy nyilatkozatban.
  • Allekérdezés.
  • Egy WHERE záradék, amely korlátozza a módosítható sorok tartományát.

Emp a KÉSZLET deptno =
(KIVÁLASZTÁS deptno FROM dept WHERE loc = 'BOSTON'), (sal, comm) = ( KIVÁLASZTÁS 1.1*AVG(sal), 1.5*AVG(comm) FROM emp b WHERE a.deptno = b.deptno) WHERE deptno IN ( KIVÁLASZTÁS deptno FROM dept WHERE loc = 'DALLAS' OR loc = 'DETROIT');

A fenti nyilatkozat a következőket teszi:

  • Csak azokat az alkalmazottakat módosítja, akik Dallasban vagy Detroitban dolgoznak
  • Beállítja a deptno oszlop értékét a bostoni alkalmazottak számára
  • Minden alkalmazott fizetését a teljes osztály átlagkeresetének 1,1-szeresében határozza meg
  • Minden alkalmazott jutalékát a teljes osztály átlagos jutalékának 1,5-szeresében határozza meg

Ha adatokat kell módosítanunk vagy frissítenünk a MySQL-ben, akkor az SQL UPDATE parancsot használhatjuk. ,

nyelvtan

Az alábbiakban található az UPDATE parancs, amelyet módosítani kell MySQL adatok Lapadatok Általános SQL szintaxis:

FRISSÍTÉS tábla_neve SET mező1=új-érték1, mező2=új-érték2

  • Egy vagy több mezőt egyszerre frissíthet.
  • A WHERE záradékban bármilyen feltételt megadhat.
  • Az adatokat külön táblázatban is frissítheti.

Ha frissíteni kell a táblázat soraiban megadott adatokat, az INEKE nagyon hasznos.

Parancssor az adatok frissítéséhez

Az alábbiakban frissítjük az adattáblázatban megadott w3big_tbl-t az SQL UPDATE paranccsal:

példák

A következő példa az adattáblázatot w3big_title w3big_id 3 mezőértékként frissíti:

# mysql -u root -p jelszó; Írja be a jelszót:******* mysql> use w3big; Adatbázis megváltozott mysql> UPDATE w3big_tbl -> SET w3big_title="JAVA tanulása" -> WHERE w3big_id=3; Query OK, 1 row affected (0.04 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> !}

Használjon PHP szkriptet az adatok frissítéséhez

PHP függvény használata mysql_query() SQL utasítások végrehajtásához, használhatja az SQL UPDATE utasítást, vagy az INEKE nem vonatkozik.

Ez a funkció a MySQL>-ben parancssor az SQL utasítások végrehajtásának hatása ugyanaz.

példák

A következő példa frissíti a w3big_id adatokat a w3big_title 3 mezőben.