Xoá khung nhìn

Một phần của tài liệu Giáo trình hệ quản trị cơ sở dữ liệu SQL đại học công nghiệp hà nội (Trang 99 - 104)

Khi một khung nhìn không còn sử dụng, ta có thể xoá nó ra khỏi cơ sở dữ liệu thông qua câu lệnh:

DROP VIEW tên_khung_nhìn

Nếu một khung nhìn bị xoá, toàn bộ những quyền đã cấp phát cho người sử dụng trên khung nhìn cũng đồng thời bị xoá. Do đó, nếu ta tạo lại khung nhìn thì phải tiến hành cấp phát lại quyền cho người sử dụng.

Câu lệnh dưới đây xoá khung nhìn VIEW_LOP ra khỏi cơ sở dữ liệu

DROP VIEW view_lop

Bài tập chương 3

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ằng0 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àychuyể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

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ảngCHITIETDATHANG đượ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ảngDONDATHANG đượ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

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 MONEYNULL , 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

Một phần của tài liệu Giáo trình hệ quản trị cơ sở dữ liệu SQL đại học công nghiệp hà nội (Trang 99 - 104)

Tải bản đầy đủ (PDF)

(145 trang)