1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Cơ sở dữ liệu: Chương 3 - ThS. Hồ Đắc Quán

24 3 0

Đ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

Cấu trúc

  • Slide 1

  • Nội dung

  • 1. SQL là gì?

  • 2. Môi trường SQL

  • 3. Dùng DDL để định nghĩa CSDL

  • 3. Dùng DDL để định nghĩa CSDL (tt)

  • Slide 7

  • 4. DML - Lệnh INSERT

  • 4. DML - Lệnh DELETE - Lệnh UPDATE

  • 4. DML - Lệnh SELECT

  • Slide 11

  • 4. DML - Ví dụ

  • 4. DML - Lệnh SELECT dùng ALIAS, hàm

  • 4.(tt)Lệnh SELECT dùng toán tử luận lý

  • 4. (tt) Lệnh SELECT dùng ORDER BY

  • 4. (tt) Lệnh SELECT dùng GROUP BY

  • 4. (tt) Lệnh SELECT dùng HAVING

  • 5. Phép kết nhiều bảng

  • 6. Subquery – Truy vấn con

  • 6. Subquery – Ví dụ

  • Slide 21

  • 6. (tt) Thí dụ correlated subquery

  • Slide 23

  • 6. (tt)Kết quả subquery làm bảng

Nội dung

Bài giảng Cơ sở dữ liệu - Chương 3 giới thiệu về ngôn ngữ truy vấn SQL. Chương này trình bày các nội dung chính như sau: Giới thiệu SQL, môi trường SQL, dùng DDL để định nghĩa CSDL, dùng DML để thao tác trên CSDL, các phép kết dữ liệu trên nhiều bảng, Subquery – truy vấn con. Mời các bạn cùng tham khảo.

