sql >> Databasteknik >  >> RDS >> Database

SQL UPPDATERING för nybörjare

Den här artikeln innehåller grundläggande SQL UPDATE uttalanden som nybörjare kan använda för att uppdatera data i sina databastabeller.

Uppdatera en enskild kolumn

Här är ett grundläggande exempel på SQL UPDATE uttalande.

UPDATE Owners
SET LastName = 'Stallone'
WHERE OwnerId = 3;

I det här fallet uppdaterade vi värdet för en enda kolumn som heter LastName .

UPDATE uttalande börjar med UPDATE , följt av tabellnamnet (dvs tabellen som innehåller de data du vill uppdatera).

Den har sedan SET nyckelord, följt av kolumnen du vill uppdatera och det nya värdet, åtskilda av en lika (= ) operatör.

Du bör alltid inkludera en WHERE sats, om du inte vill uppdatera alla rader med samma värde.

Ja, du läste rätt. Utelämnar WHERE klausul kommer att uppdatera alla rader med samma värde.

De flesta databashanteringssystem (DBMS) har flera andra alternativ som du kan använda med UPDATE uttalande, men de som listas här är de mest använda.

Uppdatera flera kolumner

För att uppdatera flera kolumner, separera varje kolumn/värdepar med ett kommatecken.

UPDATE Owners
SET LastName = 'Stallone',
    Email = '[email protected]'
WHERE OwnerId = 3;

Exempel

I det här exemplet uppdaterar vi en tabell.

Låt oss först och främst välja innehållet i tabellen.

SELECT * FROM Owners;

Resultat:

+-----------+-------------+------------+----------------+-------------------+
| OwnerId   | FirstName   | LastName   | Phone          | Email             |
|-----------+-------------+------------+----------------+-------------------|
| 1         | Homer       | Connery    | (308) 555-0100 | [email protected] |
| 2         | Bart        | Pitt       | (231) 465-3497 | [email protected]  |
| 3         | Nancy       | Simpson    | (489) 591-0408 | NULL              |
| 4         | Boris       | Trump      | (349) 611-8908 | NULL              |
| 5         | Woody       | Eastwood   | (308) 555-0112 | [email protected] |
+-----------+-------------+------------+----------------+-------------------+

Nancy Simpson gifte sig nyligen och bytte sitt efternamn, så vi kommer att uppdatera Simpson till Stallone .

Låt oss nu uppdatera den kolumnen och välj sedan tabellen igen.

UPDATE Owners
SET LastName = 'Stallone'
WHERE OwnerId = 3;

SELECT * FROM Owners;

Resultat:

+-----------+-------------+------------+----------------+-------------------+
| OwnerId   | FirstName   | LastName   | Phone          | Email             |
|-----------+-------------+------------+----------------+-------------------|
| 1         | Homer       | Connery    | (308) 555-0100 | [email protected] |
| 2         | Bart        | Pitt       | (231) 465-3497 | [email protected]  |
| 3         | Nancy       | Stallone   | (489) 591-0408 | NULL              |
| 4         | Boris       | Trump      | (349) 611-8908 | NULL              |
| 5         | Woody       | Eastwood   | (308) 555-0112 | [email protected] |
+-----------+-------------+------------+----------------+-------------------+

Vi kan se att kolumnen har uppdaterats som specificerat.

Uppdatera flera kolumner

Här är ett exempel på uppdatering av flera kolumner.

UPDATE Owners
SET LastName = 'Biden',
    Email = '[email protected]'
WHERE OwnerId = 4;

SELECT * FROM Owners;

Resultat:

+-----------+-------------+------------+----------------+-------------------+
| OwnerId   | FirstName   | LastName   | Phone          | Email             |
|-----------+-------------+------------+----------------+-------------------|
| 1         | Homer       | Connery    | (308) 555-0100 | [email protected] |
| 2         | Bart        | Pitt       | (231) 465-3497 | [email protected]  |
| 3         | Nancy       | Stallone   | (489) 591-0408 | NULL              |
| 4         | Boris       | Biden      | (349) 611-8908 | [email protected] |
| 5         | Woody       | Eastwood   | (308) 555-0112 | [email protected] |
+-----------+-------------+------------+----------------+-------------------+

I det här fallet uppdaterade vi efternamnet och e-postadressen för ägare 4.

Varning! Att glömma WHERE Klausul

UPDATE uttalande kan vara ett mycket farligt uttalande om du inte håller koll på dig. Om du utelämnar WHERE klausul kommer du att uppdatera alla rader i tabellen.

Låt oss göra det föregående exemplet igen, men den här gången glömmer vi att inkludera WHERE klausul.

UPDATE Owners
SET LastName = 'Stallone';

SELECT * FROM Owners;

Resultat:

+-----------+-------------+------------+----------------+-------------------+
| OwnerId   | FirstName   | LastName   | Phone          | Email             |
|-----------+-------------+------------+----------------+-------------------|
| 1         | Homer       | Stallone   | (308) 555-0100 | [email protected] |
| 2         | Bart        | Stallone   | (231) 465-3497 | [email protected]  |
| 3         | Nancy       | Stallone   | (489) 591-0408 | NULL              |
| 4         | Boris       | Stallone   | (349) 611-8908 | NULL              |
| 5         | Woody       | Stallone   | (308) 555-0112 | [email protected] |
+-----------+-------------+------------+----------------+-------------------+

hoppsan! Nu är allas efternamn Stallone!

Det kan finnas tillfällen då du faktiskt har för avsikt att uppdatera alla rader i tabellen, men de tiderna är vanligtvis ganska sällsynta.

När du kör ad hoc-frågor kanske du vill köra en snabb SELECT uttalande som använder samma villkor för din UPDATE innan du faktiskt kör UPDATE operation.

SELECT * FROM Owners
WHERE OwnerId = 4;

Resultat:

+-----------+-------------+------------+----------------+-------------------+
| OwnerId   | FirstName   | LastName   | Phone          | Email             |
|-----------+-------------+------------+----------------+-------------------|
| 4         | Boris       | Biden      | (349) 611-8908 | [email protected] |
+-----------+-------------+------------+----------------+-------------------+

Det visar oss den exakta raden som kommer att uppdateras. När vi är övertygade om att den returnerar rätt rad kan vi gå vidare med och använda samma WHERE klausul i UPDATE uttalande.


  1. [Video] Introduktion till JSON-datatyper i PostgreSQL

  2. Datumkonvertering och kultur:Skillnaden mellan DATE och DATETIME

  3. Generera n rader med NULL i PostgreSQL

  4. Transformational Stories på MariaDB OpenWorks Conference