Chèn từng dòng dữ liệu với mỗi câu lệnh INSERT. Đây là cách sử dụng thường gặp nhất trong SQL. Chèn nhiều dòng dữ liệu bằng cách truy xuất dữ liệu từ các bảng dữ liệu khác. Danh sách cột ngay sau tên bảng không cần thiết phải chỉ định nếu giá trị các trường của bản ghi mới được chỉ định đầy đủ trong danh sách trị. Thứ tự các giá trị trong danh sách trị phải bằng với số lượng các trường của bảng cần chèn dữ liệu cũng như phải tuân theo đúng thứ tự của các trường như khi bảng được định nghĩa.
Chương Phát biểu T-SQL dạng xử lý liệu 4.1 Chèn liệu 4.2 Cập nhật liệu 4.3 Xoá liệu SQL Server 2005 4.1 Chèn liệu •Chèn dòng liệu với câu lệnh INSERT Đây cách sử dụng thường gặp SQL •Chèn nhiều dòng liệu cách truy xuất liệu từ bảng liệu khác SQL Server 2005 4.1.1 Chèn dòng liệu •Để chèn dòng liệu vào bảng, bạn sử dụng câu lệnh INSERT với cú pháp sau: INSERT INTO tên_bảng [(danh_sách_cột)] VALUES (danh_sách_trị) SQL Server 2005 4.1.1 Chèn dòng liệu •Danh sách cột sau tên bảng không cần thiết phải định giá trị trường ghi định đầy đủ danh sách trị •Thứ tự giá trị danh sách trị phải với số lượng trường bảng cần chèn liệu phải tuân theo thứ tự trường bảng định nghĩa •Câu lệnh chèn thêm dòng liệu vào bảng HOCPHAN INSERT INTO HOCPHAN VALUES(‘tcc’,’Toán cao cấp’,3) SQL Server 2005 4.1.1 Chèn dòng liệu •Trong trường hợp nhập giá trị cho số cột bảng, bạn phải định danh sách cột cần nhập liệu sau tên bảng •Khi đó, cột không nhập liệu nhận giá trị mặc định (nếu có) nhận giá trị NULL (nếu cột cho phép chấp nhận giá trị NULL) SQL Server 2005 4.1.1 Chèn dòng liệu Câu lệnh chèn ghi cho bảng SINHVIEN INSERT INTO sinhvien (masv,hodem,ten,gioitinh,malop) VALUES (‘tm01-001’,‘Châu Thế’,’Toàn’,1,’tm01’) Câu lệnh có thể viết sau: INSERT INTO sinhvien VALUES (‘tm01-001’,‘ Châu Thế’,’Toàn’, NULL,1,NULL,’tm01’) SQL Server 2005 4.1.1 Chèn dòng liệu Ví dụ 1: Viết câu lệnh SQL tạo bảng LUUSINHVIEN bao gồm trường HODEM, TEN, NGAYSINH Ví dụ 2: Chèn liệu cho bảng LUUSINHVIEN theo cách khác SQL Server 2005 4.1.2 Chèn nhiều dòng liệu từ bảng khác •Chèn nhiều dòng liệu vào bảng, dòng liệu lấy từ bảng khác thông qua câu lệnh SELECT •Ở cách này, giá trị liệu chèn vào bảng không định tường minh mà thay vào câu lệnh SELECT truy vấn liệu từ bảng khác •Cú pháp câu lệnh INSERT có dạng sau: INSERT INTO tên_bảng[(danh_sách_cột)] câu_lệnh_SELECT SQL Server 2005 4.1.2 Chèn nhiều dòng liệu từ bảng khác •Giả sử bạn có bảng LUUSINHVIEN bao gồm trường HODEM, TEN, NGAYSINH •Câu lệnh chèn vào bảng LUUSINHVIEN ghi có từ câu truy vấn SELECT: INSERT INTO luusinhvien SELECT hodem,ten,ngaysinh FROM sinhvien WHERE noisinh like N‘%Quảng Nam’ SQL Server 2005 4.1.2 Chèn nhiều dòng liệu từ bảng khác Lưu ý: •Kết câu lệnh SELECT phải có số cột với số cột định bảng đích phải tương thích kiểu liệu •Trong câu lệnh SELECT sử dụng mệnh đề COMPUTE BY SQL Server 2005 10 4.2 Cập nhật liệu Câu lệnh UPDATE SQL sử dụng để cập nhật liệu bảng Câu lệnh có cú pháp sau: UPDATE tên_bảng SET tên_cột = biểu_thức [, , tên_cột_k = biểu_thức_k] •[FROM danh_sách_bảng] •[WHERE điều_kiện] SQL Server 2005 11 4.2 Cập nhật liệu Ví dụ 1: Câu lệnh sau cập nhật lại số tín cho học phần có mã SQL UPDATE HOCPHAN SET sotinchi = WHERE mahocphan =N’SQL’ Ví dụ : Viết câu lệnh cập nhật lại ngày sinh 1/1/1990 cho sinh viên tên Bình SQL Server 2005 12 4.2.1 Cấu trúc CASE lệnh UPDATE Cấu trúc CASE có thể sử dụng biểu thức cần phải đưa định khác giá trị biểu thức Giả sử bạn có bảng NHATKYPHONG sau đây: SQL Server 2005 13 4.2.1 Cấu trúc CASE lệnh UPDATE Câu lệnh cập nhật: UPDATE NHATKYPHONG SET tienphong=songay* CASE WHEN loaiphong='A' THEN 100 WHEN loaiphong='B' THEN 70 ELSE 50 END SQL Server 2005 14 4.2.3 ĐK Cập nhật DL liên quan đến nhiều bảng •Mệnh đề FROM câu lệnh UPDATE sử dụng cần định điều kiện liên quan đến bảng khác với bảng cần cập nhật liệu •Trong truờng hợp này, mệnh đề WHERE thường có điều kiện nối bảng SQL Server 2005 15 4.2.3 ĐK Cập nhật DL liên quan đến nhiều bảng •Giả sử bạn có hai bảng MATHANG NHATKYBANHANG sau: SQL Server 2005 16 4.2.3 ĐK Cập nhật DL liên quan đến nhiều bảng Câu lệnh cập nhật giá trị trường THANHTIEN bảng NHATKYBANHANG theo công thức THANHTIEN = SOLUONG × GIA UPDATE nhatkybanhang SET thanhtien = soluong*gia FROM mathang WHERE nhatkybanhang.mahang = mathang.mahang SQL Server 2005 17 4.2.4 Câu lệnh UPDATE với truy vấn Câu lệnh ví dụ trước viết sau: UPDATE nhatkybanhang SET thanhtien = soluong*gia FROM mathang WHERE mathang.mahang =(SELECT mathang.mahang FROM mathang WHERE mathang.mahang=nhatkybanhang.ma hang) SQL Server 2005 18 4.3 Xoá liệu •Để xoá liệu bảng, bạn sử dụng câu lệnh DELETE Cú pháp câu lệnh sau: DELETE FROM tên_bảng [FROM danh_sách_bảng] [WHERE điều_kiện] SQL Server 2005 19 4.3 Xoá liệu Ví dụ 1: Câu lệnh xoá khỏi bảng SINHVIEN sinh viên sinh tại Quảng Ngãi DELETE FROM sinhvien WHERE noisinh LIKE N‘%Quảng Ngãi’ Ví dụ 1: Xóa sinh viên 19 tuổi từ bảng SINHVIEN SQL Server 2005 20 4.3.2 Xoá liệu điều kiện liên quan đến nhiều bảng •Nếu điều kiện câu lệnh DELETE liên quan đến bảng bảng cần xóa liệu, bạn phải sử dụng thêm mệnh đề FROM sau danh sách tên bảng •Trong trường hợp này, mệnh đề WHERE bạn định thêm điều kiện nối bảng SQL Server 2005 21 4.3.2 Xoá liệu điều kiện liên quan đến nhiều bảng •Câu lệnh xoá khỏi bảng SINHVIEN sinh viên lớp Dữ liệu DELETE FROM sinhvien FROM lop WHERE lop.malop=sinhvien.malop AND tenlop=N'Dữ liệu 1' SQL Server 2005 22 4.3.3 Sử dụng truy vấn câu lệnh Delete • Một câu lệnh SELECT có thể lồng vào mệnh đề WHERE câu lệnh DELETE để làm điều kiện cho câu lệnh tương tự câu lệnh UPDATE •Ví dụ 1: Câu lệnh xoá khỏi bảng LOP lớp sinh viên học DELETE FROM lop WHERE malop NOT IN (SELECT DISTINCT malop FROM sinhvien) Ví dụ 2: Xóa sinh viên bảng LUUSINHVIEN có năm sinh trùng với sinh viên có bảng SINHVIEN SQL Server 2005 23 4.3.4 Xoá toàn liệu bảng •Câu lệnh DELETE không định điều kiện dòng liệu cần xoá mệnh đề WHERE xoá toàn liệu bảng Thay sử dụng câu lệnh DELETE trường hợp này, bạn có thể sử dụng câu lệnh TRUNCATE có cú pháp sau: TRUNCATE TABLE tên_bảng SQL Server 2005 24 4.3.4 Xoá toàn liệu bảng Ví dụ: Câu lệnh sau xoá toàn liệu bảng diemthi: DELETE FROM diemthi Có tác dụng tương tự với câu lệnh TRUNCATE TABLE diemthi SQL Server 2005 25 .. .4. 1 Chèn liệu •Chèn dòng liệu với câu lệnh INSERT Đây cách sử dụng thường gặp SQL •Chèn nhiều dòng liệu cách truy xuất liệu từ bảng liệu khác SQL Server 2005 4. 1.1 Chèn dòng liệu •Để... tên_bảng SQL Server 2005 24 4.3 .4 Xoá toàn liệu bảng Ví dụ: Câu lệnh sau xoá toàn liệu bảng diemthi: DELETE FROM diemthi Có tác dụng tương tự với câu lệnh TRUNCATE TABLE diemthi SQL Server 2005 25... hang) SQL Server 2005 18 4. 3 Xoá liệu •Để xoá liệu bảng, bạn sử dụng câu lệnh DELETE Cú pháp câu lệnh sau: DELETE FROM tên_bảng [FROM danh_sách_bảng] [WHERE điều_kiện] SQL Server 2005 19 4. 3