Xem mẫu

  1. CƠ SỞ DỮ LIỆU ( Databases ) Chương 3: Ngôn ngữ truy vấn SQL
  2. Nội dung 1. Khái quát về ngôn ngữ truy vấn dữ liệu 2. Câu lệnh SELECT 3. Các hàm thao tác dữ liệu 4. Truy vấn thông tin từ nhiều bảng 5. Các lệnh cập nhật dữ liệu 6. Các lệnh liên quan tới cấu trúc 7. Các lệnh giao quyền truy cập CSDL 8. Bài tập Chương 3 - Ngôn ngữ truy vấn SQL 2
  3. 3.1. Giới thiệu SQL  SQL được xem là yếu tố chính đóng góp vào sự thành công của CSDL quan hệ khi áp dụng trong thực tế.  Là ngôn ngữ mức cao, người dùng chỉ cần xác định kết quả của truy vấn là gì, phần còn lại là tính toán và tối ưu hoá câu lệnh được DBMS đảm nhiệm.  1970: SQL (Structured Query Language) bắt nguồn từ ngôn ngữ SEQUEL (Structured English QUEry Language), ngôn ngữ được thiết kế tại tập đoàn IBM nhằm khi đưa ra hệ quản trị CSDL có tên là SYSTEM-R Chương 3 - Ngôn ngữ truy vấn SQL 3
  4. 3.1. Giới thiệu SQL (tt)  Năm 1976: SEQUEL được cải tiến thành SEQUEL2  Năm 1978-1979: SEQUEL2 được nâng cấp và đổi tên thành SQL (nhưng vẫn đọc là SEQUEL)  Chuẩn SQL đầu tiên có tên gọi SQL-86 (SQL1) được công nhận và chuẩn hóa bởi ANSI và ISO.  Năm 1992: SQL1 được mở rộng với nhiều tính năng mới và được gọi là SQL-92 (SQL2).  Năm 1999: Chuẩn SQL-99 (SQL3) ra đời  Phiên bản mới nhất hiện nay là SQL-2011 Chương 3 - Ngôn ngữ truy vấn SQL 4
  5. 3.1. Giới thiệu SQL (tt)  Ngôn ngữ giao thiết CSLD gồm: – DDL – Data Definition Language – DML – Data Manipulation Language – SQL – Structured Query Language – DCL – Data Control Language  SQL gồm 2 nhóm lệnh – DDL: Tạo cấu trúc CSDL – DML: Thao tác trên CDSDL • CREATE • SELECT • INSERT, UPDATE, DELETE… Chương 3 - Ngôn ngữ truy vấn SQL 5
  6. Lược đồ CSDL sử dụng NHANVIEN (MANV,HONV, TENLOT, TENNV, PHAI, LUONG, DIACHI, NGAYSINH, MA_NQL, PHG) PHONGBAN (MAPB, TENPB, TRPHG, NGAYBĐ) DIADIEM_PHG (MAPB, DIADIEM) DEAN (MADA, TENDA, NGAYBD, PHONG, DIADIEM_DA) PHANCONG (MANV, MADA, THOIGIAN) THANNHAN (MANV,TENTN,PHAI,NGAYSINH,QUANHE) Chương 3 - Ngôn ngữ truy vấn SQL 6
  7. 3.2. lệnh SELECT – Truy vấn dữ liệu  Gồm 3 mệnh đề cơ bản SELECT FROM WHERE – • Tên các cột cần hiển thị ở kết quả truy vấn – • Tên các bảng (nguồn) dữ liệu khi truy vấn – • Xác định biểu thức boolean xác định dòng (bộ) nào được trích ra • Nối các biểu thức: AND, OR, NOT • Phép toán: >,
  8. 3.2. lệnh SELECT (tt)  SQL và Đại số quan hệ  SELECT x FROM WHERE  L(C(R )) SELECT L FROM R WHERE C Chương 3 - Ngôn ngữ truy vấn SQL 8
  9. Ví dụ Lấy tất cả các cột SELECT * của quan hệ FROM NHANVIEN WHERE PHG=5  PHG=5(NHANVIEN) Chương 3 - Ngôn ngữ truy vấn SQL 9
  10. Mệnh đề SELECT Chương 3 - Ngôn ngữ truy vấn SQL 10
  11. Mệnh đề SELECT (tt)  Tên, Bí danh SELECT MANV, HONV AS 'Họ', TENLOT AS ‘Tên lót’, TENNV AS 'Tên' FROM NHANVIEN WHERE PHG=5 AND PHAI=‘Nam’ MANV,HO,TEN LOT,TEN (  MaNV,HONV,TENLOT,TENNV  PHG=5PHAI=‘Nam’(NHANVIEN))) Chương 3 - Ngôn ngữ truy vấn SQL 11
  12. Mệnh đề SELECT (tt)  Mở rộng: SELECT MANV, HONV +’ ‘+ TENLOT+’ ‘ TENNV AS ‘HO TEN’ FROM NHANVIEN WHERE PHG=5 AND PHAI=‘Nam’ Chương 3 - Ngôn ngữ truy vấn SQL 12
  13. Mệnh đề SELECT (tt)  Mở rộng: SELECT MANV, LUONG*1.1 AS ‘LUONG10%’ FROM NHANVIEN WHERE PHG=5 AND PHAI=‘Nam’ Chương 3 - Ngôn ngữ truy vấn SQL 13
  14. Mệnh đề SELECT (tt)  Loại bỏ các dòng trùng nhau SELECT LUONG FROM NHANVIEN SELECT DISTINCT LUONG WHERE PHG=5 AND PHAI=‘Nam’ FROM NHANVIEN WHERE PHG=5 AND PHAI=‘Nam’ Chương 3 - Ngôn ngữ truy vấn SQL 14
  15. Ví dụ  Cho biết MANV và TENNV làm việc ở phòng ‘Nghien cuu’ SELECT MANV, TENNV FROM NHANVIEN, PHONGBAN WHERE PHG=MAPHG AND TENPGH=‘Nghien cuu’ Chương 3 - Ngôn ngữ truy vấn SQL 15
  16. Mệnh đề WHERE Biểu thức luận lý SELECT MANV, TENNV FROM NHANVIEN, PHONGBAN WHERE PHG=MAPHG AND TENPHG=‘Nghien cuu’ TRUE TRUE Chương 3 - Ngôn ngữ truy vấn SQL 16
  17. Mệnh đề WHERE (tt)  Độ ưu tiên – Viết trước thực hiện trước – Trong ngoặc thực hiện trước SELECT MANV, TENNV FROM NHANVIEN, PHONGBAN WHERE (TENPHG=‘Nghien cuu’ OR TENPHG=‘Quan ly’) AND PHG=MAPHG Chương 3 - Ngôn ngữ truy vấn SQL 17
  18. Mệnh đề WHERE (tt)  BETWEEN SELECT MANV, TENNV FROM NHANVIEN WHERE LUONG>=2000000 AND LUONG
  19. Mệnh đề WHERE (tt)  IN  NOT IN SELECT MANV, TENNV SELECT MANV, TENNV FROM NHANVIEN FROM NHANVIEN WHERE PHG IN (4,5) WHERE PHG NOT IN (4,5) SELECT MANV, TENNV FROM NHANVIEN WHERE PHG = 4 OR PHG=5 Chương 3 - Ngôn ngữ truy vấn SQL 19
  20. Mệnh đề WHERE (tt)  LIKE – Lấy tất cả chuỗi giống với mẫu SELECT MANV, TENNV FROM NHANVIEN WHERE HONV LIKE ‘Nguyen_ _ _ _’ 1 Ký tự bất kỳ SELECT MANV, TENNV FROM NHANVIEN WHERE HONV LIKE ‘Nguyen %’ Nhiều ký tự bất kỳ  NOT LIKE – Lấy tất cả những chuỗi không giống Chương 3 - Ngôn ngữ truy vấn SQL 20
nguon tai.lieu . vn