Aktualizácia Mysql je komplexný aktualizačný dotaz. Syntax UPDATE. Príklad aktualizácie jedného stĺpca



Obsah článku
1. Najjednoduchšie MySQL dotazy
2. Jednoduché SELECT dotazy
3. Jednoduché otázky INSERT (nový záznam).
4. Jednoduché UPDATE (prepísanie, pripojenie) dotazy
5. Jednoduché DELETE (vymazanie záznamu) dotazy
6. Jednoduché DROP (vymazanie tabuľky) dotazy
7. Komplexné MySQL dotazy
8. MySQL dotazy a PHP premenné

1. Najjednoduchšie SQL dotazy

1. Zobrazí zoznam VŠETKÝCH databáz.

ZOBRAZIŤ databázy;
2. Vypíše VŠETKY tabuľky v databáze base_name.

ZOBRAZIŤ tabuľky v base_name;

2. Jednoduché SELECT dotazy do databázy MySQL

VYBRAŤ– dotaz, ktorý vyberá existujúce údaje z databázy. Môžete zadať špecifické parametre výberu pre výber. Napríklad podstata požiadavky v ruštine znie takto: VYBERTE také a také stĺpce Z takej a takej tabuľky WHERE parameter takého a takého stĺpca sa rovná hodnote.

1. Vyberie VŠETKY údaje v tabuľke tbl_name.

SELECT * FROM názov_tbl;
2. Zobrazuje počet záznamov v tabuľke tbl_name.

SELECT pocet(*) FROM tbl_name;
3. Vyberie (SELECT) z tabuľky (FROM) tbl_name limit (LIMIT) 3 záznamy, počnúc od 2.

SELECT * FROM tbl_name LIMIT 2,3;
4. Vyberie (SELECT) VŠETKY (*) záznamy z (FROM) tabuľky tbl_name a zoradí ich (ORDER BY) podľa poľa id v poradí.

SELECT * FROM tbl_name ORDER BY id;
5. Vyberie (SELECT) VŠETKY záznamy z (FROM) tabuľky tbl_name a zoradí ich (ORDER BY) podľa poľa id v REVERSE poradí.

SELECT * FROM tbl_name ORDER BY id DESC;
6. Vyberie ( VYBRAŤ) VŠETKY (*) záznamy z ( OD) tabuľky používateľov a triedi ich ( ZORADIŤ PODĽA) na ihrisku id vo vzostupnom poradí, limit ( LIMIT) prvých 5 záznamov.

SELECT * FROM užívateľov ORDER BY ID LIMIT 5;
7. Vyberie všetky záznamy z tabuľky používateľov, kde je pole meno zodpovedá hodnote Gena.

SELECT * FROM užívateľov WHERE fname="Gena";
8. Vyberie všetky záznamy z tabuľky používateľov, kde je hodnota poľa meno začať s Ge.

SELECT * FROM users WHERE fname LIKE "Ge%";
9. Vyberie všetky záznamy z tabuľky používateľov, Kde meno končí s na a zoradí záznamy vo vzostupnom poradí podľa hodnoty id.

SELECT * FROM users WHERE fname LIKE "%na" ORDER BY id;
10. Vyberie všetky údaje zo stĺpcov meno, meno od stola používateľov.

SELECT fname, lname FROM užívateľov;

11. Povedzme, že v tabuľke používateľských údajov máte krajinu. Ak teda chcete zobraziť LEN zoznam vyskytujúcich sa hodnôt (aby sa napríklad Rusko nezobrazovalo 20-krát, ale iba raz), potom použijeme DISTINCT. Vyvedie Rusko, Ukrajinu, Bielorusko z masy opakujúcich sa hodnôt. Teda zo stola používateľov reproduktory krajina Vypíšu sa VŠETKY UNIKÁTNE hodnoty

VYBERTE DISTINCT krajinu OD používateľov;
12. Vyberie VŠETKY riadkové údaje z tabuľky používateľov Kde Vek má hodnoty 18,19 a 21.

