
chuong3
3.1 Sử dụng câu lệnh CREATE TABLE để tạo các bảng trong cơ sở dữ liệu như sơ đồ dưới đây (bạn tự lựa chọn kiểu dữ liệu cho phù hợp)
3.2 Bổ sung ràng buộc thiết lập giá trị mặc định bằng 1 cho cột SOLUONG và bằng 0 cho cột MUCGIAMGIA trong bảng CHITIETDATHANG
3.3 Bổ sung cho bảng DONDATHANG ràng buộc kiểm tra ngày giao hàng và ngày chuyển hàng phải sau hoặc bằng với ngày đặt hàng.
3.4 Bổ sung ràng buộc cho bảng NHANVIEN để đảm bảo rằng một nhân viên chỉ có thể làm việc trong công ty khi đủ 18 tuổi và không quá 60 tuổi.
3.5 Với các bảng đã tạo được, câu lệnh:
DROP TABLE nhacungcap
có thể thực hiện được không? Tại sao?
3.6 Cho khung nhìn được định nghĩa như sau:
CREATE VIEW view_donhang
AS
SELECT dondathang.sohoadon,makhachhang,manhanvien,
ngaydathang,ngaygiaohang,ngaychuyenhang,
noigiaohang,mahang,
giaban,soluong,mucgiamgia
FROM dondathang INNER JOIN chitietdathang
ON dondathang.sohoadon = chitietdathang.sohoadon
a. Có thể thông qua khung nhìn này để bổ sung dữ liệu cho bảng DONDATHANG được không?
b. Có thể thông qua khung nhìn này để bổ sung dữ liệu cho bảng CHITIETDATHANG được không?
3.7 Với khung nhìn được định nghĩa như sau:
CREATE VIEW view_donhang
AS
SELECT dondathang.sohoadon,makhachhang,manhanvien,
ngaydathang,ngaygiaohang,ngaychuyenhang,
noigiaohang,mahang,
giaban*soluong as thanhtien,
mucgiamgia
FROM dondathang INNER JOIN chitietdathang
ON dondathang.sohoadon = chitietdathang.sohoadon
a. Có thể thông qua khung nhìn này để xoá hay cập nhật dữ liệu trong bảng DONDATHANG được không?
b. Có thể thông qua khung nhìn này để cập nhật dữ liệu trong bảng CHITIETDATHANG được không?
Lời giải
3.1 Tạo các bảng dữ liệu:
CREATE TABLE nhacungcap
macongty NVARCHAR(10) NOT NULL
CONSTRAINT pk_nhacungcap
PRIMARY KEY(macongty),
tencongty NVARCHAR(40) NOT NULL,
tengiaodich NVARCHAR(30) NULL,
diachi NVARCHAR(60) NULL,
dienthoai NVARCHAR(20) NULL,
fax NVARCHAR(20) NULL,
email NVARCHAR(50) NULL
CREATE TABLE loaihang
maloaihang INT NOT NULL
CONSTRAINT pk_loaihang
PRIMARY KEY(maloaihang),
tenloaihang NVARCHAR(15) NOT NULL
CREATE TABLE mathang
mahang NVARCHAR(10) NOT NULL
CONSTRAINT pk_mathang
PRIMARY KEY(mahang),
tenhang NVARCHAR(50) NOT NULL,
macongty NVARCHAR(10) NULL ,
maloaihang INT NULL ,
soluong INT NULL,
donvitinh NVARCHAR(20) NULL ,
giahang MONEY NULL
CREATE TABLE nhanvien
manhanvien NVARCHAR(10) NOT NULL
CONSTRAINT pk_nhanvien
PRIMARY KEY(manhanvien),
ho NVARCHAR(20) NOT NULL ,
ten NVARCHAR(10) NOT NULL ,
ngaysinh DATETIME NULL ,
ngaylamviec DATETIME NULL ,
diachi NVARCHAR(50) NULL ,
dienthoai NVARCHAR(15) NULL ,
luongcoban MONEY NULL ,
phucap MONEY NULL
CREATE TABLE khachhang
makhachhang NVARCHAR(10) NOT NULL
CONSTRAINT pk_khachhang
PRIMARY KEY(makhachhang),
tencongty NVARCHAR(50) NOT NULL ,
tengiaodich NVARCHAR(30) NOT NULL ,
diachi NVARCHAR(50) NULL ,
email NVARCHAR(30) NULL ,
dienthoai NVARCHAR(15) NULL ,
fax NVARCHAR(15) NULL
CREATE TABLE dondathang
sohoadon INT NOT NULL
CONSTRAINT pk_dondathang
PRIMARY KEY(sohoadon),
makhachhang NVARCHAR(10) NULL ,
manhanvien NVARCHAR(10) NULL ,
ngaydathang SMALLDATETIME NULL ,
ngaygiaohang SMALLDATETIME NULL ,
ngaychuyenhang SMALLDATETIME NULL ,
noigiaohang NVARCHAR(50) NULL
CREATE TABLE chitietdathang
sohoadon INT NOT NULL ,
mahang NVARCHAR(10) NOT NULL ,
giaban MONEY NOT NULL ,
soluong SMALLINT NOT NULL ,
mucgiamgia REAL NOT NULL,
CONSTRAINT pk_chitietdathang
PRIMARY KEY(sohoadon,mahang)
Thiết lập mối quan hệ giữa các bảng
ALTER TABLE mathang
ADD
CONSTRAINT fk_mathang_loaihang
FOREIGN KEY (maloaihang)
REFERENCES loaihang(maloaihang)
ON DELETE CASCADE ON UPDATE CASCADE ,
CONSTRAINT fk_mathang_nhacungcap
FOREIGN KEY (macongty)
REFERENCES nhacungcap(macongty)
ON DELETE CASCADE ON UPDATE CASCADE
ALTER TABLE dondathang
ADD
CONSTRAINT fk_dondathang_khachhang
FOREIGN KEY (makhachhang)
REFERENCES khachhang(makhachhang)
ON DELETE CASCADE ON UPDATE CASCADE ,
CONSTRAINT fk_dondathang_nhanvien
FOREIGN KEY (manhanvien)
REFERENCES nhanvien(manhanvien)
ON DELETE CASCADE ON UPDATE CASCADE
ALTER TABLE chitietdathang
ADD
CONSTRAINT fk_chitiet_dondathang
FOREIGN KEY (sohoadon)
REFERENCES dondathang(sohoadon)
ON DELETE CASCADE ON UPDATE CASCADE ,
CONSTRAINT fk_chitiet_mathang
FOREIGN KEY (mahang)
REFERENCES mathang(mahang)
ON DELETE CASCADE ON UPDATE CASCADE
3.2 ALTER TABLE chitietdathang
ADD
CONSTRAINT df_chitietdathang_soluong
DEFAULT(1) FOR soluong,
CONSTRAINT df_chitietdathang_mucgiamgia
DEFAULT(0) FOR Mucgiamgia
3.3 ALTER TABLE dondathang
ADD
CONSTRAINT chk_dondathang_ngay
CHECK (ngaygiaohang>=ngaydathang AND
ngaychuyenhang>=ngaydathang)
3.4 ALTER TABLE nhanvien
ADD
CONSTRAINT chk_nhanvien_ngaylamviec
CHECK (datediff(yy,ngaysinh,ngaylamviec)
BETWEEN 18 AND 60)
3.5 Câu lệnh không thực hiện được do bảng cần xoá đang được tham chiếu bởi bảng MATHANG
3.6 a. Không. b. Không
3.7 a.Có thể cập nhật nhưng không thể xoá b. Có thể được
Bạn đang đọc truyện trên: Truyen247.Pro