1. Trang chủ
  2. » Giáo án - Bài giảng

SQL (Structured Query Language) NGÔN NGỮ ĐẠI SỐ QUAN HỆ

134 199 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đ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

Thông tin cơ bản

Định dạng
Số trang 134
Dung lượng 740,2 KB

Nội dung

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) 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  SQL86  SQL92  SQL99 3 ĐỊ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 

Trang 1

CHƯƠNG 5

Trang 2

NOI DUNG CHI TIET © Giới thiệu

© Định nghĩa dữ liệu © Truy vân dữ liệu

6 Cập nhật dữ liệu

o Khung nhìn (view)

o Chi muc (index)

Trang 3

GIỚI THIỆU

s Ngôn ngữ ĐSQH

-_ Cách thức truy van dữ liệu

e Kho khăn cho người sử dụng

o 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 (19703)

Được gọi là SEQUEL

Được ANSI công nhận và phát triển thành chuẩn

o SQL-86 o SQL-92 o SQL-99

Trang 4

GIỚI THIỆU (TT)

s SQL gồm

s _ Định nghĩa dữ liệu (DDL) Thao tác dữ liệu (DML)

Định nghĩa khung nhìn e Rang bu6éc toan ven

e Phan quyén va bao mat -_ Điều khién giao tác

o SQL su dụng thuật ngữ

e Bang ~ quan hệ

Trang 5

NOI DUNG CHI TIET o Gio’ thiệu

o Dinh nghia dv liệu e Kiéu d@ liéu

e Cac lénh dinh nghia dt liéu

o Truy vân dữ liệu

o Cập nhật dữ liệu

ư Khung nhìn (view)

o Chi muc (index)

Trang 6

ĐINH NGHĨA DU’ LIEU

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 e Rang bu6éc toan ven

-_ Chỉ mục trên mỗi quan hệ s Gỗm

e CREATE TABLE (tao bang) DROP TABLE (x6éa bang) ALTER TABLE (sua bang)

CREATE DOMAIN (tao mién gia tri)

CREATE DATABASE

Trang 7

KIEU DU’ LIEU o S6 (numeric)

e INTEGER e SMALLINT

» NUMERIC, NUMERIC(p), NUMERIC(p,s) » DECIMAL, DECIMAL(p), DECIMAL(p,s)

e REAL

e DOUBLE PRECISION

» FLOAT, FLOAT(p)

Trang 8

KIÊU DỮ LIỆU (TT)

© Chuỗi ký tự (character string)

» CHARACTER, CHARACTER(n) » CHARACTER VARYING(x)

o Chuéi bit (bit string)

» BIT, BIT(x)

» BIT VARYING(x)

o Ngay gio’ (datetime)

° DATE gém ngay, thang va nam ° TIME gồm giờ, phút và giây ° TIMESTAMP gém ngày và giờ

Trang 9

LENH TAO BANG

o Bé dinh nghia mét bang

e Tén bang se Các thuộc tính so Tên thuộc tính 6 Kiêu dữ liệu 6 Các RBTV trên thuộc tính o Cu phap

CREATE TABLE <Tén_bang> (

<Tên_cột> <Kiểu dữ liệu> [<RBTV>], <Tên_cột> <Kiểu dữ liệu> [<RBTV>],

[<RBTV>]

Trang 10

Vi DU - TAO BANG

Trang 11

LỆNH TẠO BẢNG (TT) 6 <FRBITV> e NOT NULL e NULL e UNIQUE e DEFAULT e PRIMARY KEY

e FOREIGN KEY / REFERENCES e CHECK

o Dat ten cho RBTV

CONSTRAINT <Ten_RBTV> <RBTIV>

Trang 12

VÍ DỤ - HBTV

CREATE TABLE NHANVIEN (

HONV VARCHAR(10) NOT NULL, TENLOT VARCHAR(20) 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

Trang 13

VÍ DỤ - HBTV

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)

Trang 14

Vi DU - DAT TEN CHO RBTV

CREATE TABLE NHANVIEN (

HONV VARCHAR(10) CONSTRAINT NV_HONV_NN NOT NULL, TENLOT VARCHAR(20) 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

Trang 15

Vi DU - DAT TEN 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)

)

©

Trang 16

LENH SU’A BANG o Duoc dung dé

° Thay ddi cau trúc bang

