Bài tập về ngôn ngữ dữ liệu
SQL+Đại số
Sách T:Lê Tiến Vương
Bài 1:
Cho 3 quan hệ:
R1( | A | B | C) | R2( | D | E) | R3( | B | C | D) |
a | b | c | c | e | b | c | d | |||
d | b | c | c | f | b | c | E | |||
b | b | f | d | f | a | d | B | |||
c | a | d |
a, R1 x R2
b, R1*R2
c, chọn(D=d)trên (R1*R3)
d, R1*R2*R3
e, chiếu (BC) trên (R1*R2*R3)
giải:
a, R1 x R2= 12( tự liệt kê. Hjc)
b,
R1*R2=( | A | B | C | D) |
a | b | c | d | |
a | b | c | e | |
d | b | c | d | |
c | a | d | b |
c,
chọn(D=d)trên(R1*R3)= | (A | B | C | D) |
a | b | c | d | |
d | b | c | d |
d,
R1*R2*R3=( | A | B | C | D | E) |
a | b | c | d | f | |
d | b | c | d | f |
e,
chiếu(BC) trên (R1*R2*R3)= ( | B | C) |
b | c |
Bài 2:
CC( MSNCC,TEN_CC,DCCC)
MH(MSNCC,MSMH)
MSNCC:mã số nhà cung cấp
TEN_CC: tên người cung cấp
DCCC: địa chỉ cung cấp
MSMH: mã số mặt hàng
a, tìm MSNCC cung cấp:
+,ít nhất 1 mặt hàng
Chiếu(MSNCC) trên (chọn(MSMH <>0(MH))
SQL: SELECT MSNCC
FROM MH
GROUPE BY MSNCC
HAVING COUNT (DISTINCT MSMH)>=1
+, không cung cấp mặt hàng nào
Chiếu(MSNCC) trên (chọn(MSMH =0(MH))
SQL: SELECT MSNCC
FROM MH
GROUPE BY MSNCC
HAVING COUNT (DISTINCT MSMH)=0
+,cung cấp 1 mặt hàng có MSMH=15
Chiếu(MSNCC) trên (chọn(MSMH =’15’(MH))
SQL: SELECT MSNCC
FROM MH
WHERE MSMH=’15’ AND
HAVING COUNT (DISTINCT MSMH)=1
+,cung cấp ít nhất 1 mặt hàng không có MSMH=15
Chiếu(MSNCC) trên (chọn(MSMH <>’15’(MH))
SQL: SELECT MSNCC
FROM MH
WHERE MSMH<>’15’ AND
HAVING COUNT (DISTINCT MSMH)>=1
+mặt hàng có MS=12,13,15 được cung cấp bởi những nhà cung cấp có địa chỉ ở đâu?
Chiếu(DCCC) trên(chọn (MSMH=’12’ VÀ MSMH=’13’ VÀ MSMH=’15’)(CC*MH))
SQL: SELECT DCCC
FROM CC
WHERE MSNCC IN ( SELECT MSNCC
FROM MH
WHERE MSMH=’12’ OR MSMH=’13’ OR MSMH=’15’)
No comments:
Post a Comment