sql >> Database teknologi >  >> RDS >> Database

SQL-OPDATERING for begyndere

Denne artikel indeholder grundlæggende SQL UPDATE sætninger, som begyndere kan bruge til at opdatere data i deres databasetabeller.

Opdater en enkelt kolonne

Her er et grundlæggende eksempel på SQL UPDATE erklæring.

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

I dette tilfælde opdaterede vi værdien af ​​en enkelt kolonne kaldet LastName .

UPDATE sætning starter med UPDATE , efterfulgt af tabelnavnet (dvs. den tabel, der indeholder de data, du vil opdatere).

Den har så SET søgeord, efterfulgt af den kolonne, du vil opdatere, og den nye værdi, adskilt af en lig (= ) operatør.

Du bør altid inkludere en WHERE klausul, medmindre du vil opdatere alle rækker med samme værdi.

Ja, du læste rigtigt. Udeladelse af WHERE klausul vil opdatere alle rækker med samme værdi.

De fleste databasestyringssystemer (DBMS'er) har forskellige andre muligheder, som du kan bruge med UPDATE sætning, men dem, der er anført her, er de mest almindeligt anvendte.

Opdater flere kolonner

For at opdatere flere kolonner skal du adskille hver kolonne/værdipar med et komma.

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

Eksempel

I dette eksempel opdaterer vi en tabel.

Lad os først og fremmest vælge indholdet af 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 blev for nylig gift og ændrede sit efternavn, så vi opdaterer Simpson til Stallone .

Lad os nu opdatere den kolonne, og vælg derefter 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, at kolonnen er blevet opdateret som angivet.

Opdater flere kolonner

Her er et eksempel på opdatering af flere kolonner.

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 dette tilfælde opdaterede vi efternavnet og e-mailadressen på ejer 4.

Forsigtig! Glemmer WHERE Klausul

UPDATE Et udsagn kan være en meget farlig udtalelse, hvis du ikke holder dig ved. Hvis du udelader WHERE klausul, vil du opdatere alle rækker i tabellen.

Lad os tage det forrige eksempel igen, men denne gang glemmer vi at inkludere 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] |
+-----------+-------------+------------+----------------+-------------------+

Ups! Nu er alles efternavn Stallone!

Der kan være tidspunkter, hvor du faktisk har til hensigt at opdatere alle rækker i tabellen, men disse tidspunkter er normalt ret sjældne.

Når du kører ad hoc-forespørgsler, vil du måske køre en hurtig SELECT sætning, der bruger samme betingelse som din UPDATE handling, før du rent faktisk kører UPDATE operation.

SELECT * FROM Owners
WHERE OwnerId = 4;

Resultat:

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

Det viser os den nøjagtige række, der vil blive opdateret. Når vi er overbeviste om, at den returnerer den korrekte række, kan vi gå videre med og bruge den samme WHERE klausul i UPDATE erklæring.


  1. Sådan får du den aktuelle dato i Oracle

  2. Lagret procedure, der eksporterer data til csv-filer, eksporterer kun til én fil

  3. Sådan fjerner du MySQL 5.7 fuldstændigt fra Windows

  4. Tips til bedre databasedesign