Computer >> Máy Tính >  >> Lập trình >> SQL Server

Câu lệnh INSERT trong SQL Server

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 INTO  bang 
(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 INT O 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 INT O 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 I NTO 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 ý

  1. 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.
  2. 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 INT O 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 INTO anvien 
(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 INTO anvien 
(nhanvien_id, ho, ten)
VALUES
(10, 'Anderson', 'Sa rah');
  INSERT INTO anvien 
(nhanvien_id, ho, ten)
VALUES
(11, 'Johnson', 'Dal e');

Ví dụ:sử dụng từ khóa GIÁ TRỊ ĐỊNH MỨC

  INSERT IN TO 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 da nhba 
(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 c ount (*) 
FROM nhanvien
WHERE nha nvien_id <= 100;