Cơ Sở Dữ Liệu ĐH Cần Thơ Chương 4 pps

52 526 4
Cơ Sở Dữ Liệu ĐH Cần Thơ Chương 4 pps

Đ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 Chương 4. NGÔN NG 4. NGÔN NG Ữ Ữ SQL SQL GV: Trần Ngân Bình tnbinh@cit.ctu.edu.vn 4. 2 N N ộ ộ i Dung i Dung  Giới thiệu ngôn ngữ SQL  Truy vấn dữ liệu bằng lệnh SELECT  Cậpnhật dữ liệu (INSERT – Thêm, DELETE – Xóa, UPDATE – Sửa) 4. 3 M M ụ ụ c tiêu c c tiêu c ủ ủ a SQL a SQL  Một cách lý tưởng, ngôn ngữ CSDL phải cho phép người dùng: ) Tạo CSDL và cấu trúc quan hệ ) Thực hiện việc xen, sửa, xóa dữ liệu trên các quan hệ. ) Thực hiện các câu truy vấn đơn giản và phức tạp.  Phải thực hiện các công việc này với công sức bỏ ra là nhỏ nhất và cú pháp lệnh phải dễ học.  Có thể sử dụng như nhau trên các HQTCSDL khác nhau (~ tuân theo chuẩn nào đó). 4. 4 L L ị ị ch s ch s ử ử ph ph á á t tri t tri ể ể n c n c ủ ủ a SQL a SQL  Năm 1974, D. Chamberlin (IBM San Jose Lab) định nghĩa ngôn ngữ SEQUEL (Structured English Query Language).  Một phiên bản sửa chữa, SEQUEL/2, đã được đưa ra vào năm 1976 nhưng sau đó đổi tên thành SQL vì lý do pháp lý.  Sau đóIBM tạo ra một bản mẫu HQTCSDL gọi là System R, dựa trên SEQUEL/2.  Tuy nhiên gốc rễ của SQL là từ ngôn ngữ SQUARE (Specifying Queries as Relational Expressions), là ngôn ngữ đã có trước dự án System R.  Vào cuối 70s, ORACLE xuất hiện và được xem là HQTCSDL thương mại đầu tiên dựa trên SQL. 4. 5 L L ị ị ch s ch s ử ử ph ph á á t tri t tri ể ể n c n c ủ ủ a SQL a SQL  Năm 1987, ANSI và ISO công bố chuẩn đầu tiên cho SQL.  Năm 1989, ISO công bố thêm phần phụ lục định nghĩa một ‘Nét cải tiến cho toàn vẹn’.  Năm 1992, phiên bản chỉnh sửa đầu tiên của chuẩn này có mặt, mang tên SQL2 hay SQL-92.  Năm 1999, SQL:1999 được phát hành với các chuẩn hỗ trợ cho quản lý dữ liệu hướng đối tượng.  Vào cuối năm 2003, SQL:2003 ra đời. 4. 6 Ngôn Ng Ngôn Ng ữ ữ SQL SQL  SQL là một ngôn ngữ phi thủ tục với hai thành phần chính: ) DDL (Data Definition Language) dùng để định nghĩa cấu trúc của CSDL. ANSI chia DDL gồm 2 phần:  DDL gồm các lệnh để định nghĩa cấu trúc của CSDL: CREATE TABLE, CREATE VIEW, ALTER TABLE,…  DCL (Data Control Language) gồm các lệnh để điều khiển quyền truy cập trên dữ liệu: GRANT, REVOKE,… ) DML (Data Manipulation Language) để truy xuất và cập nhật dữ liệu: INSERT, UPDATE, DELETE, SELECT, … 4. 7 Câu l Câu l ệ ệ nh SQL nh SQL  Hầu hết các phần trong câu lệnh SQL là không phân biệt chữ hoa chữ thường, trừ các ký tự trong chuỗi dữ liệu.  Tuy câu lệnh SQL có hình thức tự do nhưng để dễ đọc, ta nên: ) Viết mỗi mệnh đề của lệnh trên một dòng riêng ) Viết bắt đầu một mệnh đề thẳng hàng với các mệnh đề khác ) Nếu một mệnh đề có nhiều vế thì nên viết mỗi vế trên một dòng và thục vào trong mệnh đề đó.  Ví dụ: SELECT Hten_nv, Cviec FROM Nhan_vien WHERE Phai = ‘nam’ AND (Ma_phong=30 OR Ma_phong=40)  Câu lệnh SQL gồm 2 thành phần: Từ khóa và từ do người dùng định nghĩa (tên bảng, tên cột, ) 4. 8 C C ú ú ph ph á á p câu l p câu l ệ ệ nh SQL nh SQL  Cú pháp của lệnh SQL được giới thiệu theo dạng mở rộng của ký hiệu BNF: )Chữ hoa đại diện cho từ khóa. )Chữ thường đại diện cho các từ của người dùng định nghĩa )Dấu | chỉ sự lựa chọn. )Dấu { chỉ phần tử bắt buộc phải có. )Dấu [ chỉ phần tử tùy chọn (không bắt buộc). )Dấu chỉ thành phần có thể lặp lại từ 0 đến nhiều lần. 4. 9 CSDL v CSDL v í í d d ụ ụ 1. PHONG (MA_PHONG, TEN_PHONG, TRUONG_PHONG ) Mỗi phòng có một mã duy nhất, một tên phòng, trưởng phòng là mã nhân viên của trưởng phòng. 2. NHANVIEN (MA_NV, HTEN_NV, PHAI, CVIEC, LUONG, PHU_CAP, MA_PHONG) Nhân viên có một mã duy nhất, một họ tên, phái, công việc, lương, phụ cấp và thuộc một phòng nào đó. 3. TĐO_NN (MA_NV, NGOAINGU, BANG_CAP) Một nhân viên có thể biết nhiều ngoại ngữ,mỗi ngoại ngữ có thể có các bằng cấp khác nhau. 4. 10 Truy Truy v v ấ ấ n n đơn đơn gi gi ả ả n n  Truy vấnDL từ mộtbảng, có thểđịnh thứ tự xuấthiện các cột SELECT [ DISTINCT | ALL] { * | <tên cột 1> [,<tên cột 2> [, ] ] } FROM <tên bảng> ) DISTINCT: Chỉ hiển thị những dòng phân biệt. ) ALL: hiển thị tất cả (chế độ mặc định) ) Lưu ý: Khác với phép chiếu của ĐSQH, các dòng trùng nhau của bảng kết quả không tự động bị loại bỏ. ) Dấu hoa thị (*) thay thế tất cả các cột trong bảng.  Thứ tự các mệnh đề không được thay đổi.  SELECT và FROM là hai mệnh đề duy nhất bắt buộc phải có. [...]... 50 ) Dạng ĐK 5: Tìm kiếm theo phạm vi: [NOT] BETWEEN AND Ví dụ: Hiển thị họ tên các NV có mức lương từ 3500 đến 45 00 SELECT Hten_nv, Luong FROM Nhan_vien WHERE Luong BETWEEN 4 15 3500 AND 45 00 Các dạng điều kiện chọn (4) Dạng ĐK 6: Tìm kiếm theo mẫu dạng chuỗi: [NOT] LIKE _ : đại diện cho một ký tự bất kỳ % : đại diện cho một chuỗi ký tự bất kỳ Ví dụ:... thuộc tính với hằng có kiểu tương thích: so sánh Ví dụ: Hiển thị họ tên các NV nam có công việc là thư ký SELECT Hten_nv FROM Nhan_vien WHERE Phai = 'Nam' AND 4 14 UPPER(cviec) = ‘THU KY’ Chọn các dòng trong bảng (3) Dạng ĐK 4: So sánh cột với một tập gồm nhiều giá trị: [NOT] IN () Ví dụ:Hiển thị họ tên các NV làm việc trong các phòng 10, 30 và 50 SELECT Hten_nv... Quỳnh Như SELECT * FROM WHERE Nhan_vien Hten_nv = ‘Lê Quỳnh Như’ Ví dụ: Hiển thị tên và tên công việc của các nhân viên nam đang làm việc trong các phòng 30, 40 SELECT Hten_nv, CVIEC FROM Nhan_vien WHERE Phai = ‘Nam’ AND (Ma_phong=30 OR Ma_phong =40 ) 4 13 Chọn các dòng trong bảng (2) Dạng ĐK 2: So sánh giá trị của các thuộc tính với nhau: so sánh Ví dụ: Tìm những nhân viên có lương bằng... dụ: Có bao nhiêu NV trong hồ sơ nhân viên SELECT COUNT(*) AS Tong_So_NV FROM Nhan_vien 4 18 Các hàm kết tập – Ví dụ Cho biết mức lương cao nhất, thấp nhất và trung bình SELECT MAX( Luong), MIN( Luong), AVG( Luong) FROM Nhan_vien Tính tổng lương phải trả cho phòng 40 SELECT SUM (Luong) WHERE FROM Nhan_vien Ma_phong =40 Cho biết tổng số thư ký nữ và lương trung bình của họ SELECT COUNT(*), AVG (Luong)... WHERE Phai = 'Nu' AND Cviec = ‘Thu Ky’ Cho biết phụ cấp thấp nhất của các công việc quản lý SELECT MIN (Phu_cap) As FROM Nhan_vien PCAP_THAPNHT WHERE Cviec LIKE ‘Quan Ly %‘ 4 19 Tính toán với SQL Các toán tử này được dùng với dữ liệu loại số và bao gồm toán tử cộng (+), trừ (-), nhân (*), chia (/) Các toán tử này chỉ có thể được dùng trong các mệnh đề: SELECT, HAVING và WHERE Ví dụ: Hiển thị họ tên,... dần SELECT Hten_nv, Luong, Phu_cap, (Luong + Phu_cap)*12 As FROM Thu_nhap Nhan_vien ORDER BY 4 DESC Ví dụ: Hiển thị tất cả nhân viên có phụ cấp nhiều hơn 15% mức lương SELECT Hten_nv, Luong, Phu_cap WHERE Phu_cap > 0.15 *Luong 4 20 FROM Nhan_vien Truy vấn con (1) Trong trường hợp điều kiện chọn ở mệnh đề WHERE cần truy cập thông tin ở các bảng khác với bảng đang truy vấn để kiểm tra điều kiện Ta có thể... TRUONG_PHONG FROM 4 24 PHONG ) Các dạng điều kiện chứa Select con (3) Dạng 5: [NOT] EXISTS (): Đk trả về của select con khác rỗng đúng khi kết quả Ví dụ: Hiển thị họ tên những nhân viên có công việc và lương bằng với 1 nhân viên khác SELECT HTEN_NV WHERE FROM NHAN_VIEN AS A EXISTS ( SELECT * FROM NHAN_VIEN AS B WHERE A.Cviec = B.Cviec AND A.Luong = B.Luong AND A.Ma_NV B Ma_NV) 4 25 Các quy... dòng Dạng 2, 3, 4 Nhiều cột Dạng 5 4 26 Gom nhóm các dòng Đặc tính gom nhóm cho phép chúng ta thực hiện các chức năng trên một nhóm các dòng như là một dòng riêng biệt Sử dụng mệnh đề GROUP BY sau mệnh đề FROM hoặc WHERE trong lệnh select SELECT , FROM [ WHERE ] GROUP BY [, [, ]] 4 27 Gom nhóm... truy vấn con 4 21 Truy vấn con (1) Các truy vấn con sẽ nằm trong mệnh đề WHERE của truy vấn chính SELECT FROM WHERE Truy vấn chính (truy vấn cha) Truy vấn con 1 ( SELECT FROM [WHERE ] ) [AND | OR Truy vấn con 2 ( SELECT FROM [WHERE ] ) [ ] ] 4 22 Các... FROM Nhan_vien WHERE Ma_phong =30 ) 4 23 Các dạng điều kiện chứa Select con (2) Dạng 3: ANY|SOME (): ĐK đúng khi giá trị của cột so sánh đúng với bất kỳ một giá trị nào trả về từ select con Ví dụ: Hiển thị họ tên trưởng phòng của tất cả các phòng SELECT HTEN_NV WHERE FROM NHAN_VIEN MA_NV = ANY ( SELECT TRUONG_PHONG FROM PHONG ) Dạng 4: [NOT] IN (): . Chương Chương 4. NGÔN NG 4. NGÔN NG Ữ Ữ SQL SQL GV: Trần Ngân Bình tnbinh@cit.ctu.edu.vn 4. 2 N N ộ ộ i Dung i Dung  Giới thiệu ngôn ngữ SQL  Truy vấn dữ liệu bằng lệnh SELECT  Cậpnhật dữ. điều khiển quyền truy cập trên dữ liệu: GRANT, REVOKE,… ) DML (Data Manipulation Language) để truy xuất và cập nhật dữ liệu: INSERT, UPDATE, DELETE, SELECT, … 4. 7 Câu l Câu l ệ ệ nh SQL nh. lương từ 3500 đến 45 00 SELECT Hten_nv, Luong FROM Nhan_vien WHERE Luong BETWEEN 3500 AND 45 00 4. 16 C C á á c c d d ạ ạ ng ng đi đi ề ề u u ki ki ệ ệ n n ch ch ọ ọ n n (4) (4)  Dạng ĐK 6: Tìm

Ngày đăng: 10/08/2014, 17:22

Từ khóa liên quan

Mục lục

  • Chương 4. NGÔN NGỮ SQL

  • Nội Dung

  • Mục tiêu của SQL

  • Lịch sử phát triển của SQL

  • Lịch sử phát triển của SQL

  • Ngôn Ngữ SQL

  • Câu lệnh SQL

  • Cú pháp câu lệnh SQL

  • CSDL ví dụ

  • Truy vấn đơn giản

  • Truy vấn đơn giản – ví dụ

  • Sắp xếp kết quả

  • Chọn các dòng trong bảng (1)

  • Chọn các dòng trong bảng (2)

  • Chọn các dòng trong bảng (3)

  • Các dạng điều kiện chọn (4)

  • Các hàm kết tập

  • Các hàm kết tập – cách dùng

  • Các hàm kết tập – Ví dụ

  • Tính toán với SQL

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

Tài liệu liên quan