SELECT * FROM užívateľov WHERE age IN (18,19,21);
13. Vyberie MAXIMÁLNU hodnotu Vek v tabulke používateľov. Teda ak máte vo svojej tabuľke najväčšiu hodnotu Vek(z anglického veku) je 55, potom bude výsledok dopytu 55.

SELECT max(vek) FROM užívateľov;
14. Vyberte údaje z tabuľky používateľov podľa polí názov A Vek KDE Vek má najmenšiu hodnotu.

SELECT meno, min(vek) FROM užívateľov;
15. Vyberte údaje z tabuľky používateľov na ihrisku názov KDE id NEROVNÁ SA 2.

SELECT meno FROM užívateľov WHERE id!="2";

3. Jednoduché otázky INSERT (nový záznam).

VLOŽIŤ– dotaz, ktorý vám umožní POČIATOČNE vložiť záznam do databázy. To znamená, že vytvorí NOVÝ záznam (riadok) v databáze.

1. robí nový vstup v tabulke používateľov, v teréne názov vloží Sergeja a v teréne Vek vloží 25. Do tabuľky sa teda pridá nový riadok s týmito hodnotami. Ak je stĺpcov viac, zostávajúce zostanú prázdne alebo s predvolenými hodnotami.

INSERT INTO užívateľov (meno, vek) VALUES ("Sergey", "25");

4. Jednoduché UPDATE dotazy do databázy MySQL

AKTUALIZOVAŤ– dotaz, ktorý vám umožňuje REZERVOVAŤ hodnoty polí alebo PRIDAŤ niečo do už existujúceho riadku v databáze. Existuje napríklad hotový riadok, ale v ňom je potrebné prepísať parameter veku, pretože sa časom zmenil.

1. V tabuľke používateľov Vek sa stáva 18.

AKTUALIZOVAŤ používateľov SET vek = "18" WHERE id = "3";
2. Všetko je rovnaké ako v prvej požiadavke, len zobrazuje syntax požiadavky, kde sú prepísané dve alebo viac polí.
V tabulke používateľov WHERE id sa rovná hodnote 3 polí Vek má 18 a krajina Rusko.

AKTUALIZOVAŤ SET používateľov vek = "18", krajina = "Rusko" WHERE id = "3";

5. Jednoduché DELETE (vymazanie záznamu) dotazy do databázy MySQL

VYMAZAŤ– dotaz, ktorý vymaže riadok z tabuľky.

1. Odstráni riadok z tabuľky používateľov KDE id rovná sa 10.

DELETE FROM users WHERE id = "10";

6. Jednoduché DROP (vymazanie tabuľky) dopyty do databázy MySQL

POKLES– dotaz, ktorý vymaže tabuľku.

1. Vymaže celú tabuľku názov_tbl.

DROP TABLE názov_tbl;

7. Komplexné dotazy do databázy MySQL

Zaujímavé otázky, ktoré môžu byť užitočné aj pre skúsených používateľov

SELECT id,name,country FROM users,admins WHERE TO_DAYS(NOW()) - TO_DAYS(registration_date)<= 14 AND activation != "0" ORDER BY registration_date DESC;
Tento zložitý dotaz VYBERÁ stĺpce id, meno, krajina V TABUĽKÁCH používatelia, správcovia KDE dátum registrácie(dátum) nie starší 14 dni I aktivácia NEROVNÁ SA 0 , Triediť podľa dátum registrácie v opačnom poradí (nové ako prvé).

AKTUALIZOVAŤ používateľov SET vek = "18+" WHERE vek = (VYBERTE vek FROM používateľov WHERE muž = "muž");
Vyššie je uvedený príklad tzv žiadosť v rámci žiadosti v jazyku SQL. Aktualizujte vek medzi používateľmi na 18+, pričom pohlavie je muž. Takéto možnosti žiadosti neodporúčam. Z vlastnej skúsenosti poviem, že je lepšie vytvoriť niekoľko samostatných - rýchlejšie sa spracujú.

8. Databázové dotazy MySQL a PHP

V dopytoch MySQL na stránke PHP môžete vkladať premenné ako porovnávané hodnoty atď. Pár príkladov

1. Vyberie všetky záznamy z tabuľky používateľov, kde je pole meno zodpovedá hodnote premennej $name.

SELECT * FROM užívateľov WHERE fname="$name";
2. V tabuľke používateľov WHERE id sa rovná hodnote 3 polí Vek sa zmení na hodnotu premennej $vek.

AKTUALIZOVAŤ používateľov SET vek = "$vek" WHERE id = "3";

Pozor! Ak máte záujem o iný príklad, napíšte otázku do komentárov!

V tomto návode sa naučíte používať príkaz MySQL UPDATE so syntaxou a príkladmi.

Popis

príkaz MySQL UPDATE slúži na aktualizáciu existujúcich záznamov v tabuľke v databáze údaje MySQL. Existujú tri syntaxe príkazu UPDATE v závislosti od typu aktualizácie, ktorú chcete vykonať.

Syntax

Jednoduchá forma syntaxe pre príkaz UPDATE pri aktualizácii jednej tabuľky v MySQL:

Teraz je úplná syntax pre príkaz MySQL UPDATE pri aktualizácii jednej tabuľky:

ALEBO
Syntax pre príkaz UPDATE pri aktualizácii jednej tabuľky údajmi z inej tabuľky v MySQL je:

ALEBO
Syntax MySQL pre príkaz UPDATE pri aktualizácii viacerých tabuliek je:

Parametre alebo argumenty

LOW_PRIORITY – voliteľné. Ak je zadaná hodnota LOW_PRIORITY, aktualizácia sa oneskorí, kým z tabuľky nebudú čítať žiadne procesy. LOW_PRIORITY možno použiť s tabuľkami MyISAM, MEMORY a MERGE, ktoré používajú uzamykanie na úrovni tabuľky.
IGNOROVAŤ – voliteľné. Ak je zadaná možnosť IGNORE, všetky chyby zaznamenané počas aktualizácie budú ignorované. Ak by aktualizácia riadka porušila primárny kľúč alebo jedinečný index, aktualizácia tohto riadka zlyhá.
stĺpec1, stĺpec2 sú stĺpce, ktoré chcete aktualizovať.
výraz1 , výraz2 — nové hodnoty na priradenie stĺpca1 , stĺpca2 . Takže stĺpcu1 je priradená hodnota výraz1 , stĺpcu2 je priradená hodnota výraz2 atď.
WHERE podmienky - voliteľné. Podmienky, ktoré musia byť splnené, aby sa vykonala aktualizácia.
ORDER PODĽA výrazu - voliteľné. Môže sa použiť v spojení s LIMIT na vhodné triedenie záznamov a zároveň obmedzenie počtu záznamov, ktoré sa majú aktualizovať.
LIMIT počet_riadkov – voliteľné. Ak je zadaný LIMIT, riadi maximálny počet záznamov na aktualizáciu v tabuľke. V tabuľke sa aktualizuje maximálny počet záznamov zadaný v súbore number_rows.

Príklad aktualizácie jedného stĺpca

Pozrime sa na veľmi jednoduchý príklad dotazu MySQL UPDATE.

V tomto príklade MySQL aktualizoval UPDATE pole last_name na „Ford“ v tabuľke zákazníkov, kde customer_id = 500.

Príklad aktualizácie viacerých stĺpcov

Pozrime sa na príklad MySQL UPDATE, kde môžete aktualizovať viac ako jeden stĺpec pomocou jedného príkazu UPDATE.

Ak chcete aktualizovať viacero stĺpcov, môžete tak urobiť oddelením párov stĺpec/hodnota čiarkami.
Tento príkladový príkaz MySQL UPDATE aktualizoval stav na 'Nevada' a customer_rep na 23, kde customer_id je väčšie ako 200.

Príklad aktualizácie tabuľky údajmi z inej tabuľky

Pozrime sa na príklad UPDATE, ktorý ukazuje, ako aktualizovať tabuľku údajmi z inej tabuľky v MySQL.

MySQL

Tento príklad UPDATE aktualizuje iba tabuľku zákazníkov pre všetky záznamy, kde je customer_id väčšie ako 5 000. Keď sa názov_dodávateľa z tabuľky dodávateľov zhoduje s názvom meno_zákazníka z tabuľky zákazníkov, mesto z tabuľky dodávateľov sa skopíruje do poľa mesta tabuľky zákazníkov.

Tento tutoriál MySQL vysvetľuje, ako používať MySQL AKTUALIZOVAŤ vyhlásenie so syntaxou a príkladmi.

Syntax

Vo svojej najjednoduchšej forme je syntax pre príkaz UPDATE pri aktualizácii jednej tabuľky v MySQL:

UPDATE table SET stĺpec1 = výraz1, stĺpec2 = výraz2, ... ;

Úplná syntax pre príkaz MySQL UPDATE pri aktualizácii jednej tabuľky je však:

UPDATE [ LOW_PRIORITY ] [ IGNORE ] tabuľka SET stĺpec1 = výraz1, stĺpec2 = výraz2, ... ] ;

Syntax pre príkaz UPDATE pri aktualizácii jednej tabuľky údajmi z inej tabuľky v MySQL je:

UPDATE table1 SET stĺpec1 = (SELECT výraz1 FROM tabuľka2 WHERE podmienky) ;

Syntax pre príkaz MySQL UPDATE pri aktualizácii viacerých tabuliek je:

UPDATE tabuľka1, tabuľka2, ... SET stĺpec1 = výraz1, stĺpec2 = výraz2, ... WHERE tabuľka1.stĺpec = tabuľka2.stĺpec AND podmienky;

Parametre alebo argumenty

LOW_PRIORITY Voliteľné. Ak je zadaná hodnota LOW_PRIORITY, aktualizácia sa oneskorí, kým z nej nebudú čítať žiadne procesy tabuľky. LOW_PRIORITY možno použiť s tabuľkami MyISAM, MEMORY a MERGE, ktoré používajú uzamykanie na úrovni tabuľky. IGNOROVAŤ Voliteľné. Ak je zadaná možnosť IGNORE, všetky chyby zaznamenané počas aktualizácie budú ignorované. Ak by aktualizácia riadka viedla k porušeniu primárneho kľúča alebo jedinečného indexu, aktualizácia tohto riadka sa nevykoná. stĺpec1, stĺpec2 Stĺpce, ktoré chcete aktualizovať. výraz1, výraz2 Nové hodnoty, ktoré sa majú priradiť stĺpec1, stĺpec2. Takže stĺpec1 výraz1, stĺpec2 bude priradená hodnota výraz2, a tak ďalej. KDE podmienky Voliteľné. Podmienky, ktoré musia byť splnené, aby sa aktualizácia vykonala. OBJEDNAŤ PODĽA výrazu Voliteľné. Môže sa použiť v kombinácii s LIMIT na vhodné triedenie záznamov pri obmedzovaní počtu záznamov, ktoré sa majú aktualizovať. LIMIT number_rows Voliteľné. Ak je zadaný LIMIT, riadi maximálny počet záznamov na aktualizáciu v tabuľke. Maximálne počet záznamov určený počet_riadkov budú aktualizované v tabuľke.

Príklad – Aktualizujte jeden stĺpec

Pozrime sa na veľmi jednoduchý príklad dopytu MySQL UPDATE.

AKTUALIZÁCIA SET zákazníkov last_name = "Anderson" WHERE customer_id = 5000;

Tento príklad aktualizácie MySQL by aktualizoval súbor priezvisko na "Anderson" v zákazníkov tabuľka, kde je customer_id je 5000.

Príklad – Aktualizácia viacerých stĺpcov

Pozrime sa na príklad MySQL UPDATE, kde možno budete chcieť aktualizovať viac ako jeden stĺpec pomocou jedného príkazu UPDATE.

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

Ak chcete aktualizovať viacero stĺpcov, môžeš urobte to oddelením párov stĺpec/hodnota čiarkami.

štát do „Kalifornie“ a customer_rep do 32, kde je customer_id je väčší ako 100.

Príklad - Aktualizácia tabuľky údajmi z inej tabuľky

Pozrime sa na príklad UPDATE, ktorý ukazuje, ako aktualizovať tabuľku údajmi z inej tabuľky v MySQL.

