sql >> Database teknologi >  >> RDS >> Mysql

Opdater forespørgsel for at opdatere rækker i MySQL

Denne vejledning er en del af serien Lær grundlæggende SQL-forespørgsler ved hjælp af MySQL. I denne øvelse vil vi diskutere SQL-forespørgsler for at opdatere rækkerne eller data for en tabel i MySQL.

Opdater forespørgsel

Kommandoen OPDATERING kan bruges til at ændre eller opdatere rækker i en tabel ved hjælp af nøgleordet SET. Hvis du er eksternt logget ind på databasen, skal du også bruge UPDATE-privilegiet for tabellen for at kunne læse rækkerne fra en tabel.

# UPDATE - Syntax
UPDATE `table_name` SET `column_1` = <value>, `column_2` = <value> ... [WHERE <single or multiple filter conditions>];

Forespørgselsforklaring

MySQL-kommandoen OPDATERING kan bruges til at ændre rækker eller data for det givne tabelnavn, hvor kolonnenavnet, rækkeværdien og tabellens navn er obligatorisk. SET nøgleord er påkrævet for at indstille den nye kolonneværdi.

Vi skal angive mindst én kolonne, og det er en ny værdi, mens vi bruger UPDATE-forespørgslen. Værdien skal være indeholdt i det enkelte anførselstegn, hvis det er en strengværdi.

Vi skal også specificere de betingelser, der skal tages i betragtning, mens vi opdaterer rækkerne. Brug af WHERE-sætningen med UPDATE-kommandoen er påkrævet, hvor vi selektivt skal opdatere de rækker, som er det ideelle scenarie. Vi kan undlade at bruge WHERE, mens vi bruger UPDATE-kommandoen, men det vil føre til ydeevneproblemer, hvis tabeldataene er store.

Eksempler

Dette afsnit giver eksempler på opdatering af rækker i tabellen ved hjælp af kommandoen UPDATE. Brug nedenstående forespørgsel til at oprette brugertabellen med id, fornavn, efternavn og aktive kolonner til at gemme brugerdata.

# 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`));

Nedenstående forespørgsel kan bruges til at indsætte data i brugertabellen.

# 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 );

Ovennævnte forespørgsel vil indsætte 5 rækker i tabellen med id, fornavn, efternavn og aktive kolonner til at repræsentere 5 forskellige brugere.

Nu vil vi opdatere de data, vi har indsat i brugertabellen. Det kan gøres ved at bruge UPDATE-kommandoen som vist nedenfor.

# 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

Ovennævnte forespørgsler opdaterer brugertabellen ved hjælp af WHERE-sætningen. Tabelrækkerne vil blive opdateret i tilfælde af, at rækken opfylder de givne betingelser.

Vi kan også opdatere flere kolonneværdier som vist nedenfor.

# 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

Sådan kan vi ændre de data, der er gemt i MySQL-tabellerne.


  1. Hvordan kan jeg lave en batch-indsættelse i en Oracle-database ved hjælp af Python?

  2. Kan ikke indlæse DLL "OraOps10.dll"

  3. Hvad er forskellen mellem bindevariabler og substitutionsvariabler (som jeg indtaster ved hjælp af &&)?

  4. Samle mellem tabeller i to forskellige databaser?