Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> SQL Server

Lệnh INSERT trong SQL Server

Lệnh INSERT trong SQL Server (Transact-SQL) dùng để chèn một hoặc nhiều bản ghi vào một bảng.

Cú pháp lệnh INSERT

Chèn một bản ghi

Dạng đơn giản nhất, cú pháp INSERT chèn bản ghi dùng từ khóa VALUES:

INSERT INTO bang
(cot1, cot2, …)
VALUES
(bieu_thuc1, bieu_thuc2, …),
(bieu_thuc1, bieu_thuc2, …),
… ;

Cú pháp đầy đủ chèn bản ghi dùng từ khóa VALUES:

INSERT INTO bang
(cot1, cot2, …)
VALUES
( DEFAULT | NULL | bieu_thuc1,
  DEFAULT | NULL | bieu_thuc2,
  …
);

Hoặc cú pháp chèn bản ghi dùng từ khóa DEFAULT VALUES:

INSERT INTO bang
(cot1, cot2, …)
DEFAULT VALUES;

Chèn nhiều bản ghi

Dạng đơn giản nhất, cú pháp chèn nhiều bản ghi bằng sub-select:

INSERT INTO bang
(cot1, cot2, …)
SELECT bieu_thuc1, bieu_thuc2, …
FROM bang_nguon
[WHERE dieu_kien];

Cú pháp đầy đủ chèn nhiều bản ghi với sub-select:

INSERT [TOP (gia_tri_dau) [PERCENT] ]
INTO bang
(cot1, cot2, …)
SELECT bieu_thuc1, bieu_thuc2, …
FROM bang_nguon
[WHERE dieu_kien];

Tham số

bang: Bảng cần chèn bản ghi vào.

cot1, cot2: Các cột trong bảng để chèn giá trị.

bieu_thuc1, bieu_thuc2: Giá trị chỉ định cho cột trong bảng. cot1 gán giá trị bieu_thuc1, cot2 gán bieu_thuc2.

TOP (gia_tri_dau): Tùy chọn. Nếu chỉ định, sẽ chèn gia_tri_dau hàng đầu tiên dựa trên tập kết quả. Ví dụ TOP (10) chèn 10 hàng đầu.

PERCENT: Tùy chọn. Nếu chỉ định, chèn phần trăm hàng đầu dựa trên gia_tri_dau của tập kết quả. Ví dụ TOP (10) PERCENT chèn 10% hàng đầu.

bang_nguon: Bảng nguồn (bảng gốc) để chèn dữ liệu từ bảng khác.

WHERE dieu_kien: Tùy chọn. Điều kiện bản ghi phải thỏa mãn để được chèn.

Lưu ý

  1. Khi chèn bản ghi vào bảng bằng lệnh INSERT, bạn phải cung cấp giá trị cho các cột NOT NULL.
  2. Có thể bỏ qua cột trong lệnh INSERT nếu cột đó cho phép giá trị NULL.

Ví dụ – dùng từ khóa VALUES

INSERT INTO nhanvien
(nhanvien_id, ten, ho)
VALUES
(10, 'Anderson', 'Sarah');

Lệnh INSERT này chèn 1 bản ghi vào bảng. Bản ghi có nhanvien_id = 10, họ là Anderson, tên là Sarah.

Cú pháp này cũng dùng để chèn nhiều hơn 1 bản ghi cùng lúc. Ví dụ:

INSERT INTO nhanvien
(nhanvien_id, ho, ten)
VALUES
(19, 'Anderson', 'Sarah'),
(11, 'Johnson', 'Dale');

Ví dụ INSERT trên cho thấy có thể chèn nhiều bản ghi với VALUES. Ở đây chèn 2 bản ghi. Bản ghi 1: nhanvien_id = 19, họ Anderson, tên Sarah. Bản ghi 2: nhanvien_id = 11, họ Johnson, tên Dale.

Lệnh trên tương đương với 2 lệnh INSERT riêng biệt:

INSERT INTO nhanvien (nhanvien_id, ho, ten) VALUES (10, 'Anderson', 'Sarah');
INSERT INTO nhanvien (nhanvien_id, ho, ten) VALUES (11, 'Johnson', 'Dale');

Ví dụ – dùng từ khóa DEFAULT VALUES

INSERT INTO nhanvien
(nhanvien_id, ho, ten)
DEFAULT VALUES;

Lệnh này chèn một bản ghi vào bảng. Bản ghi mới được tạo bằng giá trị mặc định cho các trường nhanvien_id, ho, ten.

Ví dụ – dùng lệnh SELECT

Có thể tạo lệnh INSERT phức tạp hơn với SELECT như sau.

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ể chèn nhanh hơn.

Với kiểu chèn này, bạn có thể muốn kiểm tra số dòng sẽ chèn, xác định số dòng bằng cách chạy lệnh SELECT trước khi chèn.

SELECT count(*)
FROM nhanvien
WHERE nhanvien_id <= 100;