Thêm, Cập Nhật Và Xóa Dữ Liệu Trong SQL Server - Tin Học 88

Bài viết sau đây sẽ giới thiệu tới các bạn cách thêm, cập nhật và xóa dữ liệu trong SQL Server. Chúng ta sẽ thêm, cập nhật, và xóa dễ dàng hơn. 

Các câu lệnh thao tác dữ liệu trong SQL không những chỉ sử dụng để truy vấn dữ liệu m à còn để thay đổi và cập nhật dữ liệu trong cơ sở dữ liệu. So với câu lệnh SELECT, việc sử dụng các câu lệnh để bổ sung, cập nhật hay xoá dữ liệu đ ơn giản hơn nhiều. Trong phần còn lại của chương này sẽ đề cập đến 3 câu lệnh:

Lệnh INSERT

Lệnh UPDATE Lệnh DELETE

1. Thêm dữ liệu

Dữ liệu trong các bảng được thể hiện dưới dạng các dòng (bản ghi). Để bổ sung thêm các dòng dữ  liệu vào một bảng, ta sử dụng câu lệnh INSERT. Hầu hết các hệ quản trị CSDL dựa trên SQL cung cấp các cách dưới đây để thực hiện thao tác thêm dữ liệu cho bảng:

Thêm từng dòng dữ liệu với mỗi câu lệnh INSERT. Đây là các sử dụng thường gặp nhất

trong giao tác SQL.

Thêm nhiều dòng dữ liệu bằng cách truy xuất dữ liệu từ các bảng dữ liệu khác.

Thêm từng dòng dữ liệu

Để bổ sung một dòng dữ liệu mới vào bảng, ta sử dụng câu lệnh INSERT với cú pháp nh ư

sau:

INSERT INTO tên_bảng[(danh_sách_cột)] VALUES(danh_sách_trị)

Trong  câu  lệnh  INSERT,  danh  sách  cột  ngay  sau  t ên  bảng  không  cần  thiết  phải chỉ định nếu giá trị các trường của bản ghi mới được chỉ định đầy đủ trong danh sách trị. Trong trường hợp này, thứ tự các giá trị trong danh sách trị phải bằng với số l ượng các trường  của bảng  cần  bổ  sung  dữ  liệu  cũng  như  phải  tuân  theo  đúng  thứ  tự  của  các trường như khi bảng được định nghĩa

Ví dụ: Thêm thông tin một khách hàng mới vào bảng Customer

insert into customers (customername, birthday, gender, address) values('Nguyen Van An', '4/2/1976', 'True', '14 Thong Nhat') hoặc insert into customers values('Nguyen Van An', '4/2/1976', 'True', '14 Thong Nhat')

Lưu ý: Trường CUSTOMERID được thiết lập identity là “YES” nên ta không cần thêm giá trị trường này mà SQL sẽ tự động tạo ra một giá trị cho trường này. Chi tiết về identity sẽ nói trong chương 4.

Trong trường hợp chỉ nhập giá   trị cho một số cột trong bảng, ta phải chỉ định danh  sách các  cột  cần  nhập  dữ  liệu  ngay  sau  tên  bảng.  Khi  đó,  các  cột không  được nhập dữ liệu sẽ nhận giá trị mặc định (nếu có) hoặc nhận giá trị NULL (nếu cột cho phép chấp nhận giá trị

NULL). Nếu một cột không có giá trị mặc định và không chấp nhận giá trị NULL mà không đuợc nhập dữ liệu, câu lệnh sẽ bị lỗi.

Thêm một tập các dòng dữ liệu vào bảng

Một cách sử dụng khác của câu lệnh INSERT đ ược sử dụng để bổ sung nhiều dòng dữ liệu vào một bảng, các dòng dữ liệu này được lấy từ một bảng khác thông qua câu lệnh SELECT. Ở cách này, các giá trị dữ liệu được bổ sung vào bảng không được chỉ định tường minh mà thay vào đó là một câu lệnh SELECT truy vấn dữ liệu từ bảng khác. Cú pháp câu lệnh INSERT có dạng như sau:

