CƠ SỞ DỮ LIỆU
Bài 3:
NGÔN NGỮ SQL
06/08/2012 1 HVĐ – THQL
VẤN ĐỀ
• Làm sao tương tác với hệ quản trị CSDL để
– Tạo CSDL
– Cập nhật dữ liệu
– Quản lý người dùng
– Khai thác CSDL
06/08/2012 HVĐ – THQL 2
MỤC TIÊU
• Kiến thức
– Ngôn ngữ con định nghĩa dữ liệu (DDL)
– Ngôn ngữ con thao tác dữ liệu (DML)
– Ngôn ngữ con điều khiển truy xuất (ACL)
– Ngôn ngữ con truy vấn (QL)
• Kỹ năng
– Cài đặt cơ sở dữ liệu
– Cập nhật dữ liệu
– Quản lý người dùng
– Giải bài toán dùng ngôn ngữ con truy vấn
• Yêu cầu: áp dụng thực tế
06/08/2012 HVĐ – THQL 3
NỘI DUNG
• Ngôn ngữ con định nghĩa dữ liệu
• Ngôn ngữ con điều khiển truy cập
• Ngôn ngữ con thao tác dữ liệu
• Ngôn ngữ con truy vấn
• Thảo luận tình huống
06/08/2012 HVĐ – THQL 4
sotc int not null check (sotc between 3 and 4))
• Thực hành với một hệ quản trị CSDL cụ thể
06/08/2012 7 HVĐ – THQL
KHAI BÁO RÀNG BUỘC
• Các ví dụ
– ALTER TABLE gvien ADD CONSTRAINT
gvien_pkey primary key(gvid)
– ALTER TABLE phancong ADD CONSTRAINT
pc_gv_fk foreign key (gvid) references gvien(gvid)
• Thực hành với một hệ quản trị CSDL cụ thể
06/08/2012 8 HVĐ – THQL
ĐỊNH NGHĨA KHUNG NHÌN
• Các ví dụ
– CREATE VIEW class3 AS
SELECT * FROM student WHERE classID = ‘C3’
WITH CHECK OPTION
– CREATE VIEW siSo (classID, className, siSo) AS
SELECT class. classID, className, count(*)
FROM student, class
WHERE student.classID = class.classID
GROUP BY classID, className
• Thực hành với một hệ quản trị CSDL cụ thể
06/08/2012 HVĐ – THQL 9
NN ĐỊNH NGHĨA DỮ LIỆU (DDL)
• Lệnh
– Create
– Alter
– Drop
• Đối tượng
– Database
NOCREATEROLE;
– GRANT guest TO hvduc;
• Thực hành với một hệ quản trị CSDL cụ thể
06/08/2012 13 HVĐ – THQL
CẤP QUYỀN
• Các ví dụ (PostgreSQL)
– GRANT ALL ON TABLE gvien TO hvduc;
– GRANT SELECT ON TABLE gvien TO guest;
– GRANT EXECUTE ON FUNCTION checksiso()
TO postgres;
• Thực hành với một hệ quản trị CSDL cụ thể
06/08/2012 14 HVĐ – THQL
HUỶ QUYỀN
• Dùng REVOKE để huỷ quyền
• Dùng DROP để loại bỏ tài khoản người dùng
06/08/2012 15 HVĐ – THQL
TÌNH HUỐNG
• Mô hình cơ sở dữ liệu Bán Hàng
– Phân loại người dùng
– Tạo tài khoản người dùng
– Cấp quyền
06/08/2012 HVĐ – THQL 16
QUẢN LÝ DỮ LIỆU
• Ngôn ngữ con định nghĩa dữ liệu
• Ngôn ngữ con điều khiển truy cập
• Ngôn ngữ con thao tác dữ liệu
– Thêm
– Xóa
– Sửa
• Ngôn ngữ con truy vấn
<table1>
INNER JOINT / LEFT JOINT / RIGHT JOIN
<table1>
ON <điều kiện kết>
• Các phép so sánh
– <thuộc tính> θ <giá trị>
– <thuộc tính> θ ANY/ALL <tập giá trị>
– EXISTS <quan hệ>
06/08/2012 21 HVĐ – THQL
CÁC PHÉP TOÁN TẬP CON
• SELECT * FROM r1
UNION SELECT* FROM r2
• SELECT * FROM r1
INTERSECT SELECT * FROM r2
• SELECT * FROM r1
EXCEPT SELECT * FROM r2
• Áp dụng
– Ghi sổ kép kế toán
– Toàn bộ lịch giảng
– Tìm những giảng viên không có giờ giảng
06/08/2012 22 HVĐ – THQL
TÍNH TOÁN
• Từ các giá trị thuộc tính của mỗi dòng
• Tập các giá trị từng thuộc tính trong cùng một
nhóm (nhóm theo dòng)
– Count
– Sum
– Avg
– Max
– …