Học SQL Server cơ bản

Bài 8: Câu lệnh Insert, Update và Delete trong SQL Server

Trong bài này, chúng ta sẽ cùng tìm hiểu những câu lệnh cần dùng khi thêm, sửa, xóa dữ liệu trong SQL Server.

1. Insert

Lệnh INSERT INTO trong SQL được sử dụng để thêm các hàng dữ liệu mới vào một bảng trong Database.
Có hai dạng cú pháp cho lệnh INSERT INTO trong SQL như sau:
INSERT INTO TABLE_TEN (cot1, cot2, cot3,...cotN)]  
VALUES (giatri1, giatri2, giatri3,...giatriN);
Ở đây, cot1, cot2,...cotN là tên các cột trong bảng mà bạn muốn chèn dữ liệu.
Bạn có thể không cần xác định tên các cột trong truy vấn SQL nếu bạn đang thêm các giá trị cho tất cả cot của bảng đó. Nhưng bạn nên đảm bảo thứ tự của các giá trị là giống như thứ tự các cột trong bảng. Cú pháp của lệnh INSERT INTO này như sau:
INSERT INTO TABLE_TEN VALUES (giatri1,giatri2,giatri3,...giatriN);
Ví dụ: với đoạn mã sau đây, chúng ta sẽ thêm được dữ liệu vào bảng GIAOVIEN:
Insert Into GIAOVIEN(MAGV,HOTEN,LUONG,PHAI,NGSINH,DIACHI)
	values ('001',N'Nguyễn Hoài An',2000.0,N'Nam','1973-02-15',N'25/3 Lạc Long Quân, Q.10,TP HCM')
	Insert Into GIAOVIEN(MAGV,HOTEN,LUONG,PHAI,NGSINH,DIACHI)
	values ('002',N'Trần Trà Hương',2500.0,N'Nữ','1960-06-20',N'125 Trần Hưng Đạo, Q.1, TP HCM')
	Insert Into GIAOVIEN(MAGV,HOTEN,LUONG,PHAI,NGSINH,DIACHI,GVQLCM)
	values ('003',N'Nguyễn Ngọc Ánh',2200.0,N'Nữ','1975-05-11',N'12/21 Võ Văn Ngân Thủ Đức, TP HCM',N'002')
	Insert Into GIAOVIEN(MAGV,HOTEN,LUONG,PHAI,NGSINH,DIACHI)
	values ('004',N'Trương Nam Sơn',2300.0,N'Nam','1959-06-20',N'215 Lý Thường Kiệt,TP Biên Hòa')
	Insert Into GIAOVIEN(MAGV,HOTEN,LUONG,PHAI,NGSINH,DIACHI)
	values ('005',N'Lý Hoàng Hà',2500.0,N'Nam','1954-10-23',N'22/5 Nguyễn Xí, Q.Bình Thạnh, TP HCM')
	Insert Into GIAOVIEN(MAGV,HOTEN,LUONG,PHAI,NGSINH,DIACHI,GVQLCM)
	values ('006',N'Trần Bạch Tuyết',1500.0,N'Nữ','1980-05-20',N'127 Hùng Vương, TP Mỹ Tho',N'004')
	Insert Into GIAOVIEN(MAGV,HOTEN,LUONG,PHAI,NGSINH,DIACHI)
	values ('007',N'Nguyễn An Trung',2100.0,N'Nam','1976-06-05',N'234 3/2, TP Biên Hòa')
	Insert Into GIAOVIEN(MAGV,HOTEN,LUONG,PHAI,NGSINH,DIACHI,GVQLCM)
	values ('008',N'Trần Trung Hiếu',1800.0,N'Nam','1977-08-06',N'22/11 Lý Thường Kiệt,TP Mỹ Tho',N'007')
	Insert Into GIAOVIEN(MAGV,HOTEN,LUONG,PHAI,NGSINH,DIACHI,GVQLCM)
	values ('009',N'Trần Hoàng nam',2000.0,N'Nam','1975-11-22',N'234 Trấn Não,An Phú, TP HCM',N'001')
	Insert Into GIAOVIEN(MAGV,HOTEN,LUONG,PHAI,NGSINH,DIACHI,GVQLCM)
	values ('010',N'Phạm Nam Thanh',1500.0,N'Nam','1980-12-12',N'221 Hùng Vương,Q.5, TP HCM',N'007')
