Bài giảng Hệ quản trị cơ sở dữ liệu - Chương 3: Truy vấn SQL - Nguyễn Thị Mỹ Dung

Bài giảng  
HQT Cơ sở dữ liệu  
(ORACLE)  
Số tc: 3; LT: 25; Btập: 20  
GV: Nguyễn Thị Mỹ Dung  
Khối lớp: Đại học L2  
1
NỘI DUNG MÔN HỌC  
1
Chương 1: Tổng quan về Oracle (2)  
Chương 2: Cơ bản về Oracle (2)  
2
3
Chương 3: Truy vấn SQL (12)  
4
Chương 4: Lập trình PL/SQL (9)  
5
Chương 5: Procedure, Trigger, Function (12)  
6
Chương 6: Quản trị người dùng (4)  
7
Chương 7: Kết nối CSDL với Oracle (4)  
2
Chương 3: Truy vấn SQL  
I. Thao tác CSDL (tạo, sửa, xoá, thêm dữ liệu)  
II. Các câu truy vấn: Select, Insert, Update,  
Delete  
III. Truy vấn lồng, gom nhóm, điều kiện gom  
nhóm  
IV. Các hàm xử lý dữ liệu  
V. Bài tập thực hành  
3
I. Thao tác CSDL  
1. Cho CSDL  
Ví dụ: Cho các lược đồ quan hệ sau  
Sinhvien (MaSV, Hoten, Namsinh, QQ, Hocluc)  
Detai (MaDT, TenDT, Chunhiem, Kinhphi)  
SVDT (MaSV, MaDT, NoiAD, KQ)  
Bảng dữ liệu mẫu như sau:  
Sinhvien  
MaSv  
SV001  
SV002  
SV003  
SV004  
SV005  
SV006  
SV007  
SV008  
Hoten  
Namsinh  
1983  
QQ  
Hocluc  
7.5  
Thái Bình An  
Cần Thơ  
Lê Văn Khang  
Trần Đức Thịnh  
Bùi Quốc Vượng  
Lâm Nhân Nghĩa  
Hà Công Sự  
1985  
Vĩnh Long  
Đồng Tháp  
Đồng Tháp  
Tiền Giang  
Cần Thơ  
7.1  
1983  
8.1  
1984  
9.2  
1985  
6.5  
1982  
6.0  
Hồ Phương Thanh  
Vũ Thị Hảo Ý  
1985  
An giang  
8.2  
1986  
Bạc Liêu  
5.8  
4
Bảng dữ liệu mẫu (tt)  
Detai  
MaDT  
DT001  
DT002  
DT003  
DT004  
DT005  
DT006  
TenDT  
Chunhiem  
Nguyễn Thị Xuân  
Hồ Văn Quang  
Kinhphi  
Quản lý Nhân sự  
Web site Bán hàng qua mạng  
10  
15  
20  
8
Bảo mật trong thương mại điện tử Trần Hiếu Hạnh  
Quản lý lịch công tác trên mạng  
Bộ soạn thảo công thức toán học  
Web site đào tạo từ xa  
Lê Đức Phúc  
Trần Hiếu Hạnh  
Lê Đức Phúc  
9
25  
SVDT  
MaSV  
MaDT  
DT001  
DT002  
DT001  
DT002  
DT004  
DT003  
DT004  
DT002  
DT005  
DT005  
DT003  
Noi_AD  
KQ  
SV001  
Đồng Tháp  
Vĩnh Long  
Trà Vinh  
9.5  
9.0  
9.0  
SV002  
SV003  
SV004  
SV007  
SV008  
SV001  
SV008  
SV002  
SV001  
SV006  
Đồng Tháp  
Trà Vinh  
10.0  
9.0  
Bạc Liêu  
10.0  
9.5  
9.0  
8.5  
8.0  
9.5  
Đồng Tháp  
Trà Vinh  
Cà Mau  
Tiền Giang  
Đồng Tháp  
5
Thao tác CSDL (tt)  
2. Tạo bảng  
CREATE [GLOBAL TEMPORARY] TABLE  
Table_name  
( Column_name Datatype [CONSTRAINT constraint_def  
DEFAULT default_exp]  
[, column_name type [CONSTRAINT constraint_def  
DEFAULT default_exp]...]  
[,table_constraint [,…]]  
)
6
Tạo bảng (tt)  
Trong đó:  
CREATE  
[GLOBAL TEMPORARY]  
TABLE  
( column_name datatype  
[CONSTRAINT  
– Global Temporary: nếu có từ khóa này  
bảng được tạo sẽ là bảng tạm  
– Table_name: tên bảng do người dùng  
đặt  
constraint_def  
DEFAULT default_exp]  
[, column_name type  
[CONSTRAINT  
– Column_name: tên cột trong bảng  
– Datatype: kiểu dữ liệu của cột  
constraint_def  
– Constraint: từ khóa cho phép tạo ràng  
buộc trên cột  
DEFAULT default_exp]...]  
[,table_constraint [,…]]  
)
– Contraint_def: ràng buộc của cột  
– Default: từ khóa cho phép xác định giá  
trị mặc định cho cột  
– Default_exp: dữ liệu của cột nhận giá trị  
default_exp nếu người dùng không  
nhập dữ liệu vào cột  
– Table_constraint: ràng buộc của toàn  
bảng dữ liệu  
7
Tạo bảng (tt)  
CREATE TABLE SINHVIEN (  
MASV CHAR(10) PRIMARY KEY,  
HOTENSV VARCHAR2(40),  
NAMSINH INT,  
QUEQUAN VARCHAR2(40),  
HOCLUC FLOAT  
)
CREATE TABLE DETAI(  
MADT CHAR(10) PRIMARY KEY,  
TENDT VARCHAR2(40),  
CHUNHIEM VARCHAR2(40),  
KINHPHI NUMBER  
)
8
Tạo bảng (tt)  
CREATE TABLE SVDT (  
MASV CHAR(10) NOT NULL,  
MADT CHAR(10) NOT NULL,  
NOIA_D CHAR(40),  
KETQUA FLOAT,  
PRIMARY KEY (MASV, MADT),  
CONSTRAINT SVDT_SV FOREIGN KEY  
(MASV) REFERENCES SINHVIEN (MASV),  
CONSTRAINT SVDT_DT FOREIGN KEY  
(MADT) REFERENCES DETAI(MADT)  
)
9
Thao tác CSDL (tt)  
Kiểu ràng buộc  
Diễn giải  
NULL/NOT NULL  
Cho phép/không cho phép cột chứa giá  
trị rỗng  
CHECK (Criteria) Giá trị nhập vào cột phải thỏa Criteria  
Giá trị nhập vào cột phải là duy nhất  
Ràng buộc khóa chính cho cột  
UNIQUE  
PRIMARY KEY  
REFERENCES  
<Table_name1>  
Ràng buộc khóa ngoại cho cột sẽ tham  
chiếu tới Column_name đã tồn tại trong  
bảng Table_name.  
(Column_name1)  
Mô tả:  
CONSTRAINT <constraint_name>[<constraint_type>]  
10  
Thao tác CSDL (tt)  
3. Sửa bảng  
Thêm cột: ALTER TABLE <Tên_bảng> ADD  
<Tên_cột> <Kiểu_dữ_liệu> [<RBTV>]  
Xóa cột: ALTER TABLE <Tên_bảng>  
DROP COLUMN <Tên_cột>  
Thay đổi kiểu dữ liệu cột:  
ALTER TABLE <Tên_bảng> MODIFY  
<Tên_cột> <Kiểu_dữ_liệu_mới>  
11  
Sửa bảng (tt)  
Thêm RBTV: ALTER TABLE <Tên_bảng> ADD  
CONSTRAINT <Tên_RBTV> <RBTV>,  
CONSTRAINT <Tên_RBTV> <RBTV>,  
…
Xóa RBTV:  
ALTER TABLE <Tên_bảng> DROP <Tên_RBTV>  
Ví dụ:  
CREATE TABLE HANGHOA(  
MAHG CHAR(10),  
TENHANG CHAR(50),  
DVT CHAR(5)  
)
12  
Sửa bảng (tt)  
Thêm thuộc tính bảng:  
ALTER TABLE HANGHOA ADD  
DONGIA FLOAT  
Mở rộng kiểu dữ liệu cho thuộc tính bảng:  
ALTER TABLE HANGHOA  
MODIFY DONGIA LONG  
Xóa thuộc tính bảng:  
ALTER TABLE HANGHOA  
DROP COLUMN DVT  
13  
Sửa bảng (tt)  
Thay đổi RBTV:  
ALTER TABLE SINHVIEN ADD  
CONSTRAINT fk_sv FOREIGN KEY (MAKHOA)  
REFERENCES KHOA(MAKHOA)  
ALTER TABLE HANGHOA ADD CONSTRAINT fk_HH  
PRIMIRY KEY (MAHG)  
Xóa ràng buộc toàn vẹn trong bảng  
ALTER TABLE SINHVIEN DROP CONSTRAINT fk_sv  
14  
Thao tác dữ liệu bảng (tt)  
4. Xoá bảng  
DROP TABLE <TÊN_TABLE>  
[CASCADE CONSTRAINT]  
CASCADE CONSTRAINT sẽ xóa luôn tất cả các  
ràng buộc toàn vẹn liên quan đến bảng cần xóa.  
DROP TABLE HANGHOA  
CASCADE CONSTRAINT  
15  
Thao tác dữ liệu bảng (tt)  
5. Thêm dữ liệu  
INSERT INTO Tênbảng [Cột1, Cột2, …]  
VALUES (giátrị1, giátrị2, …)  
VD:  
INSERT INTO SVDT (Masv, MaDT, KQ)  
VALUES (‘SV001’, ‘DT08’, 8)  
Thêm nhiều dòng dữ liệu  
INSERT INTO <Tên_bảng> [(ds_thuộc_tính)]  
SELECT <th_tính_1>, …, <th_tính_n>  
FROM <ds_bảng>  
[WHERE <đ_kiện>]  
16  
Thao tác dữ liệu bảng (tt)  
Nhận xét:  
- Thứ tự các giá trị phải trùng với thứ tự các  
- Có thể thêm giá trị NULL ở những thuộc tính  
cột,  
không là khóa chính hoặc NOT NULL,  
- Các giá trị thuộc tính khóa không được trùng,  
- Câu lệnh INSERT sẽ gặp lỗi nếu vi phạm  
RBTV (Khóa chính, tham chiếu, trùng tên,…), các  
thuộc tính có ràng buộc NOT NULL bắt buộc phải có  
giá trị.  
17  
II. Truy vấn Select  
1. Định danh  
Tạo định danh (SYNONYM):Tạo một định danh (tên  
gọi tắt) tham chiếu đến một đối tượng của một  
schema  
CREATE SYNONYM <tênđịnhdanh> FOR  
<tên schema>.<tên object>  
Xóa định danh:  
DROP SYNONYM <tên định danh>  
VD: PHONG(MA_PHONG, TEN_PHONG)  
CREATE SYNONYM P FOR PHONG;  
INSERT INTO P(MA_PHONG, TEN_PHONG)  
VALUES (1, 'Dao tao');  
SELECT * FROM P; # SELECT * FROM PHONG;  
18  
Bài tập  
Xác định khóa chính?  
CONGNHAN (HOTEN_CN, NAMS_CN, NAM_VAO_N,  
CH_MON)  
THAMGIA (HOTEN_CN, STT_CTR, NGAY_TGIA, SO_NGAY)  
KTRUCSU (HOTEN_KTS, NAMS_KTS, PHAI, NOI_TN,  
DCHI_LL_KTS)  
THIETKE (HOTEN_KTS, STT_CTR, THU_LAO)  
CGTRINH (STT_CTR, TEN_CTR, DIACHI_CTR, TINH_THANH,  
KINH_PHI, TEN_CHU, TEN_HAU, NGAY_BD)  
CHUTHAU (TEN_THAU, TEL, DCHI_THAU)  
CHUNHAN (TEN_CHU, DCHI_CHU)  
19  
Bài tập (tt)  
Xác định khóa ngoại?  
CONGNHAN (HOTEN_CN, NAMS_CN, NAM_VAO_N,  
CH_MON)  
THAMGIA (HOTEN_CN, STT_CTR, NGAY_TGIA, SO_NGAY)  
KTRUCSU (HOTEN_KTS, NAMS_KTS, PHAI, NOI_TN,  
DCHI_LL_KTS)  
THIETKE (HOTEN_KTS, STT_CTR, THU_LAO)  
CGTRINH (STT_CTR, TEN_CTR, DIACHI_CTR, TINH_THANH,  
KINH_PHI, TEN_CHU, TEN_THAU, NGAY_BD)  
CHUTHAU (TEN_THAU, TEL, DCHI_THAU)  
CHUNHAN (TEN_CHU, DCHI_CHU)  
20  
Tải về để xem bản đầy đủ
pdf 67 trang yennguyen 15880 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ quản trị cơ sở dữ liệu - Chương 3: Truy vấn SQL - Nguyễn Thị Mỹ Dung", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_he_quan_tri_co_so_du_lieu_chuong_3_truy_van_sql_ng.pdf