Bài giảng Cơ sở dữ liệu - Bài 3: Ngôn ngữ SQL
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 TẠO CƠ SỞ DỮ LIỆU • Ngôn ngữ con định nghĩa dữ liệu – Định nghĩa miền giá trị – Tạo cấu trúc bảng – Khai báo các ràng buộc – Định nghĩa khung nhìn • 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 5 ĐỊNH NGHĨA MIỀN GIÁ TRỊ • Các ví dụ: – CREATE DOMAIN tid AS char(6) not null – CREATE DOMAIN tdiem AS int check (value > 0) • Thực hành với một hệ quản trị CSDL cụ thể – Tuổi – Ngày sinh – … 06/08/2012 6 HVĐ – THQL TẠO CẤU TRÚC BẢNG • Các ví dụ – CREATE TABLE gvien( gvid tid, gvten char(10), nsinh date ) – CREATE TABLE monhoc( monid tid primary key, monten char(10), 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 – Domain – Table – Constraint – Function – Trigger – View 06/08/2012 10 HVĐ – THQL [...]... (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 Quản lý 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 34 THẢO LUẬN TÌNH HUỐNG • • • • • 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. .. gvid=‘hat’; • UPDATE gvien SET nsinh=nsinh+7 WHERE gvid=‘hvd’ 06/08/2012 HVĐ – THQL 18 TÌNH HUỐNG • Mô hình cơ sở dữ liệu Bán Hàng – Cập nhập dữ liệu 06/08/2012 HVĐ – THQL 19 KHAI THÁC CƠ SỞ 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 Ngôn ngữ con truy vấn – Truy vấn – Cài đặt đại số quan hệ – Cài đặt ràng buộc toàn vẹn • Thảo luận tình huống... 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 • Thảo luận tình huống 06/08/2012 HVĐ – THQL 17 CÁC VÍ DỤ • INSERT INTO gvien VALUES (‘hat’, ‘tuan’, ‘ 5-2 4-1 958), (‘hvd’, ‘duc’, ‘1 2-2 3-1 963’); • DELETE FROM gvien WHERE gvid=‘hat’; • UPDATE gvien... • Mô hình cơ sở dữ liệu Bán Hàng – Miền giá trị – Bảng – Khung nhìn – Ràng buộc 06/08/2012 HVĐ – THQL 11 QUẢN LÝ NGƯỜI DÙNG • Ngôn ngữ con định nghĩa dữ liệu • Ngôn ngữ con điều khiển truy cập – Tạo tài khoản người dùng – Cấp quyền – Hủy quyền • 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 12 TẠO TÀI KHOẢN NGƯỜI DÙNG • Các ví dụ (PostgreSQL): – CREATE... TRIGGER • Ngữ cảnh của ràng buộc là quan hệ giữa – các bảng và – các thao tác insert, delete, update • Viết trigger với mục đích cài đặt các ràng buộc toàn vẹn • Ở đây ta quan tâm đến bài toán truy vấn: tìm ra các vi phạm, nếu có • Lưu ý sử dụng các biến quan hệ có sẵn (inserted) 06/08/2012 HVĐ – THQL 32 VÍ DỤ 06/08/2012 HVĐ – THQL 33 TRỞ LẠI MỤC TIÊU • Kiến thức – – – – Ngôn ngữ con định nghĩa dữ liệu. .. = CTHDon.HDSo) WHERE month(NgayL) = 2009 GROUP BY CTHDon.HDSo HAVING TriG > 1000 06/08/2012 HVĐ – THQL 24 TÌNH HUỐNG • Cơ sở dữ liệu Thể thao đội 06/08/2012 HVĐ – THQL 25 TÌNH HUỐNG • Tính tiền điện 06/08/2012 HVĐ – THQL 26 QUAN HỆ GIỮA QL VÀ RA Tính tổng số tiết của mỗi giảng viên giảng cho lớp hc12 • SELECT gvien.gvid, gvten, sum(sotc*15) as tongtiet FROM (gvien g INNER JOIN phancong p ON g.gvid =... 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 HVĐ – THQL 14 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 HVĐ – THQL 15 TÌNH HUỐNG • Mô hình cơ sở dữ liệu Bán Hàng – Phân loại người... 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 HVĐ – THQL 22 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 –…... 34 THẢO LUẬN TÌNH HUỐNG • • • • • 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 35 CÔNG TY MỸ GIA • • • • Cài đặt CSDL Phân loại người dùng Cập nhật dữ liệu Truy vấn 06/08/2012 HVĐ – THQL 36 . 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. 06/08/2012 HVĐ – THQL 19 KHAI THÁC CƠ SỞ 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 • Ngôn ngữ con truy vấn – Truy vấn – Cài. đ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 TẠO CƠ SỞ DỮ LIỆU • Ngôn ngữ con định nghĩa dữ liệu – Định nghĩa