- Thay đổi RBTV

o Them cot ALTER TABLE <Tén_bang> ADD

<Tên_cột> <Kiểu dữ liệu> [<RBTV>]

© Xóa cột

ALTER TABLE <Tén_bang> DROP COLUMN <Tén_cot>

Mở rộng cột

ALTER TABLE <Tén_bang> ALTER COLUMN <Tên_ cột> <Kiểu_ dữ liệu _mới>

©

Trang 17

LỆNH SỬA BẢNG (TT)

o Them RBTV

ALTER TABLE <Tén_bang> ADD

CONSTRAINT <Ten_RBIV> <RBIV>, CONSTRAINT <Ten_RBIV> <RBIV>,

o X0a RBTV

ALTER TABLE <Tén_bang> DROP <Tén_RBTV>

Trang 18

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)

Trang 19

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)

Trang 20

LENH XOA BANG

o Duoc dùng đề xóa câu trúc bảng e Tat cả dữ liệu của bảng cũng bị xóa

wT wT

o Cu phap

DROP TABLE <Tén_bang>

o Vi du

DROP TABLE NHANVIEN DROP TABLE PHONGBAN DROP TABLE PHANCONG

Trang 21

LENH XOA BANG (TT)

NHANVIEN

HONV

TENLOT TENNV MANV | NGSI

CHI PHAI LUONG MA_NQL PHG

Trang 22

LỆNH TẠO MIỄN GIÁ TRỊ

o Tao ra mot kiểu dữ liệu mới kế thừa những kiểu dữ liệu

có sẵn

o Cu phap

CREATE DOMAIN <Tén_kdl_mdi> AS <Kiéu_dir_liéu>

o Vi du

CREATE DOMAIN Kieu_Ten AS VARCHAR(30)

Trang 23

NOI DUNG CHI TIET ©o Giới thiệu

©o Định nghĩa dữ liệu

© Truy vẫn dữ liệu

-_ Truy vận cơ bản

° Tap hợp, so sánh tập hợp và truy vẫn lông

se Hàm kêt hợp và gom nhóm

-_ Một số kiểu truy vẫn khác

o Cập nhật dữ liệu

ư Khung nhìn (view)

o Chi muc (index)

Trang 24

TRUY VẤN DU’ LIEU

s Là ngôn ngữ rút trích dữ liệu thỏa một số điều kiện nao

đó

© 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

e Bang la bag # quan hé la set

Trang 25

TRUY VÂN CƠ BẢN

s Gồm 3 mệnh đề

SELECT <danh sách các cột> FROM <danh sách các bảng> WHERE <điêu kiện>

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

o Tên các cột cần được hiễn thị trong kết quả truy vẫn

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

o Tên các bảng liên quan đến câu truy van e <diéu kién>

o Biểu thức boolean xác định dòng nào sẽ được rút trích o Nối các biểu thức: AND, OR, và NOT

o Phép toan:<,>,<,2,#,=, LIKE va BETWEEN

Trang 26

TRUY VẤN CƠ BẢN (TT) o SQL va DSQH

'|'ểÊLECT <danh sách các cột>

oan nnn ‘PROM <danh sach cac bang>

WOERE <diéu kién>

Trang 27

VÍ DỤ Lấy tất cả các cột của quan hệ kết quả SELECT * 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

Obsuc-sapnar=wam (NHANVTEN) ©

Trang 28

MENH DE 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

