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 đủ
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:
bai_giang_he_quan_tri_co_so_du_lieu_chuong_3_truy_van_sql_ng.pdf

