Bài giảng cơ sở dữ liệu chương 5 SQL

141 443 0
Bài giảng cơ sở dữ liệu   chương 5  SQL

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Chương SQL Nội dung chi tiết       Giới thiệu Định nghĩa liệu Truy vấn liệu Cập nhật liệu Khung nhìn (view) Chỉ mục (index) Cơ sở liệu - Khoa CNTT - ĐH KHTN TPHCM 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 Cơ sở liệu - Khoa CNTT - ĐH KHTN TPHCM Giới thiệu (tt)  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 toàn vẹn Phân quyền bảo mật Điều khiển giao tác Lý thuyết : Chuẩn SQL-92 Ví dụ : SQL Server  SQL sử dụng thuật ngữ - Bảng ~ quan hệ - Cột ~ thuộc tính - Dòng ~ Cơ sở liệu - Khoa CNTT - ĐH KHTN TPHCM Nội dung chi tiết  Giới thiệu  Định nghĩa liệu - Kiểu liệu - Các lệnh định nghĩa liệu     Truy vấn liệu Cập nhật liệu Khung nhìn (view) Chỉ mục (index) Cơ sở liệu - Khoa CNTT - ĐH KHTN TPHCM Định nghĩa liệu  Là ngôn ngữ mô tả - Lược đồ cho quan hệ Miền giá trị tương ứng thuộc tính Ràng buộc toàn vẹn Chỉ mục quan hệ  Gồm - CREATE TABLE (tạo bảng) DROP TABLE (xóa bảng) ALTER TABLE (sửa bảng) CREATE DOMAIN (tạo miền giá trị) CREATE DATABASE … Cơ sở liệu - Khoa CNTT - ĐH KHTN TPHCM Kiểu liệu  Số (numeric) - INTEGER SMALLINT NUMERIC, NUMERIC(p), NUMERIC(p,s) DECIMAL, DECIMAL(p), DECIMAL(p,s) REAL DOUBLE PRECISION FLOAT, FLOAT(p) Cơ sở liệu - Khoa CNTT - ĐH KHTN TPHCM Kiểu liệu (tt)  Chuỗi ký tự (character string) - CHARACTER, CHARACTER(n) - CHARACTER VARYING(x)  Chuỗi bit (bit string) - BIT, BIT(x) - BIT VARYING(x)  Ngày (datetime) - DATE gồm ngày, tháng năm - TIME gồm giờ, phút giây - TIMESTAMP gồm ngày Cơ sở liệu - Khoa CNTT - ĐH KHTN TPHCM Lệnh tạo bảng  Để định nghĩa bảng - Tên bảng - Các thuộc tính  Tên thuộc tính  Kiểu liệu  Các RBTV thuộc tính  Cú pháp CREATE TABLE ( [], [], … [] ) Cơ sở liệu - Khoa CNTT - ĐH KHTN TPHCM Ví dụ - Tạo bảng CREATE TABLE NHANVIEN ( MANV CHAR(9), HONV VARCHAR(10), TENLOT VARCHAR(20), TENNV VARCHAR(10), NGSINH DATETIME, DCHI VARCHAR(50), PHAI CHAR(3), LUONG INT, MA_NQL CHAR(9), PHG INT ) Cơ sở liệu - Khoa CNTT - ĐH KHTN TPHCM 10 Định nghĩa khung nhìn  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 Cơ sở liệu - Khoa CNTT - ĐH KHTN TPHCM 127 Ví dụ 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 Cơ sở liệu - Khoa CNTT - ĐH KHTN TPHCM 128 Truy vấn khung nhìn  Tuy không chứa liệu thực câu truy vấn khung nhìn SELECT TENNV FROM NV_P5 WHERE HONV LIKE ‘Nguyen’ NV_P5  MANV,HONV, TENLOT, TENNV (PHG=5 (NHANVIEN))  TENNV  ( Cơ sở liệu - Khoa CNTT - ĐH KHTN TPHCM HONV=‘Nguyen’ (NV_P5)) 129 Truy vấn khung nhìn (tt)  Có thể viết câu truy vấn liệu từ khung nhìn bảng SELECT HONV, TENVN, TENDA, THOIGIAN FROM NV_P5, PHANCONG, DEAN WHERE MANV=MA_NVIEN AND SODA=MADA NV_P5 TMP   MANV,HONV, TENLOT, TENNV (PHG=5 (NHANVIEN)) NV_P5  MANV=MA_NVIEN PHONGBAN SODA=MADADEAN TENNV,TENDA,THOIGIAN(TMP) Cơ sở liệu - Khoa CNTT - ĐH KHTN TPHCM 130 Cập nhật 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 Cơ sở liệu - Khoa CNTT - ĐH KHTN TPHCM 131 Cập nhật khung nhìn (tt)  Sửa lại họ cho nhân viên mã ‘123456789’ phòng ‘Pham’ UPDATE NV_P5 SET HONV=‘Pham’ WHERE MANV= ‘123456789’ Cơ sở liệu - Khoa CNTT - ĐH KHTN TPHCM 132 Nội dung chi tiết       Giới thiệu Định nghĩa liệu Truy vấn liệu Cập nhật liệu Khung nhìn (view) Chỉ mục (index) Cơ sở liệu - Khoa CNTT - ĐH KHTN TPHCM 133 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 Đọc 10.000 WHERE PHG=5 AND PHAI=‘Nu’ Đọc 200 Bảng NHANVIEN có 10.000 Có 200 nhân viên làm việc cho phòng Cơ sở liệu - Khoa CNTT - ĐH KHTN TPHCM Đọc 70 134 Chỉ mục (tt)  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) Cơ sở liệu - Khoa CNTT - ĐH KHTN TPHCM 135 Chỉ mục (tt)  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ý??? Cơ sở liệu - Khoa CNTT - ĐH KHTN TPHCM 136 Ví dụ  Xét quan hệ - PHANCONG(MA_NVIEN, SODA, THOIGIAN)  Giả sử - PHANCONG lưu trữ 10 block  Chi phí để đọc toàn liệu PHANCONG 10 - Trung bình nhân viên tham gia đề án đề án có khoảng nhân viên làm  Dữ liệu trải 10 block  Chi phí để tìm nhân viên hay đề án - Khi sử dụng mục  Chi phí đọc hay cập nhật mục - Thao tác thêm cần lần truy xuất đĩa Cơ sở liệu - Khoa CNTT - ĐH KHTN TPHCM 137 Ví dụ (tt)  Giả sử có thao tác thực thường xuyên - Q1 SELECT SODA, THOIGIAN FROM PHANCONG WHERE MA_NVIEN=‘123456789’ - Q2 SELECT MANV FROM PHANCONG WHERE SODA=1 AND THOIGIAN=20.5 - Q3 INSERT INTO PHANCONG VALUES ( 123456789’, 1, 20.5) Cơ sở liệu - Khoa CNTT - ĐH KHTN TPHCM 138 Ví dụ (tt)  Bảng so sánh chi phí Thao tác Không có mục Chỉ mục MA_NVIEN Q1 10 10 Q2 10 10 4 Q3 4 + 8p1 + 8p2 + 6p2 + 6p1 - 2p1 – 2p2 Chí phí TB Chỉ mục SODA Chỉ mục thuộc tính Khoảng thời gian thực Q1 p1 Khoảng thời gian thực Q2 p2 Khoảng thời gian thực Q3 - p1 - p2 Cơ sở liệu - Khoa CNTT - ĐH KHTN TPHCM 139 Bài tập nhà  Bài tập - 6.1.1 đến 6.1.4 / 252 - 253 6.2.1 đến 6.2.3 / 262 - 263 6.3.1 đến 6.3.3 / 274 - 275 6.3.7 đến 6.3.10 / 275 - 276 6.4.1, 6.4.2, 6.4.6, 6.4.7 / 284 - 285 6.5.1, 6.5.2 / 290 - 291 6.7.1 đến 6.7.6 / 311 -312 Cơ sở liệu - Khoa CNTT - ĐH KHTN TPHCM 140 Cơ sở liệu - Khoa CNTT - ĐH KHTN TPHCM 141 [...]... Tung 12/08/1 955 638 NVC Q5 Nam 40000 8886 655 55 5 987987987 Nguyen Manh Hung 09/ 15/ 1962 Ba Ria VT Nam 38000 3334 455 55 5  Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM PHG =5 (NHANVIEN) 27 Mệnh đề SELECT SELECT MANV, HONV, TENLOT, TENNV FROM NHANVIEN WHERE PHG =5 AND PHAI=‘Nam’  MANV HONV TENLOT TENNV 3334 455 55 Nguyen Thanh Tung 987987987 Nguyen Manh Hung  MANV,HONV,TENLOT,TENNV( Cơ sở dữ liệu - Khoa CNTT... PHG =5 AND PHAI=‘Nam’   MANV,HO TEN( MANV HO TEN 3334 455 55 Nguyen Thanh Tung 987987987 Nguyen Manh Hung  MANV,HONV+TENLOT+TENNV( Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM PHG =5 PHAI=‘Nam’(NHANVIEN))) 30 Mệnh đề SELECT (tt) Mở rộng SELECT MANV, LUONG*1.1 AS ‘LUONG10%’ FROM NHANVIEN WHERE PHG =5 AND PHAI=‘Nam’  MANV LUONG10% 3334 455 55 33000 987987987 2 750 0  MANV,LUONG10%(  MANV,LUONG*1.1( Cơ sở dữ liệu. .. một kiểu dữ liệu mới kế thừa những kiểu dữ liệu có sẳn  Cú pháp CREATE DOMAIN AS  Ví dụ CREATE DOMAIN Kieu_Ten AS VARCHAR(30) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 22 Nội dung chi tiết  Giới thiệu  Định nghĩa dữ liệu  Truy vấn dữ liệu - Truy vấn cơ bản Tập hợp, so sánh tập hợp và truy vấn lồng Hàm kết hợp và gom nhóm Một số kiểu truy vấn khác  Cập nhật dữ liệu ... BETWEEN Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 25 Truy vấn cơ bản (tt)  SQL và ĐSQH  SELECT  FROM  WHERE SELECT L   FROM L ( R C (R)) WHERE C Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 26 Ví dụ Lấy tất cả các cột của quan hệ kết quả SELECT * FROM NHANVIEN WHERE PHG =5 MANV HONV TENLOT TENNV NGSINH DCHI PHAI LUONG MA_NQL PHG 3334 455 55 Nguyen... (TENPB) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 19 Lệnh xóa bảng  Được dùng để xóa cấu trúc bảng - Tất cả dữ liệu của bảng cũng bị xóa  Cú pháp DROP TABLE  Ví dụ DROP TABLE NHANVIEN DROP TABLE PHONGBAN DROP TABLE PHANCONG Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 20 Lệnh xóa bảng (tt) NHANVIEN HONV TENLOT TENNV MANV NGSINH DCHI PHAI LUONG MA_NQL PHG PHONGBAN TENPHG MAPHG TRPHG Cơ sở dữ liệu. .. truy vấn khác  Cập nhật dữ liệu  Khung nhìn (view)  Chỉ mục (index) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 23 Truy vấn dữ liệu  Là ngôn ngữ rút trích dữ liệu thỏa một số điều kiện nào đó  Dựa trên Phép toán ĐSQH  Một số bổ sung - Cho phép 1 bảng có nhiều dòng trùng nhau Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 24 Truy vấn cơ bản  Gồm 3 mệnh đề SELECT FROM ... NOT NULL Cơ sở liệu - Khoa CNTT - ĐH KHTN TPHCM 43 Mệnh đề FROM Không sử dụng mệnh đề WHERE SELECT MANV, MAPHG FROM NHANVIEN, PHONGBAN WHERE TRUE MANV MAPHG 3334 455 55 3334 455 55 3334 455 55 987987987... WHERE NGSINH BETWEEN ‘1 955 -12-08’ AND ‘1966-07-19’ ‘1 955 -12-08’ YYYY-MM-DD ’17:30:00’ ’12/08/1 955 ’ MM/DD/YYYY ’ 05: 30 PM’ HH:MI:SS ‘December 8, 1 955 ’ ‘1 955 -12-08 17:30:00’ Cơ sở liệu - Khoa CNTT -... NHANVIEN WHERE PHG =5 MANV HONV TENLOT TENNV NGSINH DCHI PHAI LUONG MA_NQL PHG 3334 455 55 Nguyen Thanh Tung 12/08/1 955 638 NVC Q5 Nam 40000 8886 655 55 987987987 Nguyen Manh Hung 09/ 15/ 1962 Ba Ria VT

Ngày đăng: 01/04/2016, 08:30

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan