Tento tutoriál je součástí série Naučte se základní SQL dotazy pomocí MySQL. V tomto tutoriálu probereme dotazy SQL pro aktualizaci řádků
Aktualizovat dotaz
Příkaz UPDATE lze použít k úpravě nebo aktualizaci řádků tabulky pomocí klíčového slova SET. V případě, že jste vzdáleně přihlášeni k databázi, budete také potřebovat oprávnění UPDATE pro tabulku, abyste mohli číst řádky z tabulky.
# UPDATE - Syntax
UPDATE `table_name` SET `column_1` = <value>, `column_2` = <value> ... [WHERE <single or multiple filter conditions>];
Vysvětlení dotazu
Příkaz MySQL UPDATE lze použít k úpravě řádků nebo dat daného názvu tabulky, kde je povinný název sloupce, hodnota řádku a název tabulky. SET klíčové slovo je vyžadováno pro nastavení nové hodnoty sloupce.
Při použití dotazu UPDATE musíme zadat alespoň jeden sloupec a jeho novou hodnotu. V případě, že se jedná o řetězcovou hodnotu, musí být hodnota uzavřena v jednoduchých uvozovkách.
Musíme také specifikovat podmínky, které je třeba vzít v úvahu při aktualizaci řádků. Použití klauzule WHERE s příkazem UPDATE je vyžadováno tam, kde potřebujeme selektivně aktualizovat řádky, které
Příklady
Tato část obsahuje příklady aktualizace řádků tabulky pomocí příkazu UPDATE. Pomocí níže uvedeného dotazu vytvořte uživatelskou tabulku obsahující sloupce id, jméno, příjmení a aktivní sloupce pro uložení uživatelských dat.
# Create the User Table
CREATE TABLE `enterprise`.`user` (
`user_id` BIGINT NOT NULL,
`first_name` VARCHAR(45) ,
`last_name` VARCHAR(45),
`active` TINYINT(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`user_id`));
K vložení dat do uživatelské tabulky lze použít níže uvedený dotaz.
# Insert Rows - All Columns
INSERT INTO `user` ( `user_id`, `first_name`, `last_name`, `active` ) VALUES
( 1, 'John', 'Smith', 1 ),
( 2, 'Rick', 'Jones', 1 ),
( 3, 'Catherine', 'Ponting', 0 ),
( 4, 'Harsh', 'Upadhyay', 1 ),
( 5, 'Tajwinder', 'Singh', 0 );
Výše zmíněný dotaz vloží do tabulky 5 řádků obsahujících id, jméno, příjmení a aktivní sloupce, které představují 5 různých uživatelů.
Nyní aktualizujeme námi vložená data v uživatelské tabulce. To lze provést pomocí příkazu UPDATE, jak je znázorněno níže.
# UPDATE - Activate all the inactive users - without key column
UPDATE `user` SET `active` = 1 WHERE `active` = 0;
# Notes - Workbench - You might need to disable safe updates in case the primary key is not used in WHERE clause
SET SQL_SAFE_UPDATES = 0;
UPDATE `user` SET `active` = 1 WHERE `active` = 0;
SET SQL_SAFE_UPDATES = 0;
# Result
1 John Smith 1
2 Rick Jones 1
3 Catherine Ponting 1
4 Harsh Upadhyay 1
5 Tajwinder Singh 1
# UPDATE - Deactivate selective users - with key column
UPDATE `user` SET `active` = 0 WHERE `user_id` = 1;
UPDATE `user` SET `active` = 0 WHERE `user_id` IN( 3, 5 );
# Result
1 John Smith 0
2 Rick Jones 1
3 Catherine Ponting 0
4 Harsh Upadhyay 1
5 Tajwinder Singh 0
Výše uvedené dotazy aktualizují uživatelskou tabulku pomocí klauzule WHERE. Řádky tabulky budou aktualizovány, pokud řádek splní dané podmínky.
Můžeme také aktualizovat více hodnot sloupců, jak je uvedeno níže.
# UPDATE - Modify first name and last name of first user
UPDATE `user` SET `first_name` = 'Roy', `last_name` = 'Jordan' WHERE `user_id` = 1;
# Result
1 Roy Jordan 0
2 Rick Jones 1
3 Catherine Ponting 0
4 Harsh Upadhyay 1
5 Tajwinder Singh 0
Takto můžeme upravit data uložená v tabulkách MySQL.