Kết quả thu được:

2. SQL Update

UPDATE trong SQL được sử dụng để sửa đổi các bản ghi đang tồn tại trong một bảng.
Bạn có thể sử dụng mệnh đề WHERE với truy vấn UPDATE để cập nhật các hàng đã được lựa chọn, nếu không, tất cả các hàng sẽ bị tác động.
Cú pháp cơ bản của truy vấn UPDATE với mệnh đề WHERE như sau:
UPDATE ten_bang
SET cot1 = giatri1, cot2 = giatri2...., cotN = giatriN
WHERE [dieu_kien];
Ví dụ, ban đầu, chúng ta có thông tin của giáo viên có MAGV là 001 như sau:
Ta cần sửa mức lương của giáo viên lên 3500, ta sử dụng câu lệnh như sau:
UPDATE GIAOVIEN SET LUONG = 3500 WHERE MAGV = 001
Kết quả thu được:

3. SQL Delete

Lệnh DELETE được sử dụng để xóa các hàng từ một bảng. Nếu bạn muốn xóa một hàng cụ thể từ một bảng, bạn nên sử dụng mệnh đề WHERE.
DELETE FROM ten_bang [WHERE dieu_kien];
Nhưng nếu bạn không xác định mệnh đề WHERE, thì nó sẽ xóa tất cả hàng từ bảng.
DELETE FROM ten_bang;
Ví dụ, ta muốn xóa thông tin của giáo viên có MAGV là 002, câu lệnh như sau:
DELETE GIAOVIEN WHERE MAGV = 002
Có một số khái niệm tương tự như lệnh DELETE, chẳng hạn như lệnh DROP và lệnh TRUNCATE nhưng chúng không thực sự giống nhau, dưới đây là một số điểm khác nhau giữa chúng.
Điểm khác nhau giữa lệnh DELETE và lệnh TRUNCATE
Có một điểm khác nhau nhỏ giữa lệnh DELETE và lệnh TRUNCATE. Lệnh DELETE chỉ xóa các hàng từ bảng dựa trên điều kiện đã được định nghĩa bởi mệnh đề WHERE hoặc xóa tất cả các hàng từ bảng nếu điều kiện này không được xác định. Nhưng nó không giải phóng bộ nhớ chứa bảng đó.
Trong khi đó, lệnh TRUNCATE xóa tất cả các hàng từ bảng và giải phóng bộ nhớ chứa bảng đó. Để xóa tất cả các hàng từ bảng SINHVIEN, truy vấn như sau:
TRUNCATE TABLE SINHVIEN;
Điểm khác nhau giữa lệnh DROP và lệnh TRUNCATE
Khi bạn sử dụng lệnh DROP, nó xóa hàng của bảng cùng với định nghĩa bảng, để tất cả các mối quan hệ giữa bảng đó với bảng khác là không còn hiệu lực nữa. Khi bạn DROP một bảng:
  1. Cấu trúc bảng sẽ bị xóa.
  2. Mối quan hệ sẽ bị xóa.
  3. Các ràng buộc về toàn vẹn dữ liệu sẽ bị xóa.
  4. Quyền truy cập cũng sẽ bị xóa.
Nói cách khác, khi chúng ta sử dụng lệnh TRUNCATE, thì cấu trúc bảng vẫn như cũ, do đó chúng ta không phải mất công tạo lại và không phải đối mặt với các vấn đề trên.
Như vậy, thông qua bài học này, chúng ta đã tìm hiểu những câu lệnh dùng để thêm, sửa, xóa dữ liệu trong SQL Server. Cảm ơn các bạn đã đọc.