sql >> Databasteknik >  >> RDS >> Mysql

Ta bort fråga För att ta bort 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 ta bort rader eller data i en tabell i MySQL.

Ta bort fråga

Kommandot DELETE kan användas för att ta bort eller ta bort rader i en tabell. Kommandot DELETE är oåterkalleligt, därför måste vi använda det försiktigt. Om du är fjärrinloggad i databasen behöver du också DELETE-behörigheten för tabellen för att radera raderna från en tabell.

# DELETE - Syntax
DELETE FROM `table_name` WHERE <single or multiple filter conditions>;

Frågeförklaring

MySQL-kommandot DELETE kan användas för att ta bort rader eller data för det givna tabellnamnet där namnet på tabellen är obligatoriskt och WHERE-satsen är valfri.

Vi måste specificera minst ett villkor med hjälp av WHERE-satsen för att raderna ska kvalificera sig för radering annars kommer hela tabellen att raderas. Alla rader i tabellen gets raderas utan villkoret.

Exempel

Det här avsnittet ger exempel på hur du tar bort rader i tabellen med kommandot DELETE. 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 radera data som infogats av oss i användartabellen. Det kan göras med kommandot DELETE som visas nedan.

# DELETE - Delete all the inactive users
DELETE FROM `user` WHERE `active` = 0;

# Result
1 John Smith 1
2 Rick Jones 1
4 Harsh Upadhyay 1


# DELETE - Remove selective users
DELETE FROM `user` WHERE `user_id` = 1;
DELETE FROM `user` WHERE `user_id` IN( 2, 4 );

# Result - All rows deleted

De ovan nämnda frågorna tar bort raderna från användartabellen med hjälp av WHERE-satsen. Tabellraderna kommer att raderas om raden uppfyller de givna villkoren.

Utför nu INSERT-frågan igen för att infoga testdata. Vi kan också ta bort rader med flera villkor som visas nedan.

# DELETE - Delete inactive users using first name
DELETE FROM `user` WHERE `first_name` = 'Catherine' AND `active` = 0;

# Result
1 John Smith 1
2 Rick Jones 1
4 Harsh Upadhyay 1
5 Tajwinder Singh 0

Så här kan vi radera data som lagras i MySQL-tabellerna.


  1. SQL Server Error 7222:"Endast en SQL Server-leverantör är tillåten i denna instans"

  2. oracle autoincrement med sekvens och trigger fungerar inte korrekt

  3. PostgreSQL Connection Pooling:Del 3 – Pgpool-II

  4. Vilka är fördelarna och nackdelarna med att behålla SQL i lagrade processer kontra kod