Bài giảng Cơ sở dữ liệu nâng cao: Chương 7 Truy vấn trong Cơ sở dữ liệu hướng đối tượng cung cấp cho người học những kiến thức như: Trích lọc; Thống kê; Cập nhật; Bài tập thực hành. Mời các bạn cùng tham khảo!
Trang 1Bài giảng
CƠ SỞ DỮ LIỆU
NÂNG CAO
Số tc: 2; LT: 20; Btập: 10 GV: Nguyễn Thị Mỹ Dung Khối lớp: Đại học L2
Trang 2NỘI DUNG MÔN HỌC
1
2
3
4
Chương 1 Tổng quan CSDL phân tán (4) Chương 2 Tổng quan CSDL hướng đối tượng Chương 3 Cơ bản về Oracle (4)
Chương 4: Lập trình PL/SQL (4)
5
6
Chương 5: Procedure, Function (4) Chương 6: Thiết kế đối tượng (6)
7 Chương 7: Truy vấn trong CSDL HĐT (4)
Trang 3Ch7: Truy vấn trong CSDL HĐT
I Trích lọc
II Thống kê
III Cập nhật
IV Bài tập thực hành
Trang 41 Trích lọc
Bao gồm các lệnh cho phép trích lọc dữ liệu mà không làm thay đổi dữ liệu hoặc các đối tượng trong CSDL Đó là các truy vấn bắt đầu bằng từ khóa
SELECT Trả về một bộ các thuộc tính hoặc một tập hợp
các bộ thuộc tính
Cú pháp:
SELECT [<tên_bảng>.<tên_thuộc_tính>] |
[REF (<tên_bảng>).<tên_thuộc_tính>] |
[DEREF (<tên_bảng>).<tên_thuộc_tính>] |
[<tên_bảng>.<tên_hàm>.<tên_thuộc_tính>]
FROM <tên_bảng>
WHERE <điều_kiện>
Trang 5Trích lọc (tt)
Ví dụ : In danh sách sinh viên thuộc khoa Anh văn
SELECT substr(sv.get_masv(),1,5) as masv, substr(sv.get_hoten(),1,30) as hoten,
deref(thuockhoa).get_makh(),
deref(thuockhoa).get_tenkh()
FROM sinhvien sv
WHERE deref(thuockhoa).get_tenkh() = 'Anh van‘ Lưu ý:
Ngoài ra, trích lọc thông tin bằng cách sử dụng lập trình PL/SQL (cấu trúc, con trỏ,…)
Trang 6Trích lọc (tt)
Cách gọi các hàm thành viên:
1 Cách gọi hàm member
SELECT <tênbảng>.<tênhàm>() FROM khoa kh;
Ví dụ:
SELECT kh.get_tenkh() FROM khoa kh;
2 Cách gọi hàm static
SELECT <tênđtượng>.<tênhàm>() FROM dual;
Ví dụ:
SELECT khoa_type.tong_kh() FROM dual;
3 Cách gọi thủ tục static
EXECUTE <tênđtượng>.<tênthủtục>()
Ví dụ:
EXECUTE khoa_type.set_tenkh('AV', 'ABC');
Trang 7II Thống kê
Bao gồm các lệnh trích lọc có sử dụng hàm kết tập như: SUM, COUNT, AVG, MAX, MIN
Ví dụ: Tìm thông tin sinh viên học nhiều tiết nhất
SELECT mh.get_mamh(), mh.get_tenmh(),
mh.get_sotiet()
FROM mon mh
WHERE mh.get_sotiet()= (
SELECT max(mh.get_sotiet())
FROM mon mh )
Trang 8III Cập nhật
Dùng để cập nhật dữ liệu cũ thành dữ liệu mới
Cú pháp:
UPDATE <Tên_bảng>
SET <thuộc_tính1> = <giá_trị_mới1>,…,
<thuộc_tính_n> = <giá_trị_mới_n>, [ FROM <Ds_bảng>]
[ WHERE <Điều_kiện>]
Ví dụ:
UPDATE CHUCVU
WHERE MACV = ‘CV0004’
Trang 9IV Bài tập
1 Tìm thông tin đơn vị có từ 2 cán bộ trở lên
2 Tìm thông tin các cán bộ có mã chức vụ CV0001
3 Tìm cán bộ đang giữ chức vụ có mã số CV0002
4 Tìm chức vụ đang có của cán bộ có mã số CB0002
5 Cho biết tổng số cán bộ trong đơn vị DV0001
6 Thống kê số cán bộ trong từng đơn vị
7 Cho biết thông tin đơn vị của cán bộ có mã số CB0004
8 Cập nhật thông tin cán bộ có mã số CB0004 thành Lê Thanh
9 Đổi chức vụ đang có của cán bộ có mã số CB0004 thành chức vụ có mã CV0003
10 Thêm thông tin mới vào bảng GIUCHUCVU như sau: MACB = CB0006, giữ MACV = CV0004, từ ngày 1-JUN-15
Trang 10Tổng kết chương
- Thực hiện truy vấn trong CSDL HĐT với các dạng:
+ Tìm kiếm;
+ Thống kê;
+ Cập nhật thông tin