Bài giảng môn Cơ sở dữ liệu: Chương 6 - Ngôn ngữ SQL giới thiệu về SQL; kiểu dữ liệu; định nghĩa dữ liệu; truy vấn dữ liệu; cập nhật dữ liệu và một số nội dung khác. Mời các bạn tham khảo bài giảng để bổ sung thêm kiến thức về lĩnh vực này.
CHƯƠNG NGÔN NGỮ SQL KNOWLEDGE FOR SHARE Tài liệu tham khảo [1] Đỗ Phúc, Nguyễn Đăng Tỵ Giáo trình sở liệu Đại học Quốc gia Tp.HCM [2] Đồng Thị Bích Thủy Giáo trình sở liệu Đại học Quốc gia Tp.HCM [3] Trần Ngọc Bảo Slide giảng CSDL Đại học Sư Phạm TP.HCM [4] Lê Minh Triết Slide giảng CSDL Đại học Sư Phạm TP.HCM 3/16/2015 KNOWLEDGE FOR SHARE Nội dung Giới thiệu SQL Kiểu liệu Định nghĩa liệu Truy vấn liệu Cập nhật liệu Một số vấn đề khác 3/16/2015 KNOWLEDGE FOR SHARE Giới thiệu Ngôn ngữ ĐSQH – Cách thức truy vấn liệu – Khó khăn cho người sử dụng SQL (Structured Query Language) – Ngôn ngữ cấp cao – Người sử dụng cần đưa nội dung cần truy vấn – Được phát triển IBM (1970s) – Được gọi SEQUEL – Được ANSI cơng nhận phát triển thành chuẩn • SQL-86 • SQL-92 • SQL-99 3/16/2015 KNOWLEDGE FOR SHARE Giới thiệu SQL gồm – Định nghĩa liệu (DDL) – Thao tác liệu (DML) – Định nghĩa khung nhìn – Ràng buộc tồn vẹn – Phân quyền bảo mật – Điều khiển giao tác SQL sử dụng thuật ngữ – Bảng ~ quan hệ – Cột ~ thuộc tính – Dịng ~ 3/16/2015 Lý thuyết Chuẩn SQL-92, SQL Server 2000 Minh họa SQL Server 2000 KNOWLEDGE FOR SHARE Giới thiệu SQL Ngôn ngữ định nghĩa liệu DDL - Data Definition Language Các lệnh dùng để định nghĩa CSDL: tạo lập (create), thay đổi (alter) hủy bỏ (drop) đối tượng liệu, thiết lập ràng buộc Ngôn ngữ thao tác liệu DML - Data Manipulation Language Các lệnh dùng để bảo trì truy vấn CSDL: thêm (insert), sửa (update), xóa (delete) liệu bảng, truy vấn (select) Ngôn ngữ điều khiển liệu DCL - Data Control Language Các lệnh dùng để điều khiển CSDL: quản trị quyền (grant, revoke) 3/16/2015 KNOWLEDGE FOR SHARE Giới thiệu SQL 3/16/2015 KNOWLEDGE FOR SHARE Kiểu liệu Kiểu liệu SQL Server 3/16/2015 KNOWLEDGE FOR SHARE Kiểu liệu Kiểu liệu SQL Server 3/16/2015 KNOWLEDGE FOR SHARE Kiểu liệu Kiểu liệu SQL Server 3/16/2015 10 KNOWLEDGE FOR SHARE Cập nhật liệu XÓA DỮ LIỆU TRONG BẢNG Số lượng số dịng bị xóa phụ thuộc vào điều kiện mệnh đề WHERE Nếu không định điều kiện mệnh đề WHERE, tất dòng bảng bị xóa Lệnh DELETE gây vi phạm RB tham chiếu – Khơng cho xóa – Xóa ln dịng có giá trị tham chiếu đến • CASCADE – Đặt NULL cho giá trị tham chiếu 3/16/2015 101 KNOWLEDGE FOR SHARE Cập nhật liệu XÓA DỮ LIỆU TRONG BẢNG MANV HONV TENLOT TENNV NGSINH DCHI PHAI LUONG MA_NQL PHG 333445555 Nguyen Thanh Tung 12/08/1955 638 NVC Q5 Nam 40000 888665555 987987987 Nguyen Manh Hung 09/15/1962 Ba Ria VT Nam 38000 333445555 453453453 Tran Thanh Tam 07/31/1972 543 MTL Q1 Nu 25000 333445555 999887777 Bui Ngoc Hang 07/19/1968 33 NTH Q1 Nu 38000 987654321 987654321 Le Quynh Nhu 07620/1951 219 TD Q3 Nu 43000 888665555 987987987 Tran Hong Quang 04/08/1969 980 LHP Q5 Nam 25000 987654321 888665555 Pham Van Vinh 11/10/1945 450 TV HN Nam 55000 NULL MA_NVIEN SODA 333445555 10 10.0 888665555 20 20.0 987987987 10 35.0 987987987 30 5.0 987654321 30 20.0 453453453 20.0 3/16/2015 THOIGIAN 102 KNOWLEDGE FOR SHARE Cập nhật liệu CẬP NHẬT DỮ LIỆU TRONG BẢNG UPDATE UPDATE NHANVIEN SET =, SET NGSINH=’08/12/1965’ =, … [WHERE ] WHERE MANV=‘333445555’ UPDATE NHANVIEN SET LUONG=LUONG*1.1 Với đề án có mã số 10, thay đổi nơi thực đề án thành ‘Vung Tau’ phòng ban phụ trách phòng 3/16/2015 103 KNOWLEDGE FOR SHARE Cập nhật liệu CẬP NHẬT DỮ LIỆU TRONG BẢNG Những dòng thỏa điều kiện mệnh đề WHERE cập nhật giá trị Nếu không định điều kiện mệnh đề WHERE, tất dòng bảng bị cập nhật Lệnh UPDATE gây vi phạm RB tham chiếu – Không cho sửa – Sửa ln dịng có giá trị tham chiếu đến • CASCADE 3/16/2015 104 KNOWLEDGE FOR SHARE Một số vấn đề khác KHUNG NHÌN - VIEW Bảng quan hệ tổ chức lưu trữ vật lý CSDL Khung nhìn quan hệ – Không lưu trữ vật lý (bảng ảo) – Không chứa liệu – Được định nghĩa từ bảng khác – Có thể truy vấn hay cập nhật thơng qua khung nhìn 3/16/2015 105 KNOWLEDGE FOR SHARE Một số vấn đề khác KHUNG NHÌN - VIEW Tại phải sử dụng khung nhìn? – Che dấu tính phức tạp liệu – Đơn giản hóa câu truy vấn – Hiển thị liệu dạng tiện dụng – An toàn liệu 3/16/2015 106 KNOWLEDGE FOR SHARE Một số vấn đề khác KHUNG NHÌN - VIEW Cú pháp CREATE VIEW AS DROP VIEW Bảng ảo có – Danh sách thuộc tính trùng với thuộc tính mệnh đề SELECT – Số dòng phụ thuộc vào điều kiện mệnh đề WHERE – Dữ liệu lấy từ bảng mệnh đề FROM 3/16/2015 107 KNOWLEDGE FOR SHARE Một số vấn đề khác KHUNG NHÌN - VIEW CREATE VIEW NV_P5 AS SELECT MANV, HONV, TENLOT, TENVN FROM NHANVIEN WHERE PHG=5 CREATE VIEW TONGLNG_SLNV_PB AS SELECT MAPHG, TENPHG, COUNT(*) AS SLNV, SUM(LUONG) AS TONGLNG FROM NHANVIEN, PHONGBAN WHERE PHG=MAPHG GROUP BY TENPHG, MAPHG 3/16/2015 108 KNOWLEDGE FOR SHARE Một số vấn đề khác TRUY VẤN TRÊN KHUNG NHÌN SELECT TENNV SELECT HONV, TENVN, TENDA, THOIGIAN FROM NV_P5 FROM NV_P5, PHANCONG, DEAN WHERE HONV LIKE ‘Nguyen’ WHERE MANV=MA_NVIEN AND SODA=MADA Tuy không chứa liệu thực câu truy vấn khung nhìn Có thể viết câu truy vấn liệu từ khung nhìn bảng 3/16/2015 109 KNOWLEDGE FOR SHARE Một số vấn đề khác CẬP NHẬT TRÊN KHUNG NHÌN Có thể dùng câu lệnh INSERT, DELETE UPDATE cho khung nhìn đơn giản – Khung nhìn xây dựng bảng có khóa bảng Không thể cập nhật liệu – – – – Khung nhìn có dùng từ khóa DISTINCT Khung nhìn có sử dụng hàm kết hợp Khung nhìn có mệnh đề SELECT mở rộng Khung nhìn xây dựng từ bảng có RB cột – Khung nhìn xây dựng từ nhiều bảng 3/16/2015 110 KNOWLEDGE FOR SHARE Một số vấn đề khác CẬP NHẬT TRÊN KHUNG NHÌN Sửa lại họ cho nhân viên ‘123456789’ phòng ‘Pham’ mã UPDATE NV_P5 SET HONV=‘Pham’ WHERE MANV= ‘123456789’ 3/16/2015 111 KNOWLEDGE FOR SHARE Một số vấn đề khác INDEX – CHỈ MỤC Chỉ mục thuộc tính A cấu trúc liệu làm cho việc tìm kiếm mẫu tin có chứa A hiệu SELECT * FROM NHANVIEN WHERE PHG=5 AND PHAI=‘Nu’ 3/16/2015 112 KNOWLEDGE FOR SHARE Một số vấn đề khác INDEX – CHỈ MỤC Cú pháp CREATE INDEX ON () DROP INDEX Ví dụ CREATE INDEX PHG_IND ON NHANVIEN(PHG) CREATE INDEX PHG_PHAI_IND ON NHANVIEN(PHG, PHAI) 3/16/2015 113 KNOWLEDGE FOR SHARE Một số vấn đề khác INDEX – CHỈ MỤC Nhận xét – Tìm kiếm nhanh trường hợp so sánh với số phép kết – Làm chậm thao tác thêm, xóa sửa – Tốn chi phí • Lưu trữ mục • Truy xuất đĩa nhiều Chọn lựa cài đặt mục hợp lý??? 3/16/2015 114 HẾT ... Ngày FROM NHANVIEN WHERE NGSINH = ‘195 5-1 2-0 8’ SELECT MANV, TENNV FROM NHANVIEN WHERE NGSINH BETWEEN ‘195 5-1 2-0 8’ AND ‘1 966 -0 7-1 9’ ‘195 5-1 2-0 8’ YYYY-MM-DD ’17:30:00’ ’12/08/1955’ MM/DD/YYYY ’05:30... tác SQL sử dụng thuật ngữ – Bảng ~ quan hệ – Cột ~ thuộc tính – Dòng ~ 3/ 16/ 2015 Lý thuyết Chuẩn SQL- 92, SQL Server 2000 Minh họa SQL Server 2000 KNOWLEDGE FOR SHARE Giới thiệu SQL Ngôn ngữ. .. Được gọi SEQUEL – Được ANSI công nhận phát triển thành chuẩn • SQL- 86 • SQL- 92 • SQL- 99 3/ 16/ 2015 KNOWLEDGE FOR SHARE Giới thiệu SQL gồm – Định nghĩa liệu (DDL) – Thao tác liệu (DML) – Định nghĩa