sql >> Databáze >  >> RDS >> Database

AKTUALIZACE SQL pro začátečníky

Tento článek obsahuje základní SQL UPDATE příkazy, které mohou začátečníci použít k aktualizaci dat ve svých databázových tabulkách.

Aktualizovat jeden sloupec

Zde je základní příklad SQL UPDATE prohlášení.

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

V tomto případě jsme aktualizovali hodnotu jednoho sloupce s názvem LastName .

UPDATE příkaz začíná UPDATE , za kterým následuje název tabulky (tj. tabulka obsahující data, která chcete aktualizovat).

Poté má SET klíčové slovo, za kterým následuje sloupec, který chcete aktualizovat, a nová hodnota oddělená rovná se (= ) operátor.

Vždy byste měli uvést WHERE klauzule, pokud nechcete aktualizovat všechny řádky se stejnou hodnotou.

Ano, čtete správně. Vynechání WHERE klauzule aktualizuje všechny řádky se stejnou hodnotou.

Většina systémů pro správu databází (DBMS) má různé další možnosti, které můžete použít s UPDATE prohlášení, ale ty, které jsou zde uvedeny, jsou nejčastěji používané.

Aktualizovat více sloupců

Chcete-li aktualizovat více sloupců, oddělte každý pár sloupec/hodnota čárkou.

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

Příklad

V tomto příkladu aktualizujeme tabulku.

Nejprve vyberte obsah tabulky.

SELECT * FROM Owners;

Výsledek:

+-----------+-------------+------------+----------------+-------------------+
| 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 se nedávno vdala a změnila si příjmení, takže aktualizujeme Simpson na Stallone .

Nyní aktualizujme tento sloupec a poté znovu vyberte tabulku.

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

SELECT * FROM Owners;

Výsledek:

+-----------+-------------+------------+----------------+-------------------+
| 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] |
+-----------+-------------+------------+----------------+-------------------+

Vidíme, že sloupec byl aktualizován podle specifikace.

Aktualizovat více sloupců

Zde je příklad aktualizace více sloupců.

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

SELECT * FROM Owners;

Výsledek:

+-----------+-------------+------------+----------------+-------------------+
| 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] |
+-----------+-------------+------------+----------------+-------------------+

V tomto případě jsme aktualizovali příjmení a e-mailovou adresu vlastníka 4.

Pozor! Zapomenutí WHERE Ustanovení

UPDATE prohlášení může být velmi nebezpečné prohlášení, pokud si nezachováte rozum. Pokud vynecháte WHERE klauzule, aktualizujete vše řádků v tabulce.

Udělejme znovu předchozí příklad, ale tentokrát zapomeneme zahrnout WHERE doložka.

UPDATE Owners
SET LastName = 'Stallone';

SELECT * FROM Owners;

Výsledek:

+-----------+-------------+------------+----------------+-------------------+
| 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] |
+-----------+-------------+------------+----------------+-------------------+

Jejda! Nyní je příjmení všech Stallone!

Mohou nastat situace, kdy ve skutečnosti zamýšlíte aktualizovat všechny řádky v tabulce, ale tyto případy jsou obvykle poměrně vzácné.

Když spouštíte dotazy ad hoc, možná budete chtít spustit rychlý SELECT příkaz, který používá stejnou podmínku jako UPDATE před skutečným spuštěním UPDATE operace.

SELECT * FROM Owners
WHERE OwnerId = 4;

Výsledek:

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

To nám ukazuje přesný řádek, který bude aktualizován. Jakmile jsme přesvědčeni, že vrací správný řádek, můžeme pokračovat a použít stejný WHERE klauzule v UPDATE prohlášení.


  1. Jak zkontrolovat, zda existuje uložená procedura před jejím vytvořením

  2. Jak upravit datový typ v Oracle s existujícími řádky v tabulce

  3. 6 způsobů, jak přidat rok k datu v MariaDB

  4. Oracle DROP TABLE, POKUD EXISTUJE Alternativy