Môn CƠ SỞ DỮ LIỆU Chương 3: Ngôn ngữ truy vấn SQL Nội dung Giới thiệu SQL Môi trường SQL Dùng DDL để định nghĩa CSDL Dùng DML để thao tác CSDL ◆ ◆ ◆ ◆ INSERT DELETE UPDATE SELECT Các phép kết liệu nhiều bảng Subquery – truy vấn SQL gì?  Structured Query Language – Ngơn ngữ truy vấn có cấu trúc  Ngơn ngữ chuẩn cho RDBMS (relational database management systems - hệ quản trị CSDL quan hệ)  Chuẩn SQL-92: ◆ Định nghĩa cấu trúc/ngữ nghĩa việc định nghĩa/thao tác liệu ◆ Định nghĩa cấu trúc liệu ◆ Hai chuẩn: level (minimal) level (complete) ◆ Khả mở rộng Môi trường SQL  Data Definition Language (DDL): Các lệnh mô tả CSDL, gồm tạo, sửa, xoá bảng ràng buộc  Data Manipulation Language (DML): Các lệnh thao tác truy vấn liệu  Data Control Language (DCL): Các lệnh điều khiển CSDL, gồm việc quản lý quyền hạn user Dùng DDL để định nghĩa CSDL  Data Definition Language (DDL)  Lệnh tạo bảng: CREATE TABLE  Lệnh sửa bảng: ALTER TABLE  Lệnh xóa bảng: DROP TABLE Dùng DDL để định nghĩa CSDL (tt) Cú pháp lệnh CREATE TABLE Các bước tạo bảng: Kiểu liệu cho thuộc tính Cột được/khơng phép null Các cột giá trị (khố dự tuyển) Khố – khóa ngoại Giá trị mặc định Ràng buộc miền trị Tạo bảng chỉ6mục Dùng DDL để định nghĩa CSDL (tt)  Lệnh ALTER TABLE dùng để thay đổi mô tả bảng ◆ ALTER TABLE CUSTOMER_T ADD (TYPE VARCHAR(2))  Lệnh DROP TABLE dùng để xoá bảng khỏi CSDL ◆ DROP TABLE CUSTOMER_T DML - Lệnh INSERT  Thêm liệu (bản ghi, hàng) vào bảng  Thêm liệu vào tất cột bảng: INSERT INTO CUSTOMER_T VALUES (001, ‘CONTEMPORARY Casuals’, 1355 S Himes Blvd.’, ‘Gainesville’, ‘FL’, 32601);  Thêm liệu vào cột định rõ bảng, cột lại nhận giá trị mặc định NULL: INSERT INTO PRODUCT_T (PRODUCT_ID, PRODUCT_DESCRIPTION,PRODUCT_FINISH, STANDARD_PRICE, PRODUCT_ON_HAND) VALUES (1, ‘End Table’, ‘Cherry’, 175, 8);  Thêm liệu từ bảng khác: INSERT INTO CA_CUSTOMER_T SELECT * FROM CUSTOMER_T WHERE STATE = ‘CA’; DML - Lệnh DELETE - Lệnh UPDATE  Lệnh Delete: Xoá liệu (bản ghi, hàng) bảng  Xoá hàng theo điều kiện: DELETE FROM CUSTOMER_T WHERE STATE = ‘HI’;  Xoá tất hàng bảng: DELETE FROM CUSTOMER_T;  Lệnh Update: Sửa liệu (bản ghi, hàng) bảng: UPDATE PRODUCT_T SET UNIT_PRICE = 775 WHERE PRODUCT_ID = 7; DML - Lệnh SELECT  Truy vấn (xem) liệu bảng, view  Các mệnh đề lệnh SELECT: SELECT: Danh sách cột kết lệnh truy vấn FROM: Danh sách bảng view để lấy liệu WHERE: Điều kiện lựa chọn hàng bảng GROUP BY: Nhóm hàng liệu theo loại HAVING: Điều kiện cho nhóm để lựa chọn nhóm kết ORDER BY: Sắp xếp liệu thu 10 Thứ tự xử lý mệnh đề lệnh SELECT 11 DML - Ví dụ  Tìm sản phẩm có giá < $275 SELECT PRODUCT_NAME, STANDARD_PRICE FROM PRODUCT_V WHERE STANDARD_PRICE < 275 12 DML - Lệnh SELECT dùng ALIAS, hàm  Alias tên thay cho bảng cột, cột kết lấy tên alias: SELECT CUST.CUSTOMER AS NAME, CUST.CUSTOMER_ADDRESS FROM CUSTOMER_V CUST WHERE NAME = ‘Nguyen Van A’;  Dùng hàm tập hợp COUNT để tìm tổng số hố đơn có bảng hố đơn SELECT COUNT(*) FROM ORDER_LINE_V WHERE ORDER_ID = 1004 13 4.(tt)Lệnh SELECT dùng toán tử luận lý  Các toán tử AND, OR NOT dùng mệnh đề WHERE SELECT PRODUCT_DESCRIPTION, PRODUCT_FINISH, STANDARD_PRICE FROM PRODUCT_V WHERE (PRODUCT_DESCRIPTION LIKE ‘%Desk’ OR PRODUCT_DESCRIPTION LIKE ‘%Table’) AND UNIT_PRICE > 300; LIKE dùng để so sánh chuỗi Dấu % chuỗi ‘%Desk’ chuỗi kết thúc “Desk” 14 (tt) Lệnh SELECT dùng ORDER BY  Sắp xếp kết theo thứ tự STATE tăng dần, state theo CUSTOMER_NAME tăng dần Dùng từ khóa ASC, DESC SELECT CUSTOMER_NAME, CITY, STATE FROM CUSTOMER_V WHERE STATE IN (‘FL’, ‘TX’, ‘CA’, ‘HI’) ORDER BY STATE, CUSTOMER_NAME; IN lựa chọn hàng có giá trị STATE FL, TX, CA, HI Tốt OR 15 (tt) Lệnh SELECT dùng GROUP BY  Dùng với hàm tập hợp SELECT STATE, COUNT(STATE) FROM CUSTOMER_V GROUP BY STATE; Muốn dùng cột đơn trị với hàm tập hợp phải đưa cột vào mệnh đề GROUP BY 16 (tt) Lệnh SELECT dùng HAVING  Chỉ dùng với GROUP BY, làm điều kiện lựa chọn nhóm hàng SELECT STATE, COUNT(STATE) FROM CUSTOMER_V GROUP BY STATE HAVING COUNT(STATE) > 1; Lựa chọn nhóm có nhiều hàng Giống mệnh đề WHERE hoạt động nhóm hàng riêng rẽ 17 Phép kết nhiều bảng  Cho biết thông tin cần thiết để xuất hố đơn có số 1006 SELECT CUSTOMER_T.CUSTOMER_ID, CUSTOMER_NAME, CUSTOMER_ADDRESS, CITY, Phép kết 4QUANTITY, bảng PRODUCT_NAME, liệu SATE, POSTAL_CODE, ORDER_T.ORDER_ID, ORDER_DATE, UNIT_PRICE, (QUANTITY * UNIT_PRICE) FROM CUSTOMER_T, ORDER_T, ORDER_LINE_T, PRODUCT_T WHERE CUSTOMER_T.CUSTOMER_ID = ORDER_LINE.CUSTOMER_ID ORDER_T.ORDER_ID = ORDER_LINE_T.ORDER_ID AND AND ORDER_LINE_T.PRODUCT_ID = PRODUCT_PRODUCT_ID AND ORDER_T.ORDER_ID = 1006; Mỗi cặp bảng cần điều kiện so sánh khố khố ngoại mệnh đề WHERE 18 Subquery – Truy vấn  Subquery = đặt câu truy vấn (SELECT) bên câu truy vấn khác  Đặt ở: ◆ Trong điều kiện mệnh đề WHERE ◆ Trong mệnh đề FROM ◆ Trong mệnh đề HAVING  Hai loại subquery: ◆ Non correlated – thực thi lần, không phụ thuộc vào liệu từ câu truy vấn ◆ Correlated – thực thi hàng trả từ câu truy vấn ngồi, dùng với tốn tử EXISTS 19 Subquery – Ví dụ  Cho biết khách hàng có hố đơn IN kiểm tra giá trị CUSTOMER_ID hàng có nằm danh sách kết subquery SELECT CUSTOMER_NAME FROM CUSTOMER_T WHERE CUSTOMER_ID IN (SELECT DISTINCT CUSTOMER_ID FROM ORDER_T); Subquery nằm dấu ngoặc đơn, kết từ subquery dùng mệnh đề WHERE câu truy vấn ngồi 20 Q trình xử lý noncorrelated subquery Subquery thực thi lần 21 (tt) Thí dụ correlated subquery  Cho biết hố đơn có sản phẩm hồn tất natural ash EXISTS cho giá trị TRUE kết SELECT DISTINCT ORDER_ID FROM ORDER_LINE_T subquery khác rỗng, WHERE EXISTS FALSE (SELECT * FROM PRODUCT_T WHERE PRODUCT_ID = ORDER_LINE_T.PRODUCT_ID AND PRODUCT_FINISH = ‘Natural ash’); Subquery kiểm tra giá trị có từ câu truy vấn ngồi 22 Q trình xử lý correlated Subquery thực thi hàng subquery liệu từ câu truy vấn 23 (tt)Kết subquery làm bảng  Cho biết sản phẩm có giá cao giá trung bình Cột subquery Subquery tạo nên hàm tập hợp có tên bảng dẫn xuất alias, tên dùng mệnh STANDARD_PRICE, đề SELECT PRODUCT_DESCRIPTION, AVGPRICE FROM dùng câu truy vấn FROM câu truy vấn (SELECT AVG(STANDARD_PRICE) AVGPRICE FROM PRODUCT_T), PRODUCT_T ngoài WHERE STANDARD_PRICE > AVG_PRICE; Mệnh đề WHERE chứa hàm tập hợp, 24 trường hợp dùng kết từ subquery ... DML - Lệnh INSERT  Thêm liệu (bản ghi, hàng) vào bảng  Thêm liệu vào tất cột bảng: INSERT INTO CUSTOMER_T VALUES (001, ‘CONTEMPORARY Casuals’, 135 5 S Himes Blvd.’, ‘Gainesville’, ‘FL’, 32 601);... cấu trúc  Ngơn ngữ chuẩn cho RDBMS (relational database management systems - hệ quản trị CSDL quan hệ)  Chuẩn SQL-92: ◆ Định nghĩa cấu trúc/ngữ nghĩa việc định nghĩa/thao tác liệu ◆ Định nghĩa... từ bảng khác: INSERT INTO CA_CUSTOMER_T SELECT * FROM CUSTOMER_T WHERE STATE = ‘CA’; DML - Lệnh DELETE - Lệnh UPDATE  Lệnh Delete: Xoá liệu (bản ghi, hàng) bảng  Xoá hàng theo điều kiện: DELETE

Ngày đăng: 20/05/2021, 01:36