AKTUALIZÁCIA zákazníkov
SET mesto = (VYBERTE mesto
OD dodávateľov
WHERE Suppliers.supplier_name = customers.customer_name)
WHERE customer_id > 2000;

Tento príklad UPDATE by aktualizoval iba zákazníkov tabuľka pre všetky záznamy, kde customer_id je väčšia ako 2000. Keď meno dodavateľa z dodávateľov tabuľka zodpovedá Meno zákazníka z zákazníkov stôl, mesto z tabuľky dodávateľov by sa skopírovali do mesto poli v zákazníkov tabuľky.

Príklad – Aktualizácia viacerých tabuliek

Pozrime sa na príklad UPDATE MySQL, kde možno budete chcieť vykonať aktualizáciu, ktorá zahŕňa viac ako jednu tabuľku v jednom príkaze UPDATE.

AKTUALIZÁCIA odberateľov, dodávateľov NASTAVTE odberateľov.mesto = dodávatelia.mesto KDE customers.customer_id = id_dodávateľa;

Tento príklad príkazu MySQL UPDATE by aktualizoval mesto poli v zákazníkov stôl k mesto z dodávateľov tabuľka, kde je customer_id zodpovedá dodávateľ_id.

Ak potrebujeme zmeniť alebo aktualizovať údaje v MySQL, môžeme použiť príkaz SQL UPDATE. ,

gramatika

Nasleduje príkaz UPDATE na zmenu všeobecnej syntaxe SQL údajov hárka MySQL:

AKTUALIZÁCIA SET názvu tabuľky pole1=nová-hodnota1, pole2=nová-hodnota2

  • Môžete aktualizovať jedno alebo viac polí súčasne.
  • V klauzule WHERE môžete zadať akúkoľvek podmienku.
  • Údaje môžete aktualizovať aj v samostatnej tabuľke.

Keď potrebujete aktualizovať údaje uvedené v riadkoch tabuľky, INEKE je veľmi užitočný.

Príkazový riadok na aktualizáciu údajov

Nižšie aktualizujeme w3big_tbl špecifikované v tabuľke údajov pomocou SQL príkazy AKTUALIZÁCIA INEKE:

príklady

Nasledujúci príklad aktualizuje tabuľku údajov ako hodnotu poľa w3big_title w3big_id 3:

# mysql -u root -p heslo; Zadajte heslo:******* mysql> použite w3big; Databáza zmenená mysql> AKTUALIZÁCIA 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> !}

Na aktualizáciu údajov použite PHP skript

Funkcia PHP na spustenie mysql_query(). SQL príkazy, môžete použiť príkaz UPDATE SQL alebo INEKE neplatí.

Táto funkcia v MySQL> príkazový riadokúčinok vykonávania príkazov SQL je rovnaký.

príklady

Nasledujúci príklad aktualizuje údaje w3big_id v poli w3big_title 3.

UPDATE syntax

Syntax jednej tabuľky:
AKTUALIZOVAŤ shya_tabletsh
SET názov_stĺpca1=výraz1 [, Názov_ stĺpec2=výraz2 ...]


Syntax viacerých tabuliek:

UPDATE table_name [, table_name...] SET názov_stĺpca 1=výraz1 [,názov_stĺpca2=výraz2...]
Príkaz UPDATE aktualizuje stĺpce existujúcich riadkov tabuľky novými hodnotami. Klauzula SET uvádza stĺpce, ktoré sa majú upraviť, a hodnoty, ktoré im majú byť priradené. Ak je zadaná klauzula WHERE, určuje, ktoré riadky by sa mali aktualizovať. V opačnom prípade sa aktualizujú všetky riadky v tabuľke. Ak je zadaná klauzula ORDER BY, riadky sa aktualizujú v určenom poradí. Konštrukcia LIMIT stanovuje obmedzenie počtu riadkov, ktoré sa majú aktualizovať.
Príkaz UPDATE podporuje nasledujúce modifikátory:

  1. Ak je zadané kľúčové slovo LOW_PRIORITY, UPDATE sa oneskorí, kým všetci ostatní klienti nedokončia čítanie tabuľky.
  2. Ak je zadané kľúčové slovo IGNORE, operácia aktualizácie nezlyhá, aj keď sa vyskytnú chyby duplicitného kľúča. Riadky spôsobujúce konflikty nebudú aktualizované.

