Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 24 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
24
Dung lượng
296,49 KB
Nội dung
Chương SQL (Structured Query Language) 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 ĐT-TH - CĐ KTCN-ĐN 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 y SQL-86 y SQL-92 y SQL-99 Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 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 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 ~ Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN Lý thuyết : Chuẩn SQL-92 Ví dụ : SQL Server 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 ĐT-TH - CĐ KTCN-ĐN Đị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 ĐT-TH - CĐ KTCN-ĐN 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 ĐT-TH - CĐ KTCN-ĐN 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 ĐT-TH - CĐ KTCN-ĐN Lệnh tạo Database - bảng CREATE DATABASE Để định nghĩa bảng - Tên bảng - Các thuộc tính y Tên thuộc tính y Kiểu liệu y Các RBTV thuộc tính Cú pháp CREATE TABLE ( [], [], … [] ) Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN Ví dụ - Tạo bảng CREATE TABLE NHANVIEN ( MANV CHAR(9), HONV VARCHAR(50), TENNV VARCHAR(10), NGSINH DATETIME, DCHI VARCHAR(50), PHAI CHAR(3), LUONG INT, MA_NQL CHAR(9), PHG INT ) Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 10 Lệnh tạo bảng (tt) - NOT NULL - NULL - UNIQUE - DEFAULT - PRIMARY KEY - FOREIGN KEY / REFERENCES - CHECK Đặt tên cho RBTV CONSTRAINT Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 11 Ví dụ - RBTV CREATE TABLE NHANVIEN ( HONV VARCHAR(50) NOT NULL, TENNV VARCHAR(10) NOT NULL, MANV CHAR(9) PRIMARY KEY, NGSINH DATETIME, DCHI VARCHAR(50), PHAI CHAR(3) CHECK (PHAI IN (‘Nam’, ‘Nu’)), LUONG INT DEFAULT (10000), MA_NQL CHAR(9), PHG INT ) Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 12 Ví dụ - RBTV CREATE TABLE PHONGBAN ( TENPB VARCHAR(20) UNIQUE, MAPHG INT NOT NULL, TRPHG CHAR(9), NG_NHANCHUC DATETIME DEFAULT (GETDATE()) ) CREATE TABLE PHANCONG ( MA_NVIEN CHAR(9) FOREIGN KEY (MA_NVIEN) REFERENCES NHANVIEN(MANV), SODA INT REFERENCES DEAN(MADA), THOIGIAN DECIMAL(3,1) ) Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 13 Ví dụ - Đặt tên cho RBTV CREATE TABLE NHANVIEN ( HONV VARCHAR(50) CONSTRAINT NV_HONV_NN NOT NULL, TENNV VARCHAR(10) NOT NULL, MANV CHAR(9) CONSTRAINT NV_MANV_PK PRIMARY KEY, NGSINH DATETIME, DCHI VARCHAR(50), PHAI CHAR(3) CONSTRAINT NV_PHAI_CHK CHECK (PHAI IN (‘Nam’, ‘Nu’)), LUONG INT CONSTRAINT NV_LUONG_DF DEFAULT (10000), MA_NQL CHAR(9), PHG INT ) Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 14 Ví dụ - Đặt tên cho RBTV CREATE TABLE PHANCONG ( MA_NVIEN CHAR(9), SODA INT, THOIGIAN DECIMAL(3,1), CONSTRAINT PC_MANVIEN_SODA_PK PRIMARY KEY (MA_NVIEN, SODA), CONSTRAINT PC_MANVIEN_FK FOREIGN KEY (MA_NVIEN) REFERENCES NHANVIEN(MANV), CONSTRAINT PC_SODA_FK FOREIGN KEY (SODA) REFERENCES DEAN(MADA) ) Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 15 Lệnh sửa bảng Được dùng để - Thay đổi cấu trúc bảng - Thay đổi RBTV Thêm cột ALTER TABLE ADD COLUMN [] Xóa cột ALTER TABLE DROP COLUMN Mở rộng cột ALTER TABLE ALTER COLUMN Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 16 Ví dụ - Thay đổi cấu trúc bảng ALTER TABLE NHANVIEN ADD NGHENGHIEP CHAR(20) ALTER TABLE NHANVIEN DROP COLUMN NGHENGHIEP ALTER TABLE NHANVIEN ALTER COLUMN NGHENGHIEP CHAR(50) Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 17 Lệnh sửa bảng (tt) Thêm RBTV ALTER TABLE ADD CONSTRAINT , CONSTRAINT , … Xóa RBTV ALTER TABLE DROP Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 18 Ví dụ - Thay đổi RBTV CREATE TABLE PHONGBAN ( TENPB VARCHAR(20), MAPHG INT NOT NULL, TRPHG CHAR(9), NG_NHANCHUC DATETIME ) ALTER TABLE PHONGBAN ADD CONSTRAINT PB_MAPHG_PK PRIMARY KEY (MAPHG), CONSTRAINT PB_TRPHG FOREIGN KEY (TRPHG) REFERENCES NHANVIEN(MANV), CONSTRAINT PB_NGNHANCHUC_DF DEFAULT (GETDATE()) FOR (NG_NHANCHUC), CONSTRAINT PB_TENPB_UNI UNIQUE (TENPB) Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 19 Lệnh xóa bảng Được dùng để xóa cấu trúc bảng - Tất liệu bảng bị xóa Cú pháp DROP TABLE Ví dụ DROP TABLE PHONGBAN DROP TABLE NHANVIEN DROP TABLE PHANCONG Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 20 10 Lệnh xóa bảng (tt) NHANVIEN HONV TENLOT TENNV MANV NGSINH DCHI PHAI LUONG MA_NQL PHG PHONGBAN TENPHG MAPHG TRPHG NG_NHANCHUC Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 21 Lệnh tạo xóa miền giá trị Tạo kiểu liệu kế thừa kiểu liệu có sẳn Cú pháp CREATE DOMAIN AS DROP DOMAIN AS Ví dụ CREATE DOMAIN Chuoi AS VARCHAR(50) DROP DOMAIN Chuoi Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 22 11 Nội dung chi tiết Giới thiệu Định nghĩa liệu Truy vấn liệu - Truy vấn - Tập hợp, so sánh tập hợp truy vấn lồng - Hàm kết hợp gom nhóm - Một số kiểu truy vấn khác Cập nhật liệu Khung nhìn (view) Chỉ mục (index) Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 23 Truy vấn liệu Là ngơn ngữ rút trích liệu thỏa số điều kiện Dựa Phép toán ĐSQH + Một số bổ sung - Cho phép bảng có nhiều dịng trùng Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 24 12 Truy vấn (SELECT) Cú pháp tổng quát SELECT FROM < Danh sách bảng> WHERE GROUP BY HAVING < Điều kiện nhóm> ORDER BY < Danh sách cột cần xếp> Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 25 Truy vấn - Tên cột cần hiển thị kết truy vấn - Tên bảng liên quan đến câu truy vấn - Biểu thức boolean xác định dòng rút trích - Nối biểu thức: AND, OR, NOT - Phép toán: < , > , ≤ , ≥ , ≠ , =, LIKE, BETWEEN, EXISTS, ANY/SOME, ALL, IN Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 26 13 Truy vấn (tt) SQL ĐSQH πSELECT ×FROM σ WHERE πSELECT L (σC (R))L FROM R WHERE C Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 27 Ví dụ Lấy tất cột quan hệ kết SELECT * FROM NHANVIEN WHERE PHG=5 MANV HONV TENLOT 333445555 Nguyen Thanh 987987987 Nguyen Manh TENNV NGSINH DCHI PHAI LUONG MA_NQL PHG Tung 12/08/1955 638 NVC Q5 Nam 40000 888665555 Hung 09/15/1962 Ba Ria VT Nam 38000 333445555 σPHG=5 (NHANVIEN) Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 28 14 Mệnh đề SELECT SELECT MANV, HONV, TENLOT, TENNV FROM NHANVIEN WHERE PHG=5 AND PHAI=‘Nam’ MANV 333445555 987987987 π HONV Nguyen Nguyen MANV,HONV,TENLOT,TENNV( σ TENLOT Thanh Manh PHG=5 ∧ PHAI=‘Nam’ TENNV Tung Hung (NHANVIEN)) Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 29 Mệnh đề SELECT (tt) Tên bí danh SELECT MANV, HONV AS HO, TENLOT AS ‘TEN LOT’, TENNV AS TEN FROM NHANVIEN WHERE PHG=5 AND PHAI=‘Nam’ MANV 33344555 98798798 ρ MANV,HO,TEN LOT,TEN ( π HO TEN LOT Nguyen Thanh Nguyen Manh MANV,HONV,TENLOT,TENNV( Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN TEN Tung Hung σ PHG=5∧PHAI=‘Nam’(NHANVIEN))) 30 15 Mệnh đề SELECT (tt) Mở rộng SELECT MANV, HONV + ‘ ’ + TENLOT + ‘ ’ + TENNV AS ‘HO TEN’ FROM NHANVIEN WHERE PHG=5 AND PHAI=‘Nam’ MANV 333445555 987987987 ρ MANV,HO TEN( π HO TEN Nguyen Thanh Tung Nguyen Manh Hung MANV,HONV+TENLOT+TENNV( σ PHG=5∧PHAI=‘Nam’(NHANVIEN))) Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 31 Mệnh đề SELECT (tt) Mở rộng SELECT MANV, LUONG*1.1 AS ‘LUONG10%’ FROM NHANVIEN WHERE PHG=5 AND PHAI=‘Nam’ MANV 333445555 987987987 ρ MANV,LUONG10%( π MANV,LUONG*1.1( Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN LUONG10% 33000 27500 σ PHG=5∧PHAI=‘Nam’(NHANVIEN))) 32 16 Mệnh đề SELECT (tt) Loại bỏ dòng trùng SELECT LUONG DISTINCT LUONG FROM NHANVIEN WHERE PHG=5 AND PHAI=‘Nam’ LUONG 30000 25000 25000 38000 38000 - Tốn chi phí - Người dùng muốn thấy Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 33 Ví dụ Cho biết MANV TENNV làm việc phòng ‘Nghien cuu’ R1 ← NHANVIEN KQ ← MANV, TENNV ( π PHONGBAN TENPHG=‘Nghien cuu’(R1)) σ PHG=MAPHG SELECT MANV, TENNV FROM NHANVIEN, PHONGBAN WHERE TENPHG=‘Nghien cuu’ AND PHG=MAPHG Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 34 17 Mệnh đề WHERE SELECT MANV, TENNV Biểu thức luận lý FROM NHANVIEN, PHONGBAN WHERE TENPHG=‘Nghien cuu’ AND PHG=MAPHG TRUE TRUE Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 35 Mệnh đề WHERE (tt) Độ ưu tiên SELECT MANV, TENNV FROM NHANVIEN, PHONGBAN WHERE (TENPHG=‘K Toan’ OR TENPHG=‘Quan ly’) AND PHG=MAPHG Cơ sở liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 36 18 Mệnh đề WHERE (tt) BETWEEN SELECT MANV, TENNV FROM NHANVIEN WHERE LUONG>20000 AND LUONG