Nhóm 12 Bài tập lớn môn Hệ Cơ Sở Dữ Liệu
MỤC LỤC
CHƯƠNG 1: GIỚI THIỆU.........................................................................................................4
Cơ sở dữ liệu là một tập hợp các dữ liệu về các đối tượng cần quản lý, được thiết kế để đáp
ứng nhu cầu thông tin của một tổ chức, được lưu trữ trên các thiết bị lưu trữ của máy tính và
được quản lý theo một cơ chế thống nhất của hệ quản trị cơ sở dữ liệu nhằm thực hiện ba
chức năng: mô tả dữ liệu, cập nhật dữ liệu, tìm kiếm dữ liệu. Cơ sở dữ liệu được ứng dụng
rộng rãi trong cuộc sống như ngân hàng, hàng không, đại học, các phương tiện giao thông,
bán hàng, ….................................................................................................................................4
Hệ quản trị cơ sở dữ liệu là một hệ thống phần mềm (các chương trình) cho phép người dùng
định nghĩa, tạo và duy trì cơ sở dữ liệu đồng thời cung cấp dịch vụ truy cấp đến cơ sở dữ liệu
này một cách có quản lý.Một số hệ quản trị cơ sở dữ liệu thông dụng: Microsofts Access,
Visual Foxpro, Microsoft SQL Server, MySQL, Oracle, …......................................................4
Hệ cơ sở dữ liệu là môn học giúp cho sinh viên có kiến thức về ngôn ngữ SQL và thực hiện
truy vấn thành thạo các câu lệnh trên CSDL. Bài tập Hệ CSDL giúp chúng ta tạo, xóa cơ sở
dữ liệu tạo các ràng buộc toàn vẹn các khóa chính và sao lưu , phục hồi cơ sở dữ liệu. Môn
học này cũng giúp các sinh viên thành thạo các thao tác như: tạo CSDL, tạo bảng, tạo các
ràng buộc cho bảng, các câu lệnh, các phép toán SQL giúp các sinh viên có cơ hội thực hành
và hoàn thiện hơn về kiến thức quản lý cơ sở dữ liệu trong môn hệ cơ sở dữ liệu...................4
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT...........................................................................................5
1. CÁC PHÉP TOÁN ĐẠI SỐ QUAN HỆ.............................................................................5
.2 NGÔN NGỮ SQL...............................................................................................................9
.1.1 Cú pháp---------------------------------------------------------------------------------9
.1.2 Các phép toán--------------------------------------------------------------------------9
CHƯƠNG 3: BÀI TẬP ĐSQH VÀ SQL.................................................................................16
.1 LƯỢC ĐỒ CSDL QUAN HỆ..........................................................................................16
.1.1 Lược đồ và Tân từ (Relation Schema & Predicate)------------------------------16
CONSTRAINT FK_THIETKE_CGTRINH FOREIGN KEY (STT_CTR) REFERENCES
CGTRINH(STT_CTR) ON UPDATE CASCADE)............................................................18
.2 BÀI TẬP ĐSQH...............................................................................................................18
.2.1 Câu 1: Hãy cho biết tên và địa chỉ các công trình do chủ thầu Công ty xây dựng số
6 thi công.----------------------------------------------------------------------------------18
.2.2 Câu 2: Tìm tên và địa chỉ liên lạc của các chủ thầu thi công công trình ở Cần Thơ
do kiến trúc sư Lê Kim Dung thiết kế.-------------------------------------------------18
.2.3 Câu 3: Hãy cho biết họ tên và nơi tốt nghiệp của các kiến trúc sư đã thiết kế công
trình Khách Sạn Quốc Tế ở Cần Thơ.--------------------------------------------------18
.2.4 Câu 4: Cho biết tên và địa chỉ của công trình mà công nhân Nguyễn Hông Vân
đang tham gia vào ngày 18/12/94.------------------------------------------------------18
CGTRINH * CHUTHAU * CONGNHAN * THAMGIA(E) [HOTEN_CN, NAMS_CN,
NAM_VAO_N].....................................................................................................................19
.2.6 Câu 6: Cho biết họ tên và năm sinh của các kiến trúc sư đã tốt nghiệp ở thành phố
Hồ Chí Minh và đã thiết kế ít nhất một công trình có kinh phí đầu tư trên 400 triệu
đồng. 19
E = (NOI_TN = ‘TP HCM’, KINH_PHI >400)--------------------------------------19
.2.7 Câu 7: Cho biết tên công trình có kinh phí cao nhất. ---------------------------19
.2.8 Câu 8: Tìm tên và địa chỉ các chủ thầu đã trúng thầu ứng với công trình có kinh phí
thấp nhất.-----------------------------------------------------------------------------------19
3.1 Câu 1: Hãy cho biết tên và địa chỉ các công trình do chủ thầu Công ty xây dựng số 6
thi công.------------------------------------------------------------------------------------20
Đại học Tin Học 5 Trang 1
Nhóm 12 Bài tập lớn môn Hệ Cơ Sở Dữ Liệu
3.2 Câu 2: Tìm tên và địa chỉ liên lạc của các chủ thầu thi công công trình ở Cần Thơ do
kiến trúc sư Lê Kim Dung thiết kế.-----------------------------------------------------20
3.3 Câu 3: Hãy cho biết họ tên và nơi tốt nghiệp của các kiến trúc sư đã thiết kế công
trình Khách Sạn Quốc Tế ở Cần Thơ.--------------------------------------------------20
3.4 Câu 4: Cho biết họ tên, năm sinh, năm vào nghề của các công nhân có chuyên môn
hàn hoặc điện đã tham gia các công trình mà chủ thầu Lê Văn Sơn thi công.-----20
3.5 Câu 5: Những công nhân nào đã bắt đầu tham gia công trình Khách sạn Quốc Tế ở
Cần Thơ trong giai đoạn từ ngày 15/12/94 đến ngày 31/12/94, số ngày tương ứng là bao
nhiêu. 21
3.6 Câu 6: Cho biết tên và địa chỉ của công trình mà công nhân Nguyễn Hông Vân đang
tham gia vào ngày 18/12/94.-------------------------------------------------------------21
3.7 Câu 7: Cho biết họ tên và năm sinh của các kiến trúc sư đã tốt nghiệp ở thành phố
Hồ Chí Minh và đã thiết kế ít nhất một công trình có kinh phí đầu tư trên 400 triệu
đồng. 21
3.8 Câu 8: Cho biết họ tên các kiến trúc sư vừa thiết kế các công trình do chủ thầu
Phòng dịch vụ Sở xây dựng thi công, vừa thiết kế các công trình do chủ thầu Lê Văn
Sơn thi công.-------------------------------------------------------------------------------21
3.9 Câu 9: Cho biết tên công trình có kinh phí cao nhất. ----------------------------22
3.10 Câu 10: Cho biết họ tên các công nhân có tham gia các công trình ở Cần Thơ,
nhưng không có tham gia công trình ở Vĩnh Long.-----------------------------------22
3.11 Câu 11: Cho biết tên của các chủ thầu đã thi công các công trình có kinh phí lớn
hơn tất cả các công trình do chủ thầu Phòng dịch vụ Sở xây dựng thi công.------22
3.12 Câu 12: Cho biết họ tên các kiến trúc sư có thù lao thiết kế cho một công trình nào
đó dưới giá trị trung bình thù lao thiết kế của một kiến trúc sư cho một công trình.22
3.13 Câu 13: Tìm tên và địa chỉ các chủ thầu đã trúng thầu ứng với công trình có kinh
phí thấp nhất.------------------------------------------------------------------------------23
3.14 Câu 14: Tìm họ tên và chuyên môn của các công nhân tham gia các công trình do
kiến trúc sư ‘Le Thanh Tung’ thiết kế.------------------------------------------------23
3.15 Câu 15: Tìm các cặp tên của chủ thầu có trúng thầu các công trình tại cùng một
thành phố.----------------------------------------------------------------------------------23
3.16 Câu 16: Tìm các cặp tên của các công nhân có làm việc chung với nhau trong ít
nhất là hai công trình.---------------------------------------------------------------------23
3.17 Câu 17: Tìm tổng kinh phí của tất cả các công trình theo từng chủ thầu.----24
3.18 Câu 18: Cho biết họ tên các kiến trúc sư có tổng thù lao thiết kế các công trình lớn
hơn 25 triệu.-------------------------------------------------------------------------------24
3.19 Câu 19: Cho biết số lượng các kiến trúc sư có tổng thù lao thiết kế các công trình
lớn hơn 25 triệu.---------------------------------------------------------------------------24
3.20 Câu 20: Tìm tổng số công nhân đã tham gia của mỗi công trình.-------------24
3.21 Câu 21: Tìm tên và địa chỉ công trình có tổng số công nhân tham gia nhiều nhất. 24
3.22 Câu 22: Cho biết tên các thành phố và kinh phí trung bình cho mỗi công trình của
từng thành phố tương ứng.---------------------------------------------------------------24
3.23 Câu 23: Cho biết họ tên các công nhân có tổng số ngày tham gia vào các công trình
lớn hơn tổng số ngày tham gia của công nhân Nguyen Hong Van.-----------------25
2.24 Câu 24: Cho biết tổng số công trình mà mỗi chủ thầu đã thi công tại mỗi thành
phố. 25
3.25 Câu 25: Cho biết họ tên công nhân có tham gia ở tất cả các công trình.-----25
3.26 Câu 26: Cho biết họ tên và năm sinh của các kiến trúc sư đã tốt nghiệp ở thành
phố Hồ Chí Minh và đã thiết kế ít nhất là 2 công trình có kinh phí đầu tư trên 400 triệu
đồng. 25
CHƯƠNG 4: KẾT LUẬN VÀ ĐỀ NGHỊ................................................................................26
Đại học Tin Học 5 Trang 2
Nhóm 12 Bài tập lớn môn Hệ Cơ Sở Dữ Liệu
CHƯƠNG 1: GIỚI THIỆU
Cơ sở dữ liệu là một tập hợp các dữ liệu về các đối tượng cần quản lý, được thiết
kế để đáp ứng nhu cầu thông tin của một tổ chức, được lưu trữ trên các thiết bị
lưu trữ của máy tính và được quản lý theo một cơ chế thống nhất của hệ quản trị
cơ sở dữ liệu nhằm thực hiện ba chức năng: mô tả dữ liệu, cập nhật dữ liệu, tìm
kiếm dữ liệu. Cơ sở dữ liệu được ứng dụng rộng rãi trong cuộc sống như ngân
hàng, hàng không, đại học, các phương tiện giao thông, bán hàng, …
Hệ quản trị cơ sở dữ liệu là một hệ thống phần mềm (các chương trình) cho phép
người dùng định nghĩa, tạo và duy trì cơ sở dữ liệu đồng thời cung cấp dịch vụ
truy cấp đến cơ sở dữ liệu này một cách có quản lý.Một số hệ quản trị cơ sở dữ
liệu thông dụng: Microsofts Access, Visual Foxpro, Microsoft SQL Server,
MySQL, Oracle, …
Hệ cơ sở dữ liệu là môn học giúp cho sinh viên có kiến thức về ngôn ngữ SQL và
thực hiện truy vấn thành thạo các câu lệnh trên CSDL. Bài tập Hệ CSDL giúp chúng
ta tạo, xóa cơ sở dữ liệu tạo các ràng buộc toàn vẹn các khóa chính và sao lưu , phục
hồi cơ sở dữ liệu. Môn học này cũng giúp các sinh viên thành thạo các thao tác như:
tạo CSDL, tạo bảng, tạo các ràng buộc cho bảng, các câu lệnh, các phép toán SQL
giúp các sinh viên có cơ hội thực hành và hoàn thiện hơn về kiến thức quản lý cơ sở
dữ liệu trong môn hệ cơ sở dữ liệu.
Đại học Tin Học 5 Trang 3
Nhóm 12 Bài tập lớn môn Hệ Cơ Sở Dữ Liệu
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
1. CÁC PHÉP TOÁN ĐẠI SỐ QUAN HỆ
1.1 Định nghĩa Đại số quan hệ
- Đại số quan hệ là một bộ α = <M, P> trong đó:
M là tập các quan hệ cho trước.
P là tập các phép toán cơ bản sau đây:
1. Phép chọn (Selection) ( )
2. Phép chiếu (Projection) [ ]
3. Phép hợp (Union)
∪
hay +
4. Phép giao (Intersection)
∩
hay
5. Phép trừ (Subtraction) – hay \
6. Phép chia (Division) ÷ hay /
7. Phép kết nối tự nhiên (Natural Join) *
8. Phép tích Đề-các (Dacastersian) x
9. Phép θ kết nối (delta-join)
- Ví dụ : Cho lược đồ cơ sở dữ liệu như sau :
SV (MASV, HOTEN_SV, NAMS_SV, DCHI_SV, TENLOP)
MON (MAMH, TENMON, SO_TC, LOAI_MON)
GV (MAGV, HOTEN_GV, NAMS_GV, HOCVI)
HOC (MASV, MAMH, STT_HK, NKHOA, LANTHI, K_QUA)
DAY (MA_GV, MAMH, STT_HK, NKHOA)
1.1.1 Phép chọn (Selection) kí hiệu ( )
- Mục đích của phép chọn là xây dựng một tập con gồm các bộ của quan hệ đã cho,
thỏa biểu thức logic cho trước. Biểu thức logic phát triển trên
∪
gồm có:
• Các thuộc tính hoặc các hằng.
• Các phép toán so sánh số học: <, ≤, >, =, ≠
• Các phép toán logic:
¬
,
,∧ ∨
• Các dấu ngoặc (và).
Định nghĩa:
Cho t là một bộ trong quan hệ R, và E là một biểu thức logic phát biểu trên tập
các thuộc tính của quan hệ R. Ta nói bộ t thỏa mãn biểu thức E, kí hiệu t(E), nếu sau
khi thay đổi mọi thuộc tính A trong E bằng giá trị t.A ta được một công thức logic
mệnh đề đúng.
Định nghĩa:
Cho quan hệ R(
U
) và biểu thức chọn E trên
U
. Phép chọn quan hệ R theo
điều kiện E cho ta quan hệ P với tập thuộc tính
U
và các bộ của R thỏa E.
P = R(E) = {t
∈
R | t(E)}
- Ví dụ: Tìm các sinh viên lớp “TH5”
SV
MASV HOTEN_SV NAMS_SV DCHI_SV TENLOP
101 Tran Van An 1990 Can Tho TH5
102 Le Thanh Ha 1991 Vinh Long XD5
103 Phan Thi Mo 1992 Can Tho DL5
Đại học Tin Học 5 Trang 4
R: Danh sách lớp:
S: Danh sách môn học:
Nhóm 12 Bài tập lớn môn Hệ Cơ Sở Dữ Liệu
( ' 5')
( )
TENLOP TH
SV
σ
=
1.1.2 Phép chiếu (Projection) kí hiệu [ ]
Định nghĩa:
Cho quan hệ R(
U
) và tập thuộc tính X
⊆
U
. Phép chiếu quan hệ R trên X cho
ta quan hệ P có tập thuộc tính là X và các bộ và các bộ là hạn chế trên X của các bộ
trong R.
P = R[X] = {t.X | t
∈
R }
Ví dụ: Tìm mã số, họ tên sinh viên có địa chỉ ‘Can Tho’.
SV
MASV HOTEN_SV NAMS_SV DCHI_SV TENLOP
101 Tran Van An 1990 Can Tho TH5
102 Le Thanh Ha 1991 Vinh Long XD5
103 Phan Thi Mo 1992 Can Tho DL5
, _ ( _ ' ')
( )
MASV HOTEN SV DCHI SV Can Tho
SV
π σ
=
1.1.3 Tích Đề-các: kí hiệu x
Định nghĩa:
Cho hai quan hệ R(U) và S(V), trong đó U
∩
V = Ø. Tích Đề-các của R và S một
quan hệ P, với tập thuộc tính là U
∪
V được định nghĩa như sau:
P = R x S = { <u, v> | u
∈
R(U)
∧
v
∈
S(V)}
- Nếu
U V∩ ≠
Ø thì phải đổi tên các thuộc tính trùng nhau.
Ví dụ: Cho hai quan hệ R(U) và S(V):
Đại học Tin Học 5 Trang 5
MAMH
TH333
TH555
MASV
101
102
MASV MAMH
101 TH333
101 TH555
102 TH333
102 TH555
R x S: Danh sách sinh viên để theo dõi:
GV.NAMS_GV < SV.MANS_SV
Nhóm 12 Bài tập lớn môn Hệ Cơ Sở Dữ Liệu
1.1.4 Phép θ - kết nối: kí hiệu
Định nghĩa:
Cho hai quan hệ R(U) và S(V). Gọi θ là một phép toán logic liên quan tới các
thuộc tính của U và V (thường thuộc trong các phép so sánh <, ≤, >, =, ≠). Phép θ
kết nối giữa quan hệ R với quan hệ S, là một quan hệ P với tập thuộc tính U
∪
V,
được định nghĩa như sau:
P = R S = { <u, v> | u
∈
R
∧
v
∈
S
∧
u [U] θ v [V] }
Chú ý:
Phép kết nối này chỉ thực hiện được khi θ thực hiện được giữa các thuộc tính của
U và V. Nếu không dựa trên θ và U
∩
V = Ø, thì R S trở thành tích Đề-các
của R và S. Nếu θ là phép so sánh “=”, thì gọi là kết nối bằng. Nếu kết nối bằng
được thực hiện tại tất cả các thuộc tính cùng tên của hai quan hệ R và S thì đây là
phép kết nối tự nhiên.
Ví dụ: Tìm thông tin giáo viên nhỏ tuổi hơn một sinh viên nào đó.
MAGV HOTEN_GV NAMS_GV
CTU123 Trần Thành Nhân 1985
CTU345 Lê Văn Lịnh 1988
CTU554 Huỳnh Thị Thùy Linh 1989
GV SV><
1.1.5 Phép kết nối tự nhiên(Natural Join): kí hiệu *
Định nghĩa:
Cho hai quan hệ R(U) và S(*V), đặt X=U
∩
V. Kết nối tự nhiên giữa R và S là
quan hệ P với tập thuộc tính U
∪
V, được định nghĩa như sau:
P = R *S ={<u,v\X> | u
∈
R v
∈
S
∧
u.X = v.X}
Ví dụ: Tìm tên các môn học có học trong học kỳ 1 năm học 2012 – 2013.
_ 1 '2012 2013'
: ( )
MAMH STT HK NKHOA
A HOC
π σ
= ∧ = −
Đại học Tin Học 5 Trang 6
MASV HOTEN_SV NAMS_SV
101 Trần Thu Thảo 1988
102 Nguyễn Thị Thu 1990
103 Phan Pham Chuc 1988
MAGV HOTEN_GV NAMS_GV MASV HOTEN_SV NAMS_SV
CTU554 Huỳnh Thị Thùy Linh 1989 101 Trần Thu Thảo 1988
CTU554 Huỳnh Thị Thùy Linh 1989 103 Phan Pham Chuc 1988
GV
SV
Nhóm 12 Bài tập lớn môn Hệ Cơ Sở Dữ Liệu
,
: ( )
MAMH TENMON
B MON
π
P = A*B
1.1.6 Phép chia ( Division): kí hiệu /
Định nghĩa:
Cho hai quan hệ R(U) và S(V) với U
⊃
V, và S
≠
∅
.Đặt X= U – V. Thương của
phép chia quan hệ R cho quan hệ S là quan hệ P với tập thuộc tính X, được định
nghĩa như sau:
P = R / S = R÷ S = {u.X |u
∈
R
∧
(
∀
v
∈
S), (<u.X,v >
∈
R)}
Ví dụ: Tìm mã số của các giáo viên có dạy ở tất cả các môn.
,
( ) / ( )
MAGV MAMH MAMH
DAY MAMH
π π
1.1.7 Phép hợp (Union): kí hiệu
∪
Định nghĩa:
Hợp của hai quan hệ tương thích R(U) và S(V) là quan hệ P với tập thuộc tính U
và các bộ thuộc một trong hai quan hệ cho trước.
P = R
∪
S = R + S = {t|t
∈
R
∨
t
∈
S}
Ví dụ: Liệt kê danh sách mã sinh viên và mã môn học.
( ) ( )
MASV MAMH
SV MON
π π
∪
1.1.8 Phép giao (Intersection): kí hiệu
∩
Định nghĩa:
Giao của hai quan hệ tương thích R(U) và S(V) là quan hệ P với tập thuộc tính U
và các bộ đồng thời có mặt trong hai quan hệ cho trước
P = P
∩
S = P . S = { t | t
∈
R
∧
t
∈
S}
Ví dụ: Tìm mã số của sinh viên vừa có học lớp TH5 vừa có học lớp DL5.
' 5' ' 5'
( ) ( )
MASV TENLOP TH MASV TENLOP DL
SV SV
π σ π σ
= =
∩
1.1.9 Phép trừ (Subtraction): kí hiệu \
Định nghĩa:
Hiệu của hai quan hệ tương thích R(U) và S(V) là quan hệ P với tập thuộc tính U
và các bộ đồng thời có trong R nhưng không có trong S.
P = P \ S = P - S = { t | t
∈
R
∧
t
∉
S}
Ví dụ: Tìm mã môn học có học ở học kỳ 1 năm học 2011 – 2012 nhưng không có
học ở học kỳ 1 năm học 2012 – 2013.
_ 1 2011 2012
( )
MAMH STT HK NKHOA
HOC
π σ
= ∧ = −
−
_ 1 2012 2013
( )
MAMH STT HK NKHOA
HOC
π σ
= ∧ = −
.2 NGÔN NGỮ SQL
.1.1 Cú pháp
Cú pháp của lệnh SQL được giới thiệu theo dạng mở rộng của ký hiệu BNF:
- Chữ hoa đại diện cho từ khóa.
- Chữ thường đại diện cho các từ của người dùng định nghĩa.
Đại học Tin Học 5 Trang 7
Nhóm 12 Bài tập lớn môn Hệ Cơ Sở Dữ Liệu
- Dấu | chỉ sự lựa chọn.
- Dấu { chỉ phần tử bắt buộc phải có.
- Dấu [ chỉ phần tử tùy chọn (không bắt buộc).
- Dấu … chỉ thành phần có thể lặp lại từ 0 đến nhiều lần.
.1.2 Các phép toán
Ví dụ : Cho lược đồ cơ sở dữ liệu như sau :
KTRUCSU(MA_KTS, HOTEN_KTS, NAMS_KTS, PHAI, NOI_TN,
DCHI_LL_KTS)
CHUTHAU(ID_THAU, TEN_THAU, TEL, DCHI_THAU)
CHUNHAN(ID_CHU, TEN_CHU, DCHI_CHU)
CONGNHAN(MA_CN, HOTEN_CN, NAMS_CN, NAM_VAO_N, CH_MON)
CGTRINH(STT_CTR, TEN_CTR, DCHI_CTR, TINH_THANH, KINH_PHI,
ID_CHU, ID_THAU, NGAY_BD)
THAMGIA(MA_CN, STT_CTR, NGAY_TGIA, SO_NGAY)
THIETKE(MA_KTS, STT_CTR, THU_LAO)
2.2.1 Truy vấn đơn giản:
- Truy vấn dữ liệu từ một bảng, có thể định thứ tự xuất hiện các cột:
SELECT [DISTINC | ALL]
{* | <tên cột 1> [,<tên cột 2>[, …] ] }
FROM <tên bảng>
Ví dụ: Tìm họ tên công nhân trong bảng công nhân:
SELECT HOTEN_CN
FROM CONGNHAN
2.2.2 Sắp xếp kết quả:
- Sắp xếp kết quả theo một hay nhiều cột:
+) Sử dụng mệnh đề ORDER BY ở cuối lệnh SELECT
ORDER BY <tên cột | STT cột> [ASC | DESC]
[,<tên cột | STT cột> [ASC | DESC], …]
Ví dụ: Sắp xếp kết quả theo cột kinh phí công trình:
SELECT KINH_PHI
FROM CGTRINH
ORDER BY KINH_PHI
2.2.3 Chọn các dòng trong bảng:
- Sử dụng mệnh đề WHERE sau mệnh đề FROM để chọn các dòng thỏa điều kiện:
WHERE <điều kiện chọn 1> [AND | OR <điều kiện chọn 2> […] ]
Đại học Tin Học 5 Trang 8
Nhóm 12 Bài tập lớn môn Hệ Cơ Sở Dữ Liệu
+) Dạng 1: So sánh giá trị thuộc tính với một giá trị cụ thể:
<Cột 1> so sánh <giá trị>
Ví dụ: Hiện thị mã và năm sinh của kiến trúc sư Lê Thanh Tùng:
SELECT MA_KTS, NAMS_KTS
FROM KTRUCSU
WHERE HOTEN_KTS = ‘LE THANH TUNG’
+) Dạng 2: so sánh giá trị của các thuộc tính với nhau <cột 1> so sánh <cột 2>
+) Dạng 3: so sánh giá trị thuộc tính với hằng có kiểu tương thích <cột> so sánh
<hằng>
+) Dạng 4: so sánh cột với 1 tập gồm nhiều giá trị <cột> [NOT] IN (<DS các giá
trị>)
+) Dạng 5: tìm kiếm theo phạm vi <cột> [NOT] BETWEEN <giá trị đầu> AND
<GT cuối>
+) Dạng 6: tìm kiếm theo mẫu dạng chuỗi <cột> [NOT] LIKE <chuỗi>
+) Dạng 7: tìm kiếm theo trị thống NULL <cột> IS [NOT] NULL
2.2.4 Kết nối ngoại (outer join)
- Cho phép giữ lại những dòng không thỏa điều kiện kết nối.
- Có 3 loại kết nối:
FROM <bảng 1> LEFT JOIN <bảng 2> ON <điều kiện kết nối>
FROM <bảng 1> RIGHT JOIN <bảng 2> ON <điều kiện kết nối>
FROM <bảng 1> FULL JOIN <bảng 2> ON <điều kiện kết nối>
Ví dụ: Hãy liệt kê tên thầu, tên công trình, tỉnh thành kể cả những tên thầu có
tỉnh thành trùng với nhau:
SELECT TEN_THAU, TEN_CTR, TINH_THANH
FROM CHUTHAU A LEFT JOIN CGTRINH B
ON A.ID_THAU = B.ID_THAU
2.2.5 Các phép toán tập hợp
Phép hợp (UNION), giao (INTERSECT), trừ (DIFFERENCE hay EXPERT)
Định dạng chung của phép toán tập hợp:
<toán tử> [ALL] [CORRESPONDING [BY {cột 1 […] } ] ]
2.2.6 ĐỊNH NGHĨA BẢNG
2.2.6.1 Tạo bảng
Bước đầu tiên để tạo một CSDL là tạo bảng. Lệnh CREATE TABLE
dùng tạo bảng với cú pháp như sao:
CREATE TABLE<tên bảng>
(<tên cột 1><loại dữ liệu>[NOT NULL],
(<tên cột 2><loại dữ liệu>[NOT NULL],
Đại học Tin Học 5 Trang 9
Nhóm 12 Bài tập lớn môn Hệ Cơ Sở Dữ Liệu
...
(<tên cột n><loại dữ liệu>[NOT NULL])
Từ khóa NOT NULL co nghĩa là bắt buộc phải có giá trị trong cột này.
Ví dụ: Tạo bảng có tên là chủ nhân:
CREATE TABLE CHUNHAN(
ID_CHU INT NOT NULL,
TEN_CHU CHAR(20),
DCHI_CHU CHAR(30))
2.2.6.2 Thêm dòng vào bảng
Bảng nhân viên đã được tạo nhưng chưa có dữ liệu,chúng ta có thể thêm dữ
liệu vào bảng bắng lệnh INSERT, có cú pháp như sau:
INSERT INTO<tên bảng>
(<tên cột 1>,<tên cột 2>,...)
VALUES(<giá trị 1>,<giá trị 2,...>)
Ví dụ: Thêm một dòng dữ liệu mới vào bảng kiến trúc sư:
INSERT KTRUCSU
(MA_KTS, HOTEN_KTS, NAMS_KTS, PHAI, NOI_TN,
DCHI_LL_KTS)
VALUES(‘19’, ‘PHAN THANH HAI’, ‘1876’, ‘NAM’, ‘TP BAC
LIEU’, ’23 CAO VAN LAU’)
2.2.7 LỆNH TRUY VẤN SELECT
- Để thi hành một truy vấn đơn giản chúng ta có thể dùng lệnh gồm hai thành phần
được gọi là mệnh đề như sau:
SELECT tên cột,danh sách các cột,hay *
FROM tên bảng, hay danh sách các bảng
- Mệnh đề SELECT luôn luôn phải có và sau đó phải kèm theo mệnh đề FROM
2.2.7.1 Hiển thị toàn bộ bảng
Một cách sử dụng SQL đơn giản là hiển thị nội dung của một bảng như lệnh sau đây
SELECT *
FROM tên bảng
Dấu hoa thị (*)thay thế tất cả các cột trong bảng
Ví dụ: Hiện thị toàn bộ nội dung của bảng công nhân:
SELECT*
FROM CONGNHAN
2.2.7.2 Lưu kết quả câu hỏi
ta sử từ khóa INTO<nơi kết xuất> để lưu kết quả câu hỏi.nếu không có INTO, kết quả
có thể in ra màn hình,máy in, tập tin...nơi kết xuất có thể là:
TABLE<tên của table>
DBF<tên của dbf>
ARRAY<tên bảng>
CURSOR<tên cursor>
Ví dụ: Lưu kết quả câu hỏi của bảng công nhân:
SELECT* INTO DBF TAM
FROM CONGNHAN
2.2.7.3 Sắp xếp kết quả
Đại học Tin Học 5 Trang 10