Tải bản đầy đủ (.pdf) (95 trang)

Cơ Sở Dữ Liệu Bưu Chính Viễn Thông.pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.05 MB, 95 trang )

lOMoARcPSD|21861747

SQL - sql
Cơ Sở Dữ Liệu (Học viện Công nghệ Bưu chính Viễn thơng)

Studocu is not sponsored or endorsed by any college or university
Downloaded by Tr?n Du?n Official ()


lOMoARcPSD|21861747

Ngôn ngữ truy vấn SQL

Downloaded by Tr?n Du?n Official ()


lOMoARcPSD|21861747

Nội dung
1.
2.
3.
4.
5.
6.
7.
8.

Khái quát về ngôn ngữ truy vấn dữ liệu
Câu lệnh SELECT
Các hàm thao tác dữ liệu


Truy vấn thông tin từ nhiều bảng
Các lệnh cập nhật dữ liệu
Các lệnh liên quan tới cấu trúc
Các lệnh giao quyền truy cập CSDL
Bài tập

2
Downloaded by Tr?n Du?n Official ()


lOMoARcPSD|21861747

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 tố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 đồn IBM
nhằm khi đưa ra hệ quản trị CSDL có tên là SYSTEM-R

3
Downloaded by Tr?n Du?n Official ()


lOMoARcPSD|21861747

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
4
Downloaded by Tr?n Du?n Official ()


lOMoARcPSD|21861747

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…
5
Downloaded by Tr?n Du?n Official ()


lOMoARcPSD|21861747

Cho các lược đồ quan hệ
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)
6
Downloaded by Tr?n Du?n Official ()


lOMoARcPSD|21861747

3.2. lệnh SELECT – Truy vấn dữ liệu
 Gồm 3 mệnh đề cơ bản
SELECT <danh sách các cột>
FROM <danh sách các bảng>
WHERE <điều kiện>

– <danh sách các cột>


• Tên các cột cần hiển thị ở kết quả truy vấn

– <danh sách các bảng>

• Tên các bảng (nguồn) dữ liệu khi truy vấn

– <điều kiệ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 tốn: >, <, <=, >=, =, <>, LIKE, BETWEEN
7
Downloaded by Tr?n Du?n Official ()


lOMoARcPSD|21861747

2.

lệnh SELECT (tt)
 SQL và Đại số quan hệ



SELECT <danh sách các cột>

x


FROM <danh sách các bảng>
WHERE <điều kiện>


SELECT

L

FROM

R

WHERE C

L(

C(R ))
8

Downloaded by Tr?n Du?n Official ()


lOMoARcPSD|21861747

Ví dụ
Lấy tất cả các cột
của quan hệ

SELECT *
FROM NHANVIEN

WHERE PHG=5



PHG=5(NHANVIEN)

9
Downloaded by Tr?n Du?n Official ()


lOMoARcPSD|21861747

Mệnh đề SELECT

10
Downloaded by Tr?n Du?n Official ()


lOMoARcPSD|21861747

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)))

11
Downloaded by Tr?n Du?n Official ()


lOMoARcPSD|21861747

Mệnh đề SELECT (tt)
 Mở rộng:
SELECT MANV, HONV +’ ‘+ TENLOT+’ ‘ TENNV AS ‘HO TEN’
FROM NHANVIEN
WHERE PHG=5 AND PHAI=‘Nam’

12
Downloaded by Tr?n Du?n Official ()


lOMoARcPSD|21861747

Mệnh đề SELECT (tt)
 Mở rộng:

SELECT MANV, LUONG*1.1 AS ‘LUONG10%’
FROM NHANVIEN
WHERE PHG=5 AND PHAI=‘Nam’

13
Downloaded by Tr?n Du?n Official ()


lOMoARcPSD|21861747

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’

14
Downloaded by Tr?n Du?n Official ()


lOMoARcPSD|21861747

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’

15
Downloaded by Tr?n Du?n Official ()


lOMoARcPSD|21861747

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

16
Downloaded by Tr?n Du?n Official ()


lOMoARcPSD|21861747


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

17
Downloaded by Tr?n Du?n Official ()


lOMoARcPSD|21861747

Mệnh đề WHERE (tt)
 BETWEEN
SELECT MANV, TENNV
FROM NHANVIEN
WHERE LUONG>=2000000 AND LUONG<=3000000
SELECT MANV, TENNV
FROM NHANVIEN
WHERE LUONG BETWEEN 2000000 AND 3000000

 NOT BETWEEN
SELECT MANV, TENNV
FROM NHANVIEN
WHERE LUONG NOT BETWEEN 2000000 AND3000000
18
Downloaded by Tr?n Du?n Official ()



lOMoARcPSD|21861747

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

19
Downloaded by Tr?n Du?n Official ()


lOMoARcPSD|21861747


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
20
Downloaded by Tr?n Du?n Official ()


lOMoARcPSD|21861747

Mệnh đề WHERE (tt)
 NULL
– Sử dụng trong trường hợp:
• Khơng biết (value unknown)
• Khơng thể áp dụng (value inapplicable)
• Không tồn tại (value un witheld)
SELECT MANV, TENNV

FROM NHANVIEN
WHERE MA_NQL IS NULL

SELECT MANV, TENNV
FROM NHANVIEN
WHERE MA_NQL IS NOT NULL
21
Downloaded by Tr?n Du?n Official ()


lOMoARcPSD|21861747

Mệnh đề WHERE (tt)
 Không sử dụng WHERE
– Kết quả là phép tích “đề-các”

22
Downloaded by Tr?n Du?n Official ()


lOMoARcPSD|21861747

Mệnh đề FROM
 Tên, Bí danh
SELECT TENPHG, DIADIEM
FROM PHONGBAN, DDIEM_PHG
WHERE MAPHG=MAPHG

SELECT TENPHG, DIADIEM
FROM PHONGBAN, DDIEM_PHG

WHERE PhongBan.MAPHG=DDiem_PHG.MAPHG

Bí danh
23
Downloaded by Tr?n Du?n Official ()


lOMoARcPSD|21861747

Mệnh đề ORDER BY
 Dùng để hiển thị kết quả truy vấn theo thứ tự
 Cú pháp:
SELECT <danh sách cột>
FROM <danh sách các bảng>
WHERE <điều kiện>
ORDER BY <danh sách cột sắp xếp>

– ASC: Sắp xếp tăng (mặc định)
– DESC: Sắp xếp giảm

24
Downloaded by Tr?n Du?n Official ()


×