Bài giảng SQL server 2005 - Chương 5: Cập nhật dữ liệu cung cấp cho người học các kiến thức: Thêm mẫu tin mới, sửa nội dung mẫu tin, xóa mẫu tin. Đây là một tài liệu hữu ích dành cho các bạn sinh viên ngành Công nghệ thông tin và những ai quan tâm dùng làm tài liệu học tập và nghiên cứu.
Trang 1CHƯƠNG V CẬP NHẬT DỮ LIỆU
Giảng viên: Phạm Mạnh Cương
CHƯƠNG V CẬP NHẬT DỮ LIỆU
Giảng viên: Phạm Mạnh Cương
1
Trang 2NỘI DUNG
1 Thêm mẫu tin mới
2 Sửa nội dung mẫu tin
3 Xóa mẫu tin
Trang 3I- THÊM MẪU TIN MỚI:
3
1 Thêm một mẫu tin mới
2 Thêm mẫu tin lấy từ các bảng khác
3 Thêm dữ liệu từ file vào cột Varbinary(Max)
Trang 41- Thêm một mẫu tin mới:
Cú pháp:
INSERT <table_name> [(<column_list>)]
VALUES (<expression_list>)
Trang 5Chú ý:
5
Database Engine tự động cung cấp giá trị cho các cột
• Có thuộc tính IDENTITY
• Có khai báo Default.
• Có cho phép Null.
• Hoặc là cột tính toán
Trang 62- Thêm mẫu tin lấy từ các bảng
khác :Cú pháp: INSERT <table_name> [(<column_list>)]
< SELECT statement>
set dateformat DMY
insert into HDLuu(SoHD,NgayHD,TienHD)
select b1.SoHD, convert(varchar,b1.NgayHD, 103) as NgayHD,
sum(b2.DGBan*b2.SL) as TienHD
from HoaDon as b1 inner join CTHD as b2 on b1.SoHD = b2.SoHD
group by b1.SoHD,b1.NgayHD
Trang 73.Thêm dữ liệu từ file vào cột
Varbinary(Max):
7
Hàm: OPENROWSET( BULK 'data_file' , SINGLE_BLOB)
• Trả về bảng dữ liệu chỉ có một cột và một dòng chứa nội
dung file dữ liệu.
• Do đó, có thể sử dụng hàm này trong mệnh đề FROM
Ví dụ: Thêm loại hàng mới và ghi nội dung file hình 'C:\KeoMut.jpg'
vào cột Hinh kiểu Varbinary(Max)
Trang 8Thêm mẫu tin mới có hình
Ví dụ: Thêm loại hàng mới và ghi nội dung file hình 'C:\KeoMut.jpg' vào cột Hinh kiểu Varbinary(Max)
INSERT LoaiHang (MaLH, TenLH, MoTa, Hinh)
SELECT 3, N‘Kẹo mứt’, N‘Desserts' , *
FROM OPENROWSET( BULK 'C:\Keomut.jpg', SINGLE_BLOB) AS A
Trang 9II- SỬA NỘI DUNG MẪU TIN
9
1 Thay đổi nội dung cột dữ liệu
2 Thay đổi nội dung cột kiểu varbinary(Max)
Trang 101 Thay đổi nội dung cột dữ liệu
Cú pháp :
UPDATE <table_name>
SET <column_name> = {<expression>|DEFAULT|NULL}[ , n ]
[ FROM < tables_source > ]
[ WHERE <search_conditions> ]
• Nếu không có mệnh đề WHERE thì tất cả mẫu tin đều bị thay đổi
• < expression > có thể là phát biểu SELECT trả về một giá trị cập nhật cho
từng mẫu tin
• Mệnh đề FROM được sử dụng khi điều kiện chọn lựa mẫu tin hoặc dữ liệu
cập nhật có liên quan đến các bảng khác
Trang 11Chọn mẫu tin cập nhật với mênh đề
WHERE
11
Ví dụ:
Tăng số tồn của các mặt hàng mã số loại hàng bằng 1 thêm 100 và tăng đơn giá của các mặt hàng đó thêm 10%
update MatHang
set DonGia=DonGia+DonGia*10/100,SoTon=SoTon+100
where MaLH=1
Trang 122 Thay đổi nội dung cột kiểu
varbinary(Max)
Cú pháp:
SELECT *
FROM OPENROWSET( BULK 'file_name', SINGLE_BLOB) AS <label>
Ví dụ: Thay thế hình của loại hàng có MaLH=1 với hình lưu trong
file " D:\00473.jpg"
Update LoaiHang set Hinh=(SELECT * FROM OPENROWSET( BULK 'D:\00473.jpg', SINGLE_BLOB) AS A) where MaLH=1
Trang 13III- XÓA MẪU TIN
13
Cú pháp: DELETE <table_name>
[ FROM <tables_list> ]
[ WHERE <search_conditions>]
• Nếu khong co mệnh đề WHERE thi tất cả mẫu tin đều bị xoa
Vi dụ: Xóa tất cả cac dong trong CTHD
DELETE CTHD
Vi dụ: Xóa trong bảng CTHD, dòng chi tiết có số hoa đơn bằng 1
va mã mặt hang bằng 5
DELETE CTHD WHERE SoHD = 1 And MaMH = 5
Trang 14Dùng mệnh đề FROM
• Mệnh đề FROM được sử dụng khi điều kiện chọn lựa mẫu tin
trên bảng bị xóa co liên quan đến các bảng khác
Ví dụ:
1 Xóa CTHD của các hóa đơn lập năm 1995
delete CTHD from CTHD INNER JOIN HoaDon on HoaDon.SoHD=CTHD.SoHD and
DatePart(YY,HoaDon.NgayHD)='1995'
2 Xóa MatHang đơn giá thấp nhất
WHERE DONGIA = (SELECT MIN(DONGIA) FROM MATHANG)
Trang 15CẢM ƠN
15