Câu lệnh INSERT trong SQL Server (Transact-SQL) được sử dụng để chèn một hoặc nhiều bản ghi vào bảng.
Cú pháp lệnh INSERT
Chèn bản ghi
Ở dạng đơn giản nhất, cú pháp lệnh INSERT chèn một bản ghi với từ khóa VALUES
INSERT INTObang
(cot1, cot2, …)
VALUES
(bieuthuc1, bieuthuc2, …),
(bieuthuc1, bieuthuc2, …),
. ;
Cú pháp đầy đủ của lệnh INSERT chèn một bản ghi bằng từ khóa VALUES
INSERT INTO bang
(cot1, cot2, …)
VALUES
( DEFAULT | NULL | bieuthuc1,
DEFAULT | NULL | bieuthuc2,
…
);
Hoặc cú pháp để chèn bản ghi bằng từ khóa DEFAULT VALUES
INSERT INTO bang
(cot1, cot2, …)
DEFAULT VALU
ES;
Chèn nhiều bản ghi
Ở dạng đơn giản nhất, cú pháp để chèn nhiều bản ghi là bằng cách chọn con
INSERT INTO bang
(cot1, cot2, …)
SELECT bieuthuc1, bieuthuc2, …
FROM bang_nguon
[WHERE dieuk
ien];
Cú pháp đầy đủ để chèn nhiều bàn với chọn phụ
INSERT [TOP (tri_dau) [PERCENT] ]
INTO bang
(cot1, cot2, …)
SELECT bieuthuc1, bieuthuc2, …
FROM bang_nguon
[WHERE dieukien];
Tên biến hoặc giá trị biến
trạng thái
Bảng để chèn bản ghi vào.
cot1, cot2
Các cột trong bảng để chèn giá trị
bieuthuc1, bieuthuc2
Giá trị cần chỉ định trong cột trong bảng. cot1 sẽ được gán giá trị của bieuthuc1, cot2 sẽ được gán giá trị của bieuthuc2.
TOP (giatri_dau)
Tùy chọn. Nếu cụ thể, nó sẽ chèn giá trị đầu tiên của hàng dựa trên giatri_dau. Ví dụ:TOP (10) sẽ chèn 10 hàng đầu tiên từ tập kết quả.
PERCENT
Tùy chọn. Nếu được chỉ định, các hàng đầu tiên dựa trên phần trăm giatri_dau của tập kết quả. Ví dụ:TOP (10) PERCENT sẽ chèn 10% giá trị đầu tiên trong tập kết quả.
bang_nguon
Bảng nguồn (bảng gốc) để chèn dữ liệu từ một bảng khác.
WHERE dieukien
Tùy chọn. Các điều kiện gửi được đáp ứng để bản ghi được chèn.
Lưu ý
- Khi chèn các bản ghi vào một bảng bằng câu lệnh INSERT, bạn phải cung cấp giá trị cho các cột NOT NULL.
- Bạn có thể xóa các cột khỏi câu lệnh INSERT nếu cột đó cho phép các giá trị NULL.
Ví dụ:sử dụng từ khóa GIÁ TRỊ
INSERT INTO nhanvien
(nhanvien_id, ten, ho)
VALUE
(10, 'Anderson', 'S
arah');
Câu lệnh INSERT này sẽ dẫn đến 1 bản ghi được chèn vào bảng. Kỷ lục này phải có nhanvien_id là 10, họ là Anderson và tên là Sarah.
Cú pháp này có thể được sử dụng để chèn nhiều bản ghi cùng một lúc. Vd:
INSERT INTOanvien
(nhanvien_id, ho, ten)
VALUES
(19, 'Anderson', 'Sarah'),
(11, 'Johnson', 'Dale')
;
Ví dụ, câu lệnh INSERT ở trên cho thấy rằng có thể chèn nhiều hơn 1 bản ghi với từ khóa VALUES. Trong ví dụ này, 2 bản ghi được chèn vào bảng. Bản ghi đầu tiên có 10 phút, họ là Anderson và tên họ là Sarah. Kỷ lục thứ hai có nhanvien_id là 11, họ là Johnson và tên là Dale.
Lệnh trên tương đương với các câu lệnh INSERT bên dưới.
INSERT INTOanvien
(nhanvien_id, ho, ten)
VALUES
(10, 'Anderson', 'Sa
rah');
INSERT INTOanvien
(nhanvien_id, ho, ten)
VALUES
(11, 'Johnson', 'Dal
e');
Ví dụ:sử dụng từ khóa GIÁ TRỊ ĐỊNH MỨC
INSERT INTO nhanvien
(nhanvien_id, ho, ten)
DEFAULT VA
LUES;
Câu lệnh INSERT này chèn một bản ghi vào bảng. Các bản ghi mới được tạo theo giá trị mặc định cho các trường thông tin ID, gia đình và tên của nhân viên.
Ví dụ - sử dụng lệnh SELECT
Có thể tạo câu lệnh INSERT phức tạp hơn với câu lệnh SELECT như hình dưới đây.
INSERT INTO danhba
(danhba_id, ho, ten)
SELECT nhanvien_id, ho, ten
FROM nhanvien
WHERE nhanvien_id
<= 100;
Bằng cách đặt câu lệnh SELECT trong lệnh INSERT, bạn có thể thực hiện nhiều lần chèn nhanh hơn.
Với kiểu chèn này, bạn có thể muốn kiểm tra số hàng được chèn, xác định số hàng sẽ được chèn bằng cách chạy lệnh SELECT trước khi chèn.
SELECT count (*)
FROM nhanvien
WHERE nha
nvien_id <= 100;