Professional Documents
Culture Documents
• Ví dụ:
- NgaySinh is Null (Chưa nhập ngày sinh)
- GiaBan is not Null (Đã nhập giá bán)
Thêm từng bản ghi
• Cấu trúc
INSERT INTO tên_bảng[(danh sách cột)] VALUES
(danh sách giá trị)
• Lưu ý:
– Danh sách cột không cần thiết phải chỉ định nếu thêm
đầy đủ các trường dữ liệu.
– Danh sách giá trị phải bằng với số lượng các trường và
đúng thứ tự.
– Các trường không được gán giá trị sẽ có giá trị mặc
định hoặc NULL nếu không đặt giá trị mặc định
– Không truyền giá trị cho trường tự tăng
Thêm từng bản ghi
• Các kiểu dữ liệu cần chú ý khi thêm
–Kiểu char, varchar: ‘<chuỗi> ’
–Kiểu nvarchar, nchar: N’<chuỗi>’
–Kiểu Date: ‘<chuỗi ngày tháng>’
(không truyền định dạng
dd/MM/yyyy)
–Kiểu số: theo định dạng US (dấu thập
phân là “.”; ngăn cách phần nghìn là
“,”)
Thêm từng bản ghi
• Ví dụ 1: xét 2 bảng dữ liệu
- Khoa(MaKhoa varchar(10), TenKhoa nvarchar(10))
- SinhVien(MaSv varchar(10), HoTen nvarchar(30), GT
nvarchar(3), MaKhoa varchar(10), NgaySinh Date)
Chèn bản ghi vào bảng Khoa:
Insert into Khoa values(‘CNTT’, N’Công nghệ
thông tin’)
Chèn bản ghi vào bảng SinhVien:
Insert into Khoa values(‘51123’, N’Trần Thị Lan’,
N’Nữ’,‘CNTT’,’2015-06-25’)
Thêm từng bản ghi
• Ví dụ 2: Xét 2 bảng dữ liệu
- LoaiHang (MaLoai int identity(1,1) , TenLoai
nvarchar(50)); MaLoai tự tăng
- HangHoa (MaHang varchar(10), TenHang
nvarchar(30), DVT nvarchar(3), MaLoai int, GiaBan
float); DVT đặt mặc định là “Cái”
Chèn bản ghi vào bảng Loai:
Insert into Loai(TenLoai) values(N’Bàn’)
Chèn bản ghi vào bảng SinhVien:
Insert into HangHoa(MaHang, TenHang, MaLoai,
GiaBan) values(‘H002’, N‘Ghế học sinh’, 2, 125000)
Thêm nhiều bản ghi từ bảng khác
• 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,
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
• Cấu trúc
INSERT INTO tên_bảng[(danh_sách_cột)] câu_lệnh_SELECT
• Lưu ý
– Kết quả của câu lệnh SELECT phải có số cột bằng với
số cột được chỉ định trong bảng đích và phải tương
thích về kiểu dữ liệu.
– Câu lệnh SELECT được sử dụng mệnh đề COMPUTE
Thêm nhiều bản ghi từ bảng khác
Ví dụ: Xét bảng LUUSINHVIEN bao gồm các
trường HODEM, TEN, NGAYSINH. Câu lệnh
dưới đây bổ sung vào bảng LUUSINHVIEN các
dòng dữ liệu có được từ câu truy vấn SELECT:
UPDATE nhatkybanhang
SET thanhtien = soluong*gia
FROM mathang
WHERE nhatkybanhang.mahang = mathang.mahang
Cập nhật bản ghi
SoPhong LoaiPhong DonGia
101 A
102 A
103 B
104 C
201 B
• Ví dụ:
Delete from SinhVien
Truncate table SinhVien
Delete TRUNCATE
Ghi lại hành động xóa cho mỗi Ghi lại các trang dữ liệu được
dòng. hủy cấp phát khi xóa.
Xóa từng dòng một và ghi lại Xóa dữ liệu bằng cách hủy cấp
thay đổi trong transaction log phát các trang dữ liệu lưu trữ
cho mỗi dòng được xóa dữ liệu trong bảng và ghi lại địa
chỉ các trang hủy cấp phát
trong transaction log
Xóa hẳn dữ liệu Không xóa dữ liệu, nó hủy cấp
=> dùng nhiều tài nguyên máy phát các trang dữ liệu và xóa
chủ, transaction log sẽ phình to con trỏ đến chỉ mục
do lưu lại cả dữ liệu nên chạy => Không yêu cầu nhiều tài
chậm nguyên nên vì thế rất nhanh
Dễ dàng trong việc khôi phục Dữ liệu sẽ vẫn tồn tại cho đến
cơ sở dữ liệu về trạng thái gần khi nó bị ghi đè hoặc cơ sở dữ
nhất liệu bị thu hẹp
Nội dung ôn tập
• Các hàm hay sử dụng
trong SQL Server
• Cấu trúc <Điều_Kiện>
trong T_SQL
• Thêm một dòng/
nhiều dòng dữ liệu
vào bảng
• Sửa đổi dữ liệu
• Xóa dữ liệu
• Phân biệt giữa Delete
và Truncate
BÀI TẬP CẬP NHẬT DỮ LIỆU
• Tạo CSDL như sau:
– LoaiHang (MaLoai int , TenLoai nvarchar(50))
– HangHoa (MaHang char(10), TenHang nvarchar(50), DVT
nvarchar(10), GiaBan float, MaLoai int )
– NhaCungCap (MaNCC varchar(10), TenNCC nvarchar(100), DiaChi
nvarchar(200), DT nvarchar(50))
– HoaDonNhap (MaHD varchar(10), NgayHD date, MaNCC
varchar(10), GhiChu nvarchar(200))
– HoaDonNhapCT (MaHD varchar(10), MaHang varchar(10),
SoLuong int, GiaNhap float)
• Thực hiện các thao tác sau:
– Cập nhật ít nhất 5 dòng dữ liệu cho các bảng
– Thay đổi 01 mã hàng nào đó
– Xóa 01 loại hàng nào đó đã khai báo HangHoa
– Xóa toàn bộ dữ liệu các bảng
– Xóa toàn bộ CSDL