Ak používate stĺpce z tabuľky názov_tabulky vo výrazoch UPDATE používa aktuálnu hodnotu stĺpcov. Napríklad, ďalšie vyhlásenie zvýši stĺpec veku o jednu:
mysql> AKTUALIZÁCIA SET osobných údajov vek=vek+l;
Priradenia v UPDATE sa vykonávajú zľava doprava. Napríklad nasledujúci príkaz zdvojnásobí hodnotu stĺpca veku a potom ju zvýši o jednu: mysql> AKTUALIZOVAŤ SADA osobných údajov vek=vek*2, vek=vek+l;
Ak nastavíte hodnotu stĺpca na akúkoľvek hodnotu, MySQL to zistí a neaktualizuje sa.
Ak aktualizujete stĺpec, ktorý bol deklarovaný ako NOT null, na hodnotu NULL, nastaví sa na predvolenú hodnotu vhodnú pre konkrétny typ údajov a zvýši počítadlo upozornení o jednu. Predvolená hodnota je 0 pre číselné stĺpce, prázdny reťazec ("") pre stĺpce so znakmi a "null" pre stĺpce dátumu a času.
UPDATE vráti počet riadkov, ktoré boli skutočne aktualizované. V MySQL 3.22 a novších, funkcia mysql_info(). softvérové ​​rozhranie S API vráti počet riadkov, ktoré zodpovedali dotazu a boli aktualizované, a počet upozornení, ktoré sa vyskytli počas UPDATE.
Od MySQL 3.23 môžete použiť limit počet riadkov obmedziť rozsah UPDATE.
Konštrukcia LIMIT funguje nasledovne:

  1. Pred MySQL 4.0.13 bol LIMIT limitom počtu spracovaných riadkov. Operátor skončil hneď po aktualizácii počet riadkov riadky, ktoré splnili podmienku WHERE.
  2. Od verzie MySQL 4.0.13 je limit limit zhody reťazcov. Operátor odíde hneď, ako nájde počet riadkov riadky, ktoré spĺňajú podmienku WHERE, bez ohľadu na to, či boli skutočne aktualizované.

Ak príkaz UPDATE obsahuje poradie podľa klauzuly, potom sa riadky aktualizujú v poradí špecifikovanom touto klauzulou. ORDER BY je možné použiť od MySQL 4.0.0.
Od MySQL 4.0.0 je tiež možné vykonávať operácie UPDATE, ktoré fungujú na viacerých tabuľkách naraz:
UPDATE items,month SET items.price=month.price WHERE items.id-month. id/ Tento príklad demonštruje vnútorné spojenie pomocou operátora čiarky, ale AKTUALIZÁCIE s viacerými tabuľkami môžu používať akýkoľvek typ spojenia povolený v príkaz SELECT, napríklad LEFT JOIN.
Na poznámku!

  • V príkazoch UPDATE s viacerými tabuľkami nemôžete použiť ORDER BY alebo LIMIT.
Pred MySQL 4.0.18 bolo potrebné mať privilégium UPDATE pre všetky tabuľky používané v UPDATE s viacerými tabuľkami, aj keď v skutočnosti neboli aktualizované. Počnúc MySQL 4.0.18 musia mať také tabuľky, ktorých stĺpce sa len čítajú, ale neaktualizujú, iba privilégium SELECT.
Ak použijete viactabuľkový príkaz UPDATE na tabuľkách InnoDB, ktoré majú definované obmedzenia cudzieho kľúča, optimalizátor MySQL ich môže spracovať v inom poradí, ako je uvedené v ich vzťahoch rodič-dieťa. V tomto prípade výpis zlyhá a transakcia bude vrátená späť. Namiesto toho aktualizujte jednu tabuľku a spoľahnite sa na vlastnosť ON UPDATE, ktorá poskytuje nástroj InnoDB automatická aktualizácia súvisiace tabuľky.


Hore