intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Cơ sở dữ liệu - Chương 5: SQL (Structured Query Language)

Chia sẻ: Phạm Hồng Phương | Ngày: | Loại File: PDF | Số trang:24

161
lượt xem
22
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Cơ sở dữ liệu chương 5: SQL (Structured Query Language) trình bày nội dung về kiểu dữ liệu, các lệnh định nghĩa dữ liệu, truy vấn dữ liệu, cập nhập dữ liệu, lệnh xóa bảng, truy vấn cơ bản, các loại mệnh đề. Hãy tham khảo tài liệu này vì sẽ giúp quá trình học tập và giảng dạy được tốt hơn.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Cơ sở dữ liệu - Chương 5: SQL (Structured Query Language)

  1. Chương 5 SQL (Structured Query Language) Nội dung chi tiết Giới thiệu Định nghĩa dữ liệu Truy vấn dữ liệu Cập nhật dữ liệu Khung nhìn (view) Chỉ mục (index) Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 2 1
  2. Giới thiệu Ngôn ngữ ĐSQH - Cách thức truy vấn dữ 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 chỉ cần đưa ra nội dung cần truy vấn - Được phát triển bởi IBM (1970s) - Được gọi là SEQUEL - Được ANSI công nhận và phát triển thành chuẩn SQL-86 SQL-92 SQL-99 Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 3 Giới thiệu (tt) SQL gồm - Định nghĩa dữ liệu (DDL) - Thao tác dữ liệu (DML) - Định nghĩa khung nhìn Lý thuyết : Chuẩn SQL-92 - Ràng buộc toàn vẹn Ví dụ : SQL Server - Phân quyền và 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 ~ bộ Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 4 2
  3. Nội dung chi tiết Giới thiệu Định nghĩa dữ liệu - Kiểu dữ liệu - Các lệnh định nghĩa dữ liệu Truy vấn dữ liệu Cập nhật dữ liệu Khung nhìn (view) Chỉ mục (index) Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 5 Định nghĩa dữ liệu Là ngôn ngữ mô tả - Lược đồ cho mỗi quan hệ - Miền giá trị tương ứng của từng thuộc tính - Ràng buộc toàn vẹn - Chỉ mục trên mỗi 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ở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 6 3
  4. Kiểu dữ 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ở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 7 Kiểu dữ 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 giờ (datetime) - DATE gồm ngày, tháng và năm - TIME gồm giờ, phút và giây - TIMESTAMP gồm ngày và giờ Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 8 4
  5. Lệnh tạo Database - bảng CREATE DATABASE Để định nghĩa một bảng - Tên bảng - Các thuộc tính Tên thuộc tính Kiểu dữ liệu Các RBTV trên thuộc tính Cú pháp CREATE TABLE ( [], [], … [] ) Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 9 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ở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 10 5
  6. 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ở dữ 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ở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 12 6
  7. 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ở dữ 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ở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 14 7
  8. 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ở dữ 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ở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 16 8
  9. 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ở dữ 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ở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 18 9
  10. 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ở dữ 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 cả dữ liệu của bảng cũng bị xóa Cú pháp DROP TABLE Ví dụ DROP TABLE PHONGBAN DROP TABLE NHANVIEN DROP TABLE PHANCONG Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 20 10
  11. 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ở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 21 Lệnh tạo và xóa miền giá trị Tạo ra 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 DROP DOMAIN AS Ví dụ CREATE DOMAIN Chuoi AS VARCHAR(50) DROP DOMAIN Chuoi Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 22 11
  12. 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 Khung nhìn (view) Chỉ mục (index) Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 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 ĐT-TH - CĐ KTCN-ĐN 24 12
  13. Truy vấn cơ bản (SELECT) Cú pháp tổng quát SELECT FROM < Danh sách các bảng> WHERE GROUP BY HAVING < Điều kiện nhóm> ORDER BY < Danh sách cột cần sắp xếp> Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 25 Truy vấn cơ bản - Tên các cột cần được hiển thị trong kết quả truy vấn - Tên các bảng liên quan đến câu truy vấn - Biểu thức boolean xác định dòng nào sẽ được rút trích - Nối các biểu thức: AND, OR, và NOT - Phép toán: < , > , ≤ , ≥ , ≠ , =, LIKE, BETWEEN, EXISTS, ANY/SOME, ALL, IN Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 26 13
  14. Truy vấn cơ bản (tt) SQL và ĐSQH πSELECT ×FROM σ WHERE πL (σC (R)) SELECT L FROM R WHERE C Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 27 Ví dụ Lấy tất cả các cột của SELECT * quan hệ kết quả FROM NHANVIEN WHERE PHG=5 MANV HONV TENLOT TENNV NGSINH DCHI PHAI LUONG MA_NQL PHG 333445555 Nguyen Thanh Tung 12/08/1955 638 NVC Q5 Nam 40000 888665555 5 987987987 Nguyen Manh Hung 09/15/1962 Ba Ria VT Nam 38000 333445555 5 σPHG=5 (NHANVIEN) Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 28 14
  15. Mệnh đề SELECT SELECT MANV, HONV, TENLOT, TENNV FROM NHANVIEN WHERE PHG=5 AND PHAI=‘Nam’ MANV HONV TENLOT TENNV 333445555 Nguyen Thanh Tung 987987987 Nguyen Manh Hung π MANV,HONV,TENLOT,TENNV( σ PHG=5 ∧ PHAI=‘Nam’ (NHANVIEN)) Cơ sở dữ 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 HO TEN LOT TEN 33344555 Nguyen Thanh Tung 98798798 5 Nguyen Manh Hung 7 ρ MANV,HO,TEN LOT,TEN ( π MANV,HONV,TENLOT,TENNV( σ PHG=5∧PHAI=‘Nam’(NHANVIEN))) Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 30 15
  16. Mệnh đề SELECT (tt) Mở rộng SELECT MANV, HONV + ‘ ’ + TENLOT + ‘ ’ + TENNV AS ‘HO TEN’ FROM NHANVIEN WHERE PHG=5 AND PHAI=‘Nam’ MANV HO TEN 333445555 Nguyen Thanh Tung 987987987 Nguyen Manh Hung ρ MANV,HO TEN( π MANV,HONV+TENLOT+TENNV( σ PHG=5∧PHAI=‘Nam’(NHANVIEN))) Cơ sở dữ 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 LUONG10% 333445555 33000 987987987 27500 ρ MANV,LUONG10%( π MANV,LUONG*1.1( σ PHG=5∧PHAI=‘Nam’(NHANVIEN))) Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 32 16
  17. Mệnh đề SELECT (tt) Loại bỏ các dòng trùng nhau SELECT LUONG DISTINCT LUONG FROM NHANVIEN WHERE PHG=5 AND PHAI=‘Nam’ LUONG 30000 25000 - Tốn chi phí 38000 25000 38000 - Người dùng muốn thấy Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 33 Ví dụ Cho biết MANV và TENNV làm việc ở phòng ‘Nghien cuu’ R1 ← NHANVIEN PHONGBAN PHG=MAPHG KQ ← MANV, TENNV (π σ TENPHG=‘Nghien cuu’(R1)) SELECT MANV, TENNV FROM NHANVIEN, PHONGBAN WHERE TENPHG=‘Nghien cuu’ AND PHG=MAPHG Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 34 17
  18. 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ở dữ 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ở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 36 18
  19. BETWEEN Mệnh đề WHERE (tt) SELECT MANV, TENNV FROM NHANVIEN WHERE LUONG>20000 AND LUONG
  20. LIKE Mệnh đề WHERE (tt) SELECT MANV, TENNV FROM NHANVIEN WHERE DCHI LIKE ‘Nguyen _ _ _ _’ Ký tự bất kỳ SELECT MANV, TENNV FROM NHANVIEN WHERE DCHI LIKE ‘Nguyen %’ Chuỗi bất kỳ Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 39 Mệnh đề WHERE (tt) NOT LIKE SELECT MANV, TENNV FROM NHANVIEN WHERE HONV LIKE ‘Nguyen’ SELECT MANV, TENNV FROM NHANVIEN WHERE HONV NOT NOT LIKE ‘Nguyen’ Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 40 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2