sql >> Database >  >> RDS >> Database

SQL-UPDATE voor beginners

Dit artikel bevat basis SQL UPDATE instructies die beginners kunnen gebruiken om gegevens in hun databasetabellen bij te werken.

Een enkele kolom bijwerken

Hier is een eenvoudig voorbeeld van de SQL UPDATE verklaring.

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

In dit geval hebben we de waarde geüpdatet van een enkele kolom genaamd LastName .

De UPDATE instructie begint met UPDATE , gevolgd door de tabelnaam (d.w.z. de tabel die de gegevens bevat die u wilt bijwerken).

Het heeft dan de SET trefwoord, gevolgd door de kolom die u wilt bijwerken en de nieuwe waarde, gescheiden door een is gelijk aan (= ) operator.

Je moet altijd een WHERE . opnemen clausule, tenzij u alle rijen met dezelfde waarde wilt bijwerken.

Ja, u leest het goed. Het weglaten van de WHERE clausule zal alle rijen bijwerken met dezelfde waarde.

De meeste Database Management Systemen (DBMS'en) hebben verschillende andere opties die u kunt gebruiken met de UPDATE verklaring, maar de hier vermelde zijn de meest gebruikte.

Meerdere kolommen bijwerken

Om meerdere kolommen bij te werken, scheidt u elk kolom/waarde-paar met een komma.

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

Voorbeeld

In dit voorbeeld werken we een tabel bij.

Laten we eerst de inhoud van de tabel selecteren.

SELECT * FROM Owners;

Resultaat:

+-----------+-------------+------------+----------------+-------------------+
| 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 is onlangs getrouwd en heeft haar achternaam veranderd, dus we zullen Simpson updaten naar Stallone .

Laten we nu die kolom bijwerken en de tabel opnieuw selecteren.

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

SELECT * FROM Owners;

Resultaat:

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

We kunnen zien dat de kolom is bijgewerkt zoals gespecificeerd.

Meerdere kolommen bijwerken

Hier is een voorbeeld van het bijwerken van meerdere kolommen.

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

SELECT * FROM Owners;

Resultaat:

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

In dit geval hebben we de achternaam en het e-mailadres van eigenaar 4 bijgewerkt.

Let op! De WHERE . vergeten Clausule

De UPDATE verklaring kan een zeer gevaarlijke verklaring zijn als u niet bij uw verstand blijft. Als u de WHERE . weglaat clausule, update je alle rijen in de tabel.

Laten we het vorige voorbeeld opnieuw doen, maar deze keer vergeten we de WHERE . op te nemen clausule.

UPDATE Owners
SET LastName = 'Stallone';

SELECT * FROM Owners;

Resultaat:

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

Oeps! Nu is de achternaam van iedereen Stallone!

Er kunnen momenten zijn waarop u van plan bent om alle rijen in de tabel bij te werken, maar die tijden zijn meestal vrij zeldzaam.

Wanneer u ad-hocquery's uitvoert, wilt u misschien een snelle SELECT . uitvoeren verklaring die dezelfde voorwaarde gebruikt als uw UPDATE bewerking voordat u de UPDATE actually daadwerkelijk uitvoert bediening.

SELECT * FROM Owners
WHERE OwnerId = 4;

Resultaat:

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

Dat toont ons de exacte rij die wordt bijgewerkt. Zodra we er zeker van zijn dat het de juiste rij retourneert, kunnen we doorgaan en dezelfde WHERE gebruiken. clausule in de UPDATE verklaring.


  1. Hoe krijg ik de namen van alle kolommen voor alle tabellen in MySQL?

  2. De juiste manier om een ​​unieke beperking te implementeren die meerdere NULL-waarden in SQL Server toestaat

  3. Primaire sleutel wijzigen

  4. Onderzoek naar de traagheid van PostGIS (editie 2019)