You are on page 1of 8

Môn Cơ Sở Dữ Liệu Nội dung thực hành

BÀI TẬP TUẦN 02



Cho bảng dữ liệu sau

Biên soạn Lê Thị Mnh Nguyện 1


Môn Cơ Sở Dữ Liệu Nội dung thực hành

Cho cấu trúc bảng theo định nghĩa sau, các field in đậm và gạch dưới là khóa chính của bảng.

Biên soạn Lê Thị Mnh Nguyện 2


Môn Cơ Sở Dữ Liệu Nội dung thực hành

Hướng dẫn: Chú ý loại dữ liệu trong bảng và cách khai báo bảng DMSV

Kiểu chữ
(ký tự)
Kiểu chữ có dấu
(ký tự)
Kiểu nhị phân
(số 0 hoặc 1)

Kiểu ngày giờ

Kiểu số

Chuyển sang code

Biên soạn Lê Thị Mnh Nguyện 3


Môn Cơ Sở Dữ Liệu Nội dung thực hành

Hướng dẫn: Cho đoạn code khai báo cấu trúc bảng trên như sau và lưu ý cách tạo khóa chính.
a) Bảng có Khóa chính là một cột MAMH

b) Bảng có Khóa chính gồm nhiều cột MASV,MAMH,LANTHI

c) Cách tạo khóa ngoại

Biên soạn Lê Thị Mnh Nguyện 4


Môn Cơ Sở Dữ Liệu Hướng dẫn

Bài 1: Xác định trong đoạn mã trên câu lệnh nào cho phép.
• Khai báo trường dữ liệu MaSV, có kiểu dữ liệu char, kích thước trường là 3 ký tự và là
khóa chính của bảng.
• Khai báo khóa chính nhiều hơn một trường dữ liệu (3 trường).
• Thêm khóa ngoại từ bảng DMSV đến bảng DMKHOA. Xác định trong đoạn code trường
nào của bảng DMSV sẽ nối với trường nào trong DMKHOA.
Bài 2: Viết câu lệnh SQL xây dựng bảng với cấu trúc cho sẵn như sau (Tự cho kiểu dữ liệu).
KHACHSAN(MAKS,TENKS,DIACHI)
PHONG(SOPHONG,MAKS,LOAIPHONG,GIA)
DATPHONG(MAKS,MAKHACH,NGAYNHAN,NGAYTRA,SOPHONG)
KHACHHANG(MAKHACH,HOTEN,DIACHI)

Bài 3: Viết câu lệnh SQL xây dựng bảng với cấu trúc cho sẵn như sau.

Biên soạn Lê Thị Mnh Nguyện 5


Môn Cơ Sở Dữ Liệu Hướng dẫn

Bài 4: Viết câu lệnh SQL xây dựng bảng với cấu trúc cho sẳn như sau.

Bài 5: Hãy xác định các thông báo lỗi trong các trường hợp sau.
• Chèn 2 dòng dữ liệu có trùng khóa chính.
• Tạo một bảng đã có trong CSDL (trùng tên bảng)
• Nhập sai định dạng dữ liệu (kiểu số mà nhập kiểu ký tự)
• Chèn dữ liệu khóa ngoại nhưng giá trị khóa ngoại không tồn tại trong bảng tham chiếu.

Biên soạn Lê Thị Mnh Nguyện 6


Môn Cơ Sở Dữ Liệu Hướng dẫn

Hướng dẫn: Thay đổi cấu trúc dữ liệu dùng ngôn ngữ DDL
1. Thêm thuộc tính:
ALTER TABLE <Tên_bảng> ADD <Tên_cột> <Kiểu_dữ_liệu> [<RBTV>]
Ví dụ : Thêm vào DMKHOA thuộc tính NamTL(năm thành lập) có kiểu dữ liệu là int.
ALTER TABLE DMKHOA ADD NamTL int
2. Mở rộng thuộc tính (cột) HOẶC thay đổi kiểu dữ liệu
ALTER TABLE <Tên_bảng> ALTER COLUMN <Tên_cột> <Kiểu_dữ_liệu_mới>
Ví dụ: Thay đổi kiểu dữ liệu NamTL thành smallInt
ALTER TABLE DMKHOA ALTER COLUMN NamTL smallint
3. Đổi tên thuộc tính
EXEC sp_rename ‘Tên_bảng[.tên_cột]’,‘Tên_mới’ [, ‘COLUMN’]
Ví dụ: Đổi tên NamTL thành NamThanhLap
EXEC sp_rename 'DMKHOA.NamTL', 'NamThanhLap'

4. Xóa thuộc tính


ALTER TABLE <Tên_bảng> DROP COLUMN <Tên_cột>
Ví dụ: Xóa thuộc tính NamThanhLap
ALTER TABLE DMKHOA DROP COLUMN NamThanhLap
5. Xóa ràng buộc
ALTER TABLE <Tên_bảng> DROP <Tên_RBTV>
Ví dụ: Xóa ràng buộc khóa ngoại giữa sinh viên và khoa
ALTER TALBE DMSV DROP fk_dmsv_khoa
(chú ý: fk_dmsv_khoa là tên khóa ngoại do người dùng đặt)
6. Thêm ràng buộc:
ALTER TABLE <Tên_bảng> ADD CONSTRAINT<Tên_RBTV>
Ví dụ: Tạo ràng buộc khóa ngoại giữa sinh viên và khoa
ALTER TABLE DMSV ADD CONSTRAINT fk_dmsv_khoa FOREIGN
KEY(MaKH) REFERENCES DMKHOA (MaKH)

Biên soạn Lê Thị Mnh Nguyện 7


Môn Cơ Sở Dữ Liệu Hướng dẫn

Bài 6: Thay đổi cấu trúc bảng trong Bài 2 như sau.
• Thay MAKS thành MAKHACHSAN
• Thay TENKS thành TENKHACHSAN
• Thêm cột SODIENTHOAI vào bảng KHACHSAN và bảng KHACHHANG
• Thêm Khóa ngoại vào bảng DATPHONG tham chiếu đến bảng KHACHSAN và
KHACHHANG
Bài 7: Thay đổi cấu trúc bảng trong Bài 4 như sau.
• Thêm khóa ngoại vào bảng CHITIETHOADON tham chiếu đến bảng HOADON.
• Thêm khóa ngoại vào bảng CHITIETHOADON tham chiếu đến bảng SANPHAM.
• Thêm khóa ngoại vào bảng HOADON tham chiếu đến bảng KHACHHANG.
• Thêm khóa ngoại vào bảng SANPHAM tham chiếu đến bảng KHO.

Biên soạn Lê Thị Mnh Nguyện 8

You might also like