sql >> Databasteknik >  >> RDS >> Mysql

Ta bort data från en MySQL-databas

I MySQL kan du radera data lika enkelt som du kan fråga dem eller uppdatera dem.

SQL DELETE Uttalande

Använd SQL DELETE uttalande för att radera data från din databas. Som SELECT och UPDATE satser, DELETE uttalandet accepterar en WHERE så att du kan ange exakta post/er som ska raderas.

Syntax

DELETE
FROM table_name
WHERE column_name = value;

Exempel

  1. Datan

    Här är informationen innan vi raderar något.

  2. Radera vissa data

    Låt oss ta bort röda druvor från vår lista över frukt. Röda druvor har tilldelats ett FruitId av 5 så vi kommer att använda det i vår DELETE uttalande.

    DELETE
                FROM Fruit
                WHERE FruitId = 5;
  3. Resultatet

    Om vi ​​kör ovanstående kod, välj sedan alla rader från tabellen, vi kan se att posten har raderats.

Ta bort alla poster

Du kan ta bort alla poster i en tabell ganska enkelt. Det är faktiskt lättare att ta bort alla poster än att radera en specifik post.

  1. Koden

    För att radera alla poster i en tabell, utelämna bara WHERE klausul. Så här:

    DELETE FROM Fruit;
  2. Resultatet

    Hoppsan... Inga fler poster!

Som du kan föreställa dig lönar det sig att vara mycket försiktig när du använder DELETE påstående. Det är här läget Säkra uppdateringar kan hjälpa (som vi täckte när vi uppdaterade vår data).

Som det visar sig kunde jag bara köra ovanstående uttalande efter att ha inaktiverat läget Säkra uppdateringar. Så innan jag körde det uttalandet körde jag följande kommando:

SET SQL_SAFE_UPDATES = 0;

Så nu är det förmodligen en bra tid för mig att aktivera säkra uppdateringar igen — innan jag gör någon mer skada...

SET SQL_SAFE_UPDATES = 1;

Återställ data

Nu när vi har raderat alla poster från Fruit tabell, låt oss se om vi kan återställa dem till deras ursprungliga värde. Lyckligtvis för oss skrev vi tidigare ett skript för att infoga data i våra tabeller.

  1. Koden

    Så låt oss ta ut biten som fyller frukten tabell och kör det:

    INSERT INTO Fruit 
            VALUES 
            (1,'Apple',10,1,'2015-02-15 10:30:00','2015-02-15 10:30:00'),
            (2,'Orange',5,2,'2015-02-15 10:30:00','2015-02-15 10:30:00'),
            (3,'Banana',20,6,'2015-02-15 10:30:00','2015-02-15 10:30:00'),
            (4,'Watermelon',10,1,'2015-02-15 10:30:00','2015-02-15 10:30:00'),
            (5,'Grapes',15,6,'2015-02-15 10:30:00','2015-02-15 10:30:00'),
            (6,'Strawberry',12,7,'2015-02-15 10:30:00','2015-02-15 10:30:00');
  2. Resultatet

    Nu borde vår tabell se ut som den gjorde tidigare när vi först fyllde i data.


  1. MySQL – Databas Character Set Encoding and Collation Explained

  2. MariaDB LCASE() Förklarad

  3. Fel 1022 - Kan inte skriva; dubblettnyckel i tabellen

  4. Problemuppsättning 1 – Identifiera enheter