sql >> Databasteknik >  >> RDS >> Mysql

Uppdatera fråga för att uppdatera rader i MySQL

Denna handledning är en del av serien Lär dig grundläggande SQL-frågor med MySQL. I den här handledningen kommer vi att diskutera SQL-frågor för att uppdatera raderna eller data för en tabell i MySQL.

Uppdatera fråga

Kommandot UPPDATERA kan användas för att ändra eller uppdatera rader i en tabell med hjälp av nyckelordet SET. Om du är fjärrinloggad i databasen behöver du också UPPDATERA-privilegiet för tabellen för att kunna läsa raderna från en tabell.

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

Frågeförklaring

MySQL-kommandot UPPDATERA kan användas för att ändra rader eller data för det givna tabellnamnet där kolumnnamnet, radvärdet och tabellens namn är obligatoriskt. SET nyckelord krävs för att ställa in det nya kolumnvärdet.

Vi måste ange minst en kolumn och det är ett nytt värde när vi använder UPDATE-frågan. Värdet måste ingå i det enda citattecken om det är ett strängvärde.

Vi måste också specificera de villkor som ska beaktas när vi uppdaterar raderna. Att använda WHERE-satsen med kommandot UPDATE krävs där vi selektivt behöver uppdatera raderna som är det ideala scenariot. Vi kan utelämna WHERE när vi använder kommandot UPDATE, men det kommer att leda till prestandaproblem om tabelldata är stor.

Exempel

Det här avsnittet ger exempel på hur du uppdaterar rader i tabellen med kommandot UPDATE. Använd den nedan nämnda frågan för att skapa användartabellen med id, förnamn, efternamn och aktiva kolumner för att lagra användardata.

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

Den nedan nämnda frågan kan användas för att infoga data i användartabellen.

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

Den ovan nämnda frågan kommer att infoga 5 rader i tabellen med id, förnamn, efternamn och aktiva kolumner för att representera 5 olika användare.

Nu kommer vi att uppdatera informationen som infogats av oss i användartabellen. Det kan göras med kommandot UPDATE som visas nedan.

# 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

Ovannämnda frågor uppdaterar användartabellen med hjälp av WHERE-satsen. Tabellraderna kommer att uppdateras om raden uppfyller de givna villkoren.

Vi kan också uppdatera värden för flera kolumner som visas nedan.

# 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å här kan vi modifiera data som lagras i MySQL-tabellerna.


  1. 32-bitars Excel och 64-bitars SQL Server

  2. Transponera en uppsättning rader som kolumner i SQL Server 2000

  3. MySQL:Hur får man längden på text i en kolumn

  4. Varför förlorar SQL Server en millisekund?