INSERT – Lệnh thêm dữ liệu
Nội dung
1. Mô tả
- Lệnh INSERT dùng để thêm mới dữ liệu vào bảng (Table).
2. Cú pháp
INSERT Tên_bảng(Cột_1, Cột_2,... Cột_n)
VALUES(Giá_trị_1, Giá_trị_2,... Giá_trị_n)
--Hoặc (có thể thêm INTO):
INSERT INTO Tên_bảng(Cột_1, Cột_2,... Cột_n)
VALUES(Giá_trị_1, Giá_trị_2,... Giá_trị_n)
3. Ví dụ
- Thêm một dòng mới vào bảng: chỉ duy nhất một dòng được thêm vào tại một thời điểm.
INSERT DEPARTMENTS(Department_id, Department_name, Manager_id, Location_id)
VALUES(280, 'Service', 145, 2500)
- Thêm nhiều dòng mới vào bảng: Thêm một dòng với các giá trị cho mỗi cột; Thứ tự các cột sẽ tương ứng với thứ tự các giá trị trong lệnh INSERT; Nếu bỏ qua danh sách các cột thì thứ tự các cột sẽ được hiểu là thứ tự trong bảng.
INSERT DEPARTMENTS
VALUES(290, 'Service', 145, 2500)
- Thêm dòng với giá trị NULL: Giá trị ngày và chuỗi phải đặt trong dấu nháy đơn; Ngầm định bỏ qua các cột trong danh sách cột.
INSERT DEPARTMENTS(Department_id, Department_name)
VALUES(300, N'Quảng cáo')
--Sử dụng từ khóa NULL trong mệnh đề VALUES
INSERT DEPARTMENTS(Department_id, Department_name, Manager_id, Location_id)
VALUES(310, N'Quảng cáo', NULL, NULL)
- Thêm dòng với các giá trị đặc biệt: hàm GETDATE trả về ngày giờ hiện hành.
INSERT EMPLOYEES(Employee_id, First_name, Last_name, Email, Phone_number, Hire_date, Job_id, Salary, Commission_pct, Manager_id, Department_id)
VALUES(207, N'Thảo', N'Lý Ngọc', 'lnthao@gmail.com', '0913 111 333', GETDATE(), 'AC_ACCOUNT', 7000, NULL, 205, 110)
- Thêm dòng với các giá trị của các biến giá trị: Dấu @ được đặt trước tên biến.
INSERT DEPARTMENTS(Department_id, Department_name)
VALUES(@Maphong, '@Tenphong')
- Lấy dữ liệu các dòng từ một bảng khác: Sử dụng lệnh INSERT với truy vấn con; Không sử dụng mệnh đề VALUES; Các cột trong mệnh đề INSERT và các cột trả về từ truy vấn con phải khớp nhau. (Tham khảo thêm lệnh tạo Table)
--Tạo bảng
CREATE TABLE NHAN_VIEN
(
manv numeric(6, 0) PRIMARY KEY,
hovaten nvarchar(50),
mapb numeric(4, 0)
)
--Thêm dữ liệu vào bảng NHAN_VIEN lấy từ bảng EMPLOYEES
INSERT INTO NHAN_VIEN(manv, hovaten, mapb)
SELECT Employee_id, Last_name + ' ' + First_name, Department_id
FROM EMPLOYEES
WHERE Job_id LIKE '%sa%'
Xem thêm: lệnh sửa dữ liệu UPDATE, lệnh xóa dữ liệu DELETE, lệnh xóa toàn bộ dữ liệu trong bảng TRUNCATE TABLE, lệnh trộn dữ liệu MERGE.