TU anv Honv;tentor,tennvi O pye=s A PHAI=`Nam' (NHANVIEN)) ©}

Trang 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 | TENLOT | TEN

333445555 | Nguyen Thanh Tung 987987987 | Nguyen Manh Hung

Trang 30

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

Trang 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

OD MANV,LUONG 10%(TÙMANV,LUONG*I 1( pio=sAPHAI=Nam(N NO

Trang 32

MENH DE SELECT (TT}

Loại bỏ các dong trùng nhau

SELECI DƯONRCT LUONG FROM NHANVIEN

WHERE PHG=5 AND PHAI="Nam’

LUONG

30000 ¬¬

25000 - Ton chi phi

28000 - Người dùng muốn thấy 38000

Trang 33

VÍ DỤ

e Cho biết MANV và TENNV làm việc ở phòng ‘Nghien

J

cuu

Rl NHANVIEN !I ;„c-wapac PHONGBAN

KQ <— TU many, TENNV (O tenpHG='Nghien cuuXR1))

SELECT MANV, TENNV

FROM NHANVIEN, PHONGBAN

WHERE TENPHG='"Nghien cuu’ PHG=MAPHG

Trang 34

MENH DE WHERE

SELECT MANV, TENNV „Biểu thức luận lý

ow -_

OT TTT een meee ese

Trang 35

MẸNH ĐÈ WHERE (TT)

Độ ưu tiên

SELECT MANV, TENNV

FROM NHANVIEN, PHONGBAN

WHERE (TENPHG='"Nghien cuu’ OR TENPHG='Quan ly’) AND PHG=MAPHG

Trang 36

MENH BE WHERE (tT)

BETWEEN

SELECT MANV, TENNV FROM NHANVIEN

WHERE LUONG>20000 AND LUONG<30000

SELECT MANV, TENNV FROM NHANVIEN

WHERE LUONG BETWEEN 20000 AND 30000

Trang 37

MENH BE WHERE (tT)

NOT BETWEEN

SELECT MANV, TENNV FROM NHANVIEN

WHERE LUONG NOT BETWEEN 20000 AND 30000

Trang 38

MỆNH ĐÊ WVHIEHE (TT)

LIKE

SELECT MANV, TENNV FROM NHANVIEN

WHERE DCHI LIE "Nguyen _ _ _ _’

SELECT MANV, TENNV Ky ty bat ky

FROM NHANVIEN

WHERE DCHI LIKE ‘Nguyen %‘_

Chuỗi bất kỳ

Trang 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’

Trang 40

MENH BE WHERE (TT)

ESCAPE

SELECT MANV, TENNV FROM NHANVIEN

WHERE DCHI LIKE *% Nguyens_%' ESCAPE 's

|

'Nguyen_

Trang 41

MENH BE WHERE (tT)

Ngay thang

SELECT MANV, TENNV FROM NHANVIEN

WHERE NGSINH BETWEEN *1955-12-08" AND *1966-07-19'

Trang 42

MẸNH ĐÈ WHERE (TT)

NULL

- _ Sử dụng trong trường hợp

o Không biết (value unknown)

o Không thể áp dụng (value inapplicable)

o Không tôn tại (value withheld)

- _ Những biểu thức tính tốn có liên quan đến giá trị NULL sẽ

cho ra kết quả là NULL o X co gia tri la NULL

o x + 3 cho ra kết qua la NULL

o x + 3 là một biêu thức không hợp lệ trong SQL

- _ Những biểu thức so sánh có liên quan dén gia tri NULL sé cho

ra kết quả là UNKNOWN

o X= 3 cho ra kết quả là UNKNOWN

o X= 3 là một so sánh không hợp lệ trong SQL ©

Trang 43

MẸNH ĐÈ WHERE (TT)

NULL

SELECT MANV, TENNV FROM NHANVIEN

WHERE MA_NQL IS NULL

SELECT MANV, TENNV FROM NHANVIEN

WHERE MA_NQL IS NOT NULL

Trang 44

MENH DE FROM

Không sử dụng mệnh đề WHERE

SELECT MANV, MAPHG

FROM NHANVIEN, PHONGBAN

Trang 45

MENH DE FROM (TT)

Tén bi danh

SELECT TENPHG, DIADIEM

FROM PHONGBAN, ASDHBMDPHEM_PHG AS DD WHERE PADD STIAPICMAPHG

SELECT TENNV, NSEBESEINFENTENTINGSIWQ{GSINH

FROM NHANVIEN,NWIARMNANIAN TN WHERE MANV=MA_NVIEN

Trang 46

VÍ DỤ

© Với những đề án ở ‘Ha Noi’, cho biết mã đề án, mã

phòng ban chủ trì đê án, họ tên trưởng phòng cùng với

ngày sinh và địa chỉ của người ây

s Tìm họ tên của nhân viên phòng sơ 5 có tham gia vào đề án “Sản phẩm X” với số giờ làm việc trên 10 giờ

° Tìm họ tên của từng nhân viên và người phụ trách trực tiêp nhân viên đó

© Tìm họ tên của những nhân viên được "Nguyen Thanh Tung’ phụ trách trực tiêp

Trang 47

MENH DE ORDER BY

o Dung dé hién thị kết quả câu truy vẫn theo một thứ tự

nao do

o Cu phap

SELECT <danh sách các cột> FROM <danh sách các bảng> WHERE <diéu kién>

ORDER BY <danh sách các cột> e ASC: tang (mac định)

e DESC: giam

Trang 48

MENH DE ORDER BY (TT}

o Vi du

SELECT MA_NVIEN, SODA FROM PHANCONG

ORDER BY MA_NVIEN DESC, SODA

Trang 49

NOI DUNG CHI TIET ©o Giới thiệu

©o Định nghĩa dữ liệu

o 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

e Ham ket hợp và gom nhóm

« Một sô dạng truy vẫn khác

o Cập nhật dữ liệu

ö Khung nhìn (view)

o Chi muc (index)

Trang 50

PHEP TOAN TAP HOP TRONG SQL

o SQL co cai dat cac phep toan tap hop:

° Hdi (UNION)

e Giao (INTERSECT)

© Trtv (EXCEPT)

o Két gua tra vé la tap hop

e Loai b6 cac bé trung nhau

- Đề giữ lại các bộ trùng nhau

o UNION ALL

o INTERSECT ALL o EXCEPT ALL

Trang 51

PHÉP TOÁN TẬP HỢP TRONG SQL (TT)

o Cu phap

SELECT <ds cOt> FROM <ds bang> WHERE <diéu kién> UNION [ALL]

SELECT <ds cét> FROM <ds bang> WHERE <diéu kién>

SELECT <ds cột> FROM <ds bang> WHERE <diéu kién> INTERSECT [ALL]

SELECT <ds cột> FROM <ds bang> WHERE <diéu kién>

SELECT <ds cột> FROM <ds bang> WHERE <diéu kién> EXCEPT [ALL]

SELECT <ds cOt> FROM <ds bang> WHERE <diéu ki€n>

Trang 52

VÍ DỤ 5

o Cho biết các mã đề án có

s_ Nhân viên với họ là Nguyen tham gia hoặc,

- _ Trưởng phòng chủ trì đề án đó với họ là ‘Nguyen’

SELECT SODA

FROM NHANVIEN, PHANCONG

WHERE MANV=MA_NVIEN HONV='‘Nguyen’ UNION

SELECT MADA

FROM NHANVIEN, PHONGBAN, DEAN

WHERE MANV=TRPHG MAPHG=PHONG

HONV='Nguyen’

Trang 53

VÍ DỤ 6

© Tìm nhân viên có người thân cùng tên và cùng giới tính

SELECT TENNV, PHAI FROM NHANVIEN

INTERSẾCT

SELECT TENTN, PHAI FROM THANNHAN SELECT NV.*

FROM NHANVIEN NV, THANNHAN TN WHERE NV.MANV=TN.MA_NVIEN

NV TENNV=TN.TENTN NV.PHAI=TN.PHAI

Trang 54

VÍ DỤ Z7

s Tìm những nhân viên khơng có thân nhân nào

SELECT MANV FROM NHANVIEN

peg SELECT MA_NVIEN AS MANV FROM THANNHAN

Trang 55

TRUY VAN LONG

SELECT MANV, TENNV

FROM NHANVIEN, PHONGBAN

WHERE TENPHG='"Nghien cuu’ PHG=MAPHG

Cau truy van cha

(Outer query) SELECT <danh sách các cột> FROM <danh sách các bảng> WHERE <so sánh tập hợp> ( SELECT <danh sách các cột> FROM <danh sách các bảng> WHERE <điêu kiện>)

Câu truy vấn con

(Subquery)

Trang 56

TRUY VẤN LỎNG (TT)

o Các câu lệnh SELECT có thể lồng nhau ở nhiều mức

© Câu truy vẫn con thường trả về một tập các giá trị

© Các câu truy vẫn con trong cùng một mệnh đề WHERE

được kết hợp bằng phép nôi logic

o Ménh dé WHERE cua cau truy van cha

-_ <biêu thức> <so sánh tập hợp> <truy van con>

e So sanh tap hợp thường đi cùng với một số toán tử o IN, NOT IN

o ALL

o ANY hoac SOME

e Kiém tra sự tôn tại

o EXISTS

o NOT EXISTS

Ngày đăng: 23/03/2019, 15:29

TỪ KHÓA LIÊN QUAN