II. Ngôn ngữ thao tác dữ liệu
3. Thêm dữ liệu vào bảng
Dữ liệu trong các bảng được thể hiện dưới dạng các dòng (bản ghi). Để bổ sung thêm các dòng dữ liệu vào một bảng, ta sử dụng câu lệnh INSERT. Trước khi thêm dữ liệu vào bảng, điều quan trong bạn cần biết là:
Cột nào đòi hỏi phải có giá trị
Cột nào có ràng buộc toàn vẹn dữ liệu
Cột nào được quản lý bởi CSDL thông qua hàm
Cột nào có giá trị mặc định và chấp nhận giá trị NULL Kiểu dữ liệu của cột
Để bổ sung một dòng dữ liệu mới vào bảng, ta sử dụng câu lệnh INSERT với cú pháp như sau:
INSERT INTO tên_bảng[(danh_sách_cột)] VALUES(danh_sách_trị) Các cột không được phép NULL phải được cung cấp giá trị, các cột được phép NULL có thể không cần liệt kê ra. Giả sử bạn thêm dữ liệu vào bảng.
insert into khachhang(hodem,ten,sodienthoai) values (N'Đặng Minh',N'Hằng','091987546')
Vì các cột Diachi, Email, GioiTinh, Ngaysinh cho phép NULL cho nên dù bạn không cung cấp giá trị cho chúng thì câu lệnh trên vẫn thực thi thành công.
Lưu ý: Trường Makhachhang được thiết lập identity là “YES” nên ta không cần thêm giá trị trường này mà SQL sẽ tự động tạo ra một giá trị cho trường này.
Nếu bạn cung cấp đầy đủ giá trị cho tất cả các cột trong bảng thì bạn không cần liệt kê tên cột của bảng, khi đó các giá trị liệt kê sau Values phải được đặt theo thứ tự cột của bảng. Ví dụ bạn thêm dòng dữ liệu vào bảng KhachHang mà không liệt kê tên cột.
insert into khachhang
values (N'Đặng Minh',N'Hằng',N'Ba Đình', '091987546',
'Hangdm@gmail.com', 0, '13/3/1989')
Câu lệnh INSERT INTO .... SELECT
Một cách sử dụng khác của câu lệnh INSERT được sử dụng để bổ sung nhiều dòng dữ liệu vào một bảng, các dòng dữ liệu này được lấy từ một bảng khác thông qua câu lệnh SELECT. Với cách này, các giá trị dữ liệu được bổ sung vào bảng không được chỉ định tường minh mà thay vào đó là một câu lệnh SELECT truy vấn dữ liệu từ bảng khác.
Cú pháp câu lệnh INSERT có dạng như sau:
INSERT INTO tên_bảng[(danh_sách_cột)] câu_lệnh_SELECT
Ví dụ sau lấy dữ liệu từ bảng KhachHang và thêm vào bảng KhachHang_Backup
insert into khachhang_backup select * from khachhang
where makhachhang between 1 and 10
Câu lệnh SELECT INTO
Bạn có thể tạo một bảng mới có cấu trúc giống với một bảng đang tồn tại và dữ liệu được lấy từ bảng đó sang bằng câu lệnh SELECT INTO. Ví dụ bạn có thể
select * into KhachHang_Backup from KhachHang
Nếu bạn muốn giới hạn dữ liệu thêm vào bảng mới bạn có thể dùng mệnh đề Where như sau:
select * into KhachHang_Backup from KhachHang
where Email like '%gmail.com'