Bài viết này chứa UPDATE
cơ bản của SQL câu lệnh mà người mới bắt đầu có thể sử dụng để cập nhật dữ liệu trong bảng cơ sở dữ liệu của họ.
Cập nhật một cột duy nhất
Đây là một ví dụ cơ bản về UPDATE
trong SQL tuyên bố.
UPDATE Owners
SET LastName = 'Stallone'
WHERE OwnerId = 3;
Trong trường hợp này, chúng tôi đã cập nhật giá trị của một cột duy nhất được gọi là LastName
.
UPDATE
câu lệnh bắt đầu bằng UPDATE
, theo sau là tên bảng (tức là bảng chứa dữ liệu bạn muốn cập nhật).
Sau đó, nó có SET
từ khóa, theo sau là cột bạn muốn cập nhật và giá trị mới, được phân tách bằng dấu bằng (=
) toán tử.
Bạn phải luôn bao gồm WHERE
, trừ khi bạn muốn cập nhật tất cả các hàng có cùng giá trị.
Bạn đã đọc đúng. Bỏ qua WHERE
mệnh đề sẽ cập nhật tất cả các hàng có cùng giá trị.
Hầu hết các Hệ thống quản lý cơ sở dữ liệu (DBMS) đều có nhiều tùy chọn khác mà bạn có thể sử dụng với UPDATE
nhưng những câu được liệt kê ở đây là những câu được sử dụng phổ biến nhất.
Cập nhật nhiều cột
Để cập nhật nhiều cột, hãy phân tách từng cặp cột / giá trị bằng dấu phẩy.
UPDATE Owners
SET LastName = 'Stallone',
Email = '[email protected]'
WHERE OwnerId = 3;
Ví dụ
Trong ví dụ này, chúng tôi cập nhật một bảng.
Trước hết, hãy chọn nội dung của bảng.
SELECT * FROM Owners;
Kết quả:
+-----------+-------------+------------+----------------+-------------------+ | 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 gần đây đã kết hôn và đã thay đổi họ của mình, vì vậy chúng tôi sẽ cập nhật Simpson
tới Stallone
.
Bây giờ, hãy cập nhật cột đó, sau đó chọn lại bảng.
UPDATE Owners
SET LastName = 'Stallone'
WHERE OwnerId = 3;
SELECT * FROM Owners;
Kết quả:
+-----------+-------------+------------+----------------+-------------------+ | 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] | +-----------+-------------+------------+----------------+-------------------+
Chúng tôi có thể thấy rằng cột đã được cập nhật như đã chỉ định.
Cập nhật nhiều cột
Dưới đây là một ví dụ về cập nhật nhiều cột.
UPDATE Owners
SET LastName = 'Biden',
Email = '[email protected]'
WHERE OwnerId = 4;
SELECT * FROM Owners;
Kết quả:
+-----------+-------------+------------+----------------+-------------------+ | 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] | +-----------+-------------+------------+----------------+-------------------+
Trong trường hợp này, chúng tôi đã cập nhật họ và địa chỉ email của chủ sở hữu 4.
Thận trọng! Quên WHERE
Mệnh đề
UPDATE
tuyên bố có thể là một tuyên bố rất nguy hiểm nếu bạn không giữ trí thông minh của mình về bạn. Nếu bạn bỏ qua WHERE
điều khoản, bạn sẽ cập nhật tất cả hàng trong bảng.
Hãy làm lại ví dụ trước, nhưng lần này chúng ta sẽ quên bao gồm WHERE
mệnh đề.
UPDATE Owners
SET LastName = 'Stallone';
SELECT * FROM Owners;
Kết quả:
+-----------+-------------+------------+----------------+-------------------+ | 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] | +-----------+-------------+------------+----------------+-------------------+
Giáo sư! Giờ họ của mọi người là Stallone!
Trên thực tế, có thể có những lúc bạn định cập nhật tất cả các hàng trong bảng, nhưng những lần đó thường khá hiếm.
Khi bạn đang chạy các truy vấn đặc biệt, bạn có thể muốn chạy một SELECT
nhanh câu lệnh sử dụng cùng một điều kiện của UPDATE
của bạn hoạt động trước khi thực sự chạy UPDATE
hoạt động.
SELECT * FROM Owners
WHERE OwnerId = 4;
Kết quả:
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 4 | Boris | Biden | (349) 611-8908 | [email protected] | +-----------+-------------+------------+----------------+-------------------+
Điều đó cho chúng ta thấy hàng chính xác sẽ được cập nhật. Khi chúng tôi hài lòng rằng nó trả về đúng hàng, chúng tôi có thể tiếp tục và sử dụng chính WHERE
đó mệnh đề trong UPDATE
tuyên bố.