INSERT INTO tên_bảng[(danh_sách_cột)] câu_lệnh_SELECT Ví dụ: insert into Customers_Backup select * from Customers

Lưu ý: Kết quả của câu lệnh SELECT phải có số cột bằng với số cột đ ược chỉ định trong bảng đích và phải tương thích về kiểu dữ liệu.

2. Cập nhật dữ liệu

Câu lệnh UPDATE trong SQL được sử dụng để cập nhật dữ liệu trong các bảng. Câu lệnh này có cú pháp như sau:

UPDATE tên_bảng SET tên_cột = biểu_thức [, ..., tên_cột_k = biểu_thức_k] [FROM danh_sách_bảng] [WHERE điều_kiện]

Sau UPDATE là tên của bảng cần cập nhật dữ liệu. Một câu lệnh UPDATE có t hể cập nhật dữ liệu cho nhiều cột bằng cách chỉ định các danh sách t ên cột và biểu thức tương ứng  sau từ  khoá  SET.  Mệnh  đề  WHERE  trong  câu  lệnh  UPDATE  đ ược  sử dụng để chỉ định các dòng dữ liệu chịu tác động của câu lệnh (nếu không chỉ định, ph ạm vi tác động của câu lệnh được hiểu là toàn bộ các dòng trong bảng)

Ví dụ:

update customers set customername = 'Cao Van Chung' where customerid = 9

Trong câu lệnh UPDATE có thể sử dụng CASE…WHEN .

Ví dụ:

select * into tmp1 from customers update tmp1 set address = case when customerid < 2 then 'Nguyen Trung Truc' else 'Nguyen Thi Minh Khai' end

3. Xóa dữ liệu

Để xoá dữ liệu trong một bảng, ta sử dụng câu lệnh DELETE. Cú pháp của câu lệnh n ày như sau:

DELETE FROM tên_bảng [FROM danh_sách_bảng] [WHERE điều_kiện]

Trong câu lệnh này, tên của bảng cần xoá dữ liệu được chỉ định sau DELETE FROM.

Mệnh đề WHERE trong câu lệnh được sử dụng để chỉ định điều kiện đối với các dòng dữ liệu cần xoá. Nếu câu lệnh DELETE không có mệnh đề WHERE th ì toàn bộ các dòng dữ liệu trong bảng đều bị xoá.

Ví dụ: 

delete from Items where itemid = 3

Xoá dữ liệu khi điều kiện liên quan đến nhiều bảng

Nếu điều kiện trong câu lệnh DELETE li ên quan đến các bảng không phải là bảng cần xóa dữ liệu, ta phải sử dụng thêm mệnh đề FROM và sau đó là danh sách tên các bảng đó. Trong trường hợp này, trong mệnh đề WHERE ta chỉ định thêm điều kiện nối giữa các bảng

Ví dụ:

delete from orderdetail from items where items.itemid = orderdetail.itemid and items.itemname = 'LAPTOP'

Sử dụng truy vấn con trong câu lệnh DELETE

Một câu lệnh SELECT có thể được lồng vào trong mệnh đề WHERE trong câu lệnh DELETE để làm điều kiện cho câu lệnh tương tự như câu lệnh UPDATE.

Ví dụ:

delete from orderdetail from items where items.itemid = (select i.itemid from items i inner join orderdetail od on i.itemid = od.itemid WHERE itemname = 'LAPTOP')

Xoá toàn bộ dữ liệu trong bảng

Câu lệnh DELETE không chỉ định điều kiện đối với các d òng dữ liệu cần xoá trong mệnh đề WHERE sẽ xoá toàn bộ dữ liệu trong bảng. Thay vì sử dụng câu lệnh DELETE trong trường hợp này, ta có thể sử dụng câu lệnh TRUNCATE có cú pháp nh ư sau:

TRUNCATE TABLE tên_bảng

Ví dụ: truncate table tmp1

Tags: Sql 2005sql server 2005giáo trình sql servergiáo trình sql servertự học sql 2005tự học sql 2005tìm hiểu sql serversql serverThêmcập nhật và xóa dữ liệu trong SQL

Từ khóa » Chèn Dữ Liệu Sql