Chào các bạn! Vì nhiều lý do từ nay Truyen2U chính thức đổi tên là Truyen247.Pro. Mong các bạn tiếp tục ủng hộ truy cập tên miền mới này nhé! Mãi yêu... ♥

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