Professional Documents
Culture Documents
Bài Tập Và Lời Giải SQL
Bài Tập Và Lời Giải SQL
By Member:
SGL Plassma :
By Member:
SGL Plassma :
By Member:
SGL Plassma :
By Member:
ON loaihang.maloaihang=mathang.maloaihang)
INNER JOIN nhacungcap
ON mathang.macongty=nhacungcap.macongty
WHERE tenloaihang='Thc phm'
2.9 SELECT DISTINCT tengiaodich
FROM ((mathang INNER JOIN chitietdathang
ON mathang.mahang=chitietdathang.mahang)
INNER JOIN dondathang
ON chitietdathang.sohoadon=dondathang.sohoadon)
INNER JOIN khachhang
ON dondathang.makhachhang=khachhang.makhachhang
WHERE tenhang='Sa hp'
2.10 SELECT dondathang.manhanvien,ho,ten,
ngaygiaohang,noigiaohang
FROM nhanvien INNER JOIN dondathang
ON nhanvien.manhanvien=dondathang.manhanvien
WHERE sohoadon=1
2.11 SELECT manhanvien,ho,ten,
luongcoban + CASE
WHEN phucap IS NULL THEN 0
ELSE phucap
END AS luong
FROM nhanvien
2.12 SELECT a.mahang,tenhang,
a.soluong*giaban*(1-mucgiamgia/100) AS sotien
FROM chitietdathang AS a INNER JOIN mathang AS b
ON a.mahang=b.mahang
2.13 SELECT makhachhang,khachhang.tencongty,
khachhang.tengiaodich
FROM khachhang INNER JOIN nhacungcap
ON khachhang.tengiaodich=nhacungcap.tengiaodich
2.14 SELECT a.ho,a.ten,b.ho,b.ten,b.ngaysinh
FROM nhanvien a INNER JOIN nhanvien b
ON a.ngaysinh=b.ngaysinh AND
a.manhanvien<>b.manhanvien
2.15 SELECT sohoadon,tencongty,tengiaodich,
ngaydathang,noigiaohang
FROM dondathang INNER JOIN khachhang
ON dondathang.noigiaohang=khachhang.diachi
2.16 SELECT tencongty,tengiaodich,diachi,dienthoai
FROM khachhang
UNION ALL
SELECT tencongty,tengiaodich,diachi,dienthoai
FROM nhacungcap
Tng hp SQL -
SGL Plassma :
By Member:
SGL Plassma :
By Member:
SGL Plassma :
By Member:
SGL Plassma :
By Member:
SGL Plassma :
By Member:
SGL Plassma :
By Member:
CHITIETDATHANG c khng?
Q6 Vi khung nhn c nh ngha 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 thng qua khung nhn ny xo hay cp nht d liu trong bng
DONDATHANG c khng?
b. C th thng qua khung nhn ny cp nht d liu trong bng
CHITIETDATHANG c khng?
Li gii
Q1 ALTER TABLE chitietdathang
ADD
CONSTRAINT df_chitietdathang_soluong
DEFAULT(1) FOR soluong,
CONSTRAINT df_chitietdathang_mucgiamgia
DEFAULT(0) FOR Mucgiamgia
Q2 ALTER TABLE dondathang
ADD
CONSTRAINT chk_dondathang_ngay
CHECK (ngaygiaohang>=ngaydathang AND
ngaychuyenhang>=ngaydathang)
Q3 ALTER TABLE nhanvien
ADD
CONSTRAINT chk_nhanvien_ngaylamviec
CHECK (datediff(yy,ngaysinh,ngaylamviec)
BETWEEN 18 AND 60)
Q4 Cu lnh khng thc hin c do bng cn xo ang c tham chiu bi bng
MATHANG
Q5 a. Khng.
b. Khng
Q6 a.C th cp nht nhng khng th xo
b. C th c
Bi
Da trn c s d liu bi tp chng 2, thc hin cc yu cu sau:
5.1 To th tc lu tr thng qua th tc ny c th b sung thm mt bn ghi mi
cho bng MATHANG (th tc phi thc hin kim tra tnh hp l ca d liu cn b
sung: khng trng kho chnh v m bo ton vn tham chiu)
5.2 To th tc lu tr c chc nng thng k tng s lng hng bn c ca mt
mt hng c m bt k (m mt hng cn thng k l tham s
Tng hp SQL -
SGL Plassma :
By Member:
Ca th tc).
5.3 Vit hm tr v mt bng trong cho bit tng s lng hng bn ca mi mt
hng. S dng hm ny thng k xem tng s lng hng (hin c v bn) ca mi
mt hng l bao nhiu.
5.4 Vit trigger cho bng CHITIETDATHANG theo yu cu sau:
Khi mt bn ghi mi c b sung vo bng ny th gim s lng hng hin c
nu s lng hng hin c ln hn hoc bng s lng hng c bn ra. Ngc li th
hu b thao tc b sung.
Khi cp nht li s lng hng c bn, kim tra s lng hng c cp nht
li c ph hp hay khng (s lng hng bn ra khng
c vt qu s lng hng hin c v khng c nh hn 1). Nu d liu hp l th
gim (hoc tng) s lng hng hin c trong cng ty, ng li th hu b thao tc cp
nht.
5.5 Vit trigger cho bng CHITIETDATHANG sao cho ch chp nhn gi hng bn ra
phi nh hn hoc bng gi gc (gi ca mt hng trong bng MATHANG)
5.6 qun l cc bn tin trong mt Website, ngi ta s dng hai bng sau:
Bng LOAIBANTIN (loi bn tin)
CREATE TABLE loaibantin
(
maphanloai
INT
NOT NULL
PRIMARY KEY,
tenphanloai
NVARCHAR(100) NOT NULL ,
bantinmoinhat
INT
DEFAULT(0)
)
Bng BANTIN (bn tin)
CREATE TABLE bantin
(
maso
INT
NOT NULL
PRIMARY KEY,
ngayduatin
DATETIME
NULL ,
tieude
NVARCHAR(200) NULL ,
noidung
NTEXT
NULL ,
maphanloai
INT
NULL
FOREIGN KEY
REFERENCES loaibantin(maphanloai)
)
Trong bng LOAIBANTIN, gi tr ct BANTINMOINHAT cho bit m s ca bn
tin thuc loi tng ng mi nht (dc b sung sau cng).
Hy vit cc trigger cho bng BANTIN sao cho:
Khi mt bn tin mi c b sung, cp nht li ct BANTINMOINHAT Ca
dng tng ng vi loi bn tin va b sung.
Khi mt bn tin b xo, cp nht li gi tr ca ct BANTINMOINHAT trong
bng LOAIBANTIN ca dng ng vi loi bn tin va xa l m s ca bn tin trc
(da vo ngy a tin). Nu khng cn bn tin no cng loi th gi tr ca ct ny
bng 0.
Tng hp SQL -
SGL Plassma :
By Member:
SGL Plassma :
By Member:
SGL Plassma :
By Member:
FROM inserted)
IF EXISTS(SELECT mahang FROM mathang
WHERE soluong<0)
ROLLBACK TRANSACTION
END
END
5.5 CREATE TRIGGER trg_chitietdathang_giaban
ON chitietdathang
FOR INSERT,UPDATE
AS
IF UPDATE(giaban)
IF EXISTS(SELECT inserted.mahang
FROM mathang INNER JOIN inserted
ON mathang.mahang=inserted.mahang
WHERE mathang.giahang>inserted.giaban)
ROLLBACK TRANSACTION
_______________________________________
Tng hp SQL -
SGL Plassma :