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

Bài giảng môn Cơ sở dữ liệu: Chương 6 - Ngôn ngữ SQL

115 14 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

Thông tin cơ bản

Tiêu đề Ngôn ngữ sql
Tác giả Đỗ Phúc, Nguyễn Đăng Tỵ, Đồng Thị Bích Thủy, Trần Ngọc Bảo, Lê Minh Triết
Trường học Đại học Quốc gia Tp.HCM
Chuyên ngành Cơ sở dữ liệu
Thể loại Tài liệu tham khảo
Năm xuất bản 2015
Thành phố Tp.HCM
Định dạng
Số trang 115
Dung lượng 7,24 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài giảng môn Cơ sở dữ liệu: Chương 6 - Ngôn ngữ SQL giới thiệu về SQL; kiểu dữ liệu; định nghĩa dữ liệu; truy vấn dữ liệu; cập nhật dữ liệu và một số nội dung khác. Mời các bạn tham khảo bài giảng để bổ sung thêm kiến thức về lĩnh vực này.

Trang 2

Đại học Quốc gia Tp.HCM.

[2] Đồng Thị Bích Thủy.

Giáo trình cơ sở dữ liệu.

Đại học Quốc gia Tp.HCM.

[3] Trần Ngọc Bảo.

Slide bài giảng CSDL Đại học Sư Phạm TP.HCM [4] Lê Minh Triết.

Slide bài giảng CSDL Đại học Sư Phạm TP.HCM

Trang 4

– Khó khăn cho người sử dụng

– 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

• SQL-86

• SQL-92

• SQL-99

Trang 5

– Thao tác dữ liệu (DML)

– Định nghĩa khung nhìn

– Ràng buộc toàn vẹn

– Phân quyền và bảo mật

– Điều khiển giao tác

Minh họa SQL Server 2000

Trang 6

 Các lệnh dùng để định nghĩa CSDL: tạo lập (create), thay đổi (alter) và hủy bỏ (drop) các đối tượng dữ liệu, thiết lập các ràng buộc.

Ngôn ngữ thao tác dữ liệu

 DML - Data Manipulation Language

 Các lệnh dùng để bảo trì và truy vấn CSDL: thêm (insert), sửa (update), xóa (delete) dữ liệu của bảng, truy vấn (select).

 Ngôn ngữ điều khiển dữ liệu

 DCL - Data Control Language

 Các lệnh dùng để điều khiển CSDL: quản trị các quyền (grant, revoke).

Trang 11

– 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ệ

– CREATE TABLE (tạo bảng)

– ALTER TABLE (sửa bảng)

– DROP TABLE (xóa bảng)

– CREATE DOMAIN (tạo miền giá trị)

– CREATE DATABASE

– …

Trang 12

)

Trang 13

MANV CHAR (9), HONV NVARCHAR (10), TENLOT NVARCHAR (20), TENNV NVARCHAR (10), NGSINH DATETIME ,

DCHI NVARCHAR (50), PHAI CHAR (3),

LUONG INT , MA_NQL CHAR (9),

)

Trang 15

HONV NVARCHAR (10) NOT NULL , TENLOT NVARCHAR (20) NOT NULL , TENNV NVARCHAR (10) NOT NULL , MANV CHAR (9) PRIMARY KEY , NGSINH DATETIME ,

DCHI NVARCHAR (50), PHAI NCHAR (4) CHECK (PHAI IN (N ‘Nam’ , N ‘Nữ’ )), LUONG INT DEFAULT (10000),

MA_NQL CHAR (9), PHG INT

)

Trang 16

TENPB NVARCHAR (20) UNIQUE , MAPHG INT NOT NULL ,

TRPHG CHAR (9), NG_NHANCHUC DATETIME DEFAULT ( GETDATE() ) )

CREATE TABLE PHANCONG

(

MANV CHAR (9) FOREIGN KEY (MANV)

REFERENCES NHANVIEN(MANV), MADA INT REFERENCES DEAN(MADA), THOIGIAN DECIMAL (3,1),

PRIMARY KEY (MANV,MADA) )

Trang 17

HONV NVARCHAR (10) CONSTRAINT NV_HONV_NN NOT NULL , TENLOT NVARCHAR (20) NOT NULL ,

TENNV NVARCHAR (10) NOT NULL , MANV CHAR (9) CONSTRAINT NV_MANV_PK PRIMARY KEY , NGSINH DATETIME ,

DCHI NVARCHAR (50), PHAI NCHAR (3) CONSTRAINT NV_PHAI_CHK

CHECK (PHAI IN (N ‘Nam’ ,N ‘Nữ’ )), LUONG INT CONSTRAINT NV_LUONG_DF DEFAULT (10000), MA_NQL CHAR (9),

PHG INT

)

Trang 18

MANV CHAR (9), MADA INT ,

THOIGIAN DECIMAL (3,1),

CONSTRAINT PC_MANV_MADA_PK

PRIMARY KEY (MANV, MADA),

CONSTRAINT PC_MANV_FK FOREIGN KEY (MANV)

REFERENCES NHANVIEN(MANV),

CONSTRAINT PC_MADA_FK FOREIGN KEY (MADA)

REFERENCES DEAN(MADA) )

Trang 20

Sửa bảng

ALTER TABLE <Tên_bảng> DROP COLUMN <Tên_cột>

ALTER TABLE <Tên_bảng> ALTER COLUMN

<Tên_cột> <Kiểu_dữ_liệu_mới>

ALTER TABLE <Tên_bảng> ADD

CONSTRAINT <Ten_RBTV> <RBTV>, CONSTRAINT <Ten_RBTV> <RBTV>,

ALTER TABLE <Tên_bảng> DROP <Tên_RBTV>

Trang 21

ALTER TABLE NHANVIEN

ADD NGHENGHIEP CHAR(20)

ALTER TABLE NHANVIEN

DROP COLUMN NGHENGHIEP

ALTER TABLE NHANVIEN

ALTER COLUMN NGHENGHIEP CHAR(50)

Trang 22

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)

Trang 23

Cú pháp

Ví dụ

DROP TABLE <Tên_bảng>

DROP TABLE NHANVIEN

DROP TABLE PHONGBAN

DROP TABLE PHANCONG

Trang 24

TENNV HONV TENLOT MANV NGSINH DCHI PHAI LUONG MA_NQL PHG

PHONGBAN

TRPHG TENPHG MAPHG NG_NHANCHUC

Trang 25

Cú pháp

CREATE DOMAIN <Tên_kdl_mới> AS <Kiểu_dữ_liệu>

CREATE DOMAIN kieu_MANV AS CHAR(9)

Trang 26

2 Tập hợp, so sánh tập hợp

3 Truy vấn lồng

4 Hàm kết hợp, gom nhóm

5 Một số kiểu truy vấn khác

Trang 27

điều kiện nào đó

Dựa trên

Lệnh cơ bản để rút trích thông tin: SELECT

Bảng là bag (đa bộ) quan hệ là set (tập hợp)

Trang 28

– Nối các biểu thức: AND, OR, và NOT

– Phép toán: , , , , (<>) , , LIKE và BETWEEN

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

WHERE <điều kiện>

Trang 29

L ( C (RxS))

Trang 30

TENLOT Thanh Manh

Trang 31

SELECT MANV, HONV, TENLOT, TENNV

FROM NHANVIEN

WHERE PHG=5 AND PHAI=‘Nam’

MANV,HONV,TENLOT,TENNV( PHG=5  PHAI=‘Nam’ (NHANVIEN))

TENNV HONV

Tung Nguyen

Hung Nguyen

TENLOT Thanh Manh

333445555 987987987 MANV

Trang 32

SELECT MANV, HONV AS [HỌ], TENLOT AS [TÊN LÓT], TENNV AS [TÊN]

FROM NHANVIEN

WHERE PHG=5 AND PHAI=‘Nam’

MANV,HỌ,TÊN LÓT,TÊN( MANV,HONV,TENLOT,TENNV( PHG=5PHAI=‘Nam’(NHANVIEN)))

TÊN HỌ

Tung Nguyen

Hung Nguyen

TÊN LÓT Thanh Manh

333445555 987987987 MANV

Trang 33

SELECT MANV, HONV + ‘ ’ + TENLOT + ‘ ’ + TENNV AS [HỌ TÊN]

FROM NHANVIEN

WHERE PHG=5 AND PHAI=‘Nam’

HỌ TÊN Nguyen Thanh Tung Nguyen Manh Hung

333445555 987987987 MANV

Mở rộng

Trang 34

SELECT MANV, LUONG*1.1 AS [LUONG10%]

FROM NHANVIEN

WHERE PHG=5 AND PHAI=‘Nam’

MANV,LUONG10%( MANV,LUONG*1.1( PHG=5PHAI=‘Nam’(NHANVIEN)))

LUONG10%

33000 27500

333445555 987987987 MANV

Trang 35

LUONG 30000 25000 38000

SELECT DISTINCT LUONG

FROM NHANVIEN

WHERE PHG=5 AND PHAI=‘Nam’

Trang 36

Cho biết MANV và TENNV làm việc ở

phòng ‘Nghien cuu’

R1  NHANVIEN PHG=MAPHG PHONGBAN

KQ  MANV, TENNV ( TENPHG=‘Nghien cuu’(R1))

SELECT MANV, TENNV

FROM NHANVIEN, PHONGBAN

WHERE TENPHG=‘Nghien cuu’ AND PHG=MAPHG

Biểu thức luận lý

Trang 37

SELECT MANV, TENNV

FROM NHANVIEN, PHONGBAN

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

Độ ưu tiên

Trang 38

SELECT MANV, TENNV

Trang 39

SELECT MANV, TENNV

FROM NHANVIEN

WHERE DCHI LIKE ‘Nguyen _ _ _ _’

SELECT MANV, TENNV

Trang 40

SELECT MANV, TENNV

FROM NHANVIEN

WHERE DCHI LIKE ‘% Nguyens_%’ ESCAPE ‘s’

ESCAPE

‘Nguyen_’

Trang 42

Convert(kiểu_dữ_liệu, biểu_thức [, kiểu_chuyển_đổi ])

Hàm có chức năng chuyển đổi giá trị của biểu thức sang kiểu_dữ_liệu.

Tham số kiểu_chuyển_đổi là một giá trị số thường được sử dụng khi chuyển đổi giá trị kiểu ngày sang kiểu chuỗi nhằm quy định khuôn dạng dữ liệu được hiển thị.

Hàm CONVERT

Trang 43

Ví dụ: định dạng ngày theo dạng dd/mm/yyyy

SELECT SoHD, MaKH, CONVERT (varchar(10),ngaylap, 103 ) as ngaylap

FROM HOADON

Trang 45

– Không biết (value unknown)

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

– Không tồn tại (value withheld)

Những biểu thức tính toán có liên quan đến giá trị NULL sẽ cho ra kết quả là NULL

– x có giá trị là NULL

– x + 3 cho ra kết quả là NULL

– 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 đến giá trị

NULL sẽ cho ra kết quả là UNKNOWN

– x = 3 cho ra kết quả là UNKNOWN

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

NULL

Trang 46

SELECT MANV, TENNV

FROM NHANVIEN

WHERE MA_NQL IS NULL

SELECT MANV, TENNV

FROM NHANVIEN

WHERE MA_NQL IS NOT NULL

Trang 47

WHERE TRUE

SELECT MANV, MAPHG

FROM NHANVIEN, PHONGBAN

Không sử dụng

mệnh đề WHERE

( Tích chéo RxS )

MAPHG 1 4

333445555 333445555 MANV

5 1 987987987

987987987

333445555

4 5 987987987

Trang 48

SELECT TENPHG, DIADIEM

FROM PHONGBAN, DDIEM_PHG

WHERE MAPHG=MAPHG

SELECT TENPHG, DIADIEM

FROM PHONGBAN PB, DDIEM_PHG DD

WHERE PB.MAPHG=DD.MAPHG

SELECT TENNV, NGSINH, TENTN, NGSINH

FROM NHANVIEN, THANNHAN

WHERE MANV=MA_NVIEN SELECT TENNV, NV.NGSINH, TENTN, TN.NGSINH

FROM NHANVIEN NV, THANNHAN TN

WHERE MANV=MA_NVIEN

Trang 49

1 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

2 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ờ

3 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 đó

4 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 50

Dùng để hiển thị kết quả câu truy vấn theo một thứ tự nào đó

Cú pháp

– ASC: tăng (mặc định) – DESC: giảm

Trang 51

999887777 999887777 MA_NVIEN

10 30 987987987

987654321

987987987

10 20 987654321

30 987654321

Trang 53

SQL có cài đặt các phép toán

– Hội (UNION) – Giao (INTERSECT) – Trừ (EXCEPT)

Kết quả trả về là tập hợp

– Loại bỏ các bộ trùng nhau – Để giữ lại các bộ trùng nhau

• UNION ALL

• INTERSECT ALL

• EXCEPT ALL

Trang 54

SELECT <ds cột> FROM <ds bảng> WHERE <điều kiện>

UNION [ALL]

SELECT <ds cột> FROM <ds bảng> WHERE <điều kiện>

SELECT <ds cột> FROM <ds bảng> WHERE <điều kiện>

INTERSECT [ALL]

SELECT <ds cột> FROM <ds bảng> WHERE <điều kiện>

SELECT <ds cột> FROM <ds bảng> WHERE <điều kiện>

EXCEPT [ALL]

SELECT <ds cột> FROM <ds bảng> WHERE <điều kiện>

Trang 55

– Nhân viên với họ là ‘Nguyen’ tham gia đề án

hoặc

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

SELECT MADA

FROM NHANVIEN, PHANCONG

WHERE MANV=MA_NVIEN AND HONV=‘Nguyen’

UNION

SELECT MADA

FROM NHANVIEN, PHONGBAN, DEAN

WHERE MANV=TRPHG AND MAPHG=PHONG AND HONV=‘Nguyen’

Phép hợp

Trang 56

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, MANV FROM NHANVIEN

Trang 57

Tìm những nhân viên không có thân

nhân nào

Phép trừ

SELECT MANV FROM NHANVIEN

EXCEPTSELECT MA_NVIEN AS MANV FROM THANNHAN

SELECT MANV

FROM NHANVIEN

WHERE MANV NOT IN

(SELECT MANV FROM THANNHAN)

Trang 58

Tìm nhân viên có người thân

SELECT MANV

FROM NHANVIEN

WHERE MANV IN

(SELECT MANV FROM THANNHAN)

SELECT DISTINCT NV.MANV,HONV + ‘ ’ + TENNV [HỌ TÊN]

FROM NHANVIEN NV, THANNHAN TN

Trang 59

WHERE <điều kiện>)

Câu truy vấn cha

(Outer query)

Câu truy vấn con (Subquery)

Trang 60

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

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

Mệnh đề WHERE của câu truy vấn cha

– <biểu thức> < so sánh tập hợp > <truy vấn con> – So sánh tập hợp thường đi cùng với một số toán tử

• IN, NOT IN

• ALL

• ANY hoặc SOME

– Kiểm tra sự tồn tại

• EXISTS

Trang 61

SELECT *

FROM NHANVIEN

WHERE MLUONG >= ALL

( SELECT MLUONG FROM NHANVIEN)

SELECT *

FROM NHANVIEN

WHERE MLUONG >= ANY/SOME

Trang 62

đến thuộc tính của các quan hệ trong mệnh đề FROM

ở truy vấn cha

– Khi thực hiện, câu truy vấn con sẽ được thực hiện

trước

2 Lồng tương quan

– Mệnh đề WHERE của truy vấn con tham chiếu ít nhất

một thuộc tính của các quan hệ trong mệnh đề FROM

ở truy vấn cha

– Khi thực hiện, câu truy vấn con sẽ được thực hiện

nhiều lần , mỗi lần tương ứng với một bộ của truy vấn cha

Trang 63

Hãy tìm

Đề án mà nhân viên tham gia đề án có họ ‘Nguyen’

HOẶC

FROM NHANVIEN NV, PHANCONG PC

WHERE NV.MANV=PC.MA_NVIEN AND NV.HONV=‘Nguyen’

UNION

SELECT MADA

FROM NHANVIEN NV, PHONGBAN PB, DEAN DA

WHERE NV.MANV=PB.TRPHG AND PB.MAPHG=DA.PHONG

AND NV.HONV=‘Nguyen’

Trang 64

FROM DEAN

WHERE MADA IN (

SELECT MADA

FROM NHANVIEN, PHANCONG

WHERE MANV=MA_NVIEN AND HONV=‘Nguyen’ )

OR MADA IN (

SELECT MADA

FROM NHANVIEN, PHONGBAN PB, DEAN DA

WHERE MANV=TRPHG AND PB.MAPHG=DA.PHONG

AND HONV=‘Nguyen’ )

Trang 65

không có thân nhân

Trang 66

1 Tìm những nhân viên có lương lớn hơn

lương của ít nhất một nhân viên phòng 4

2 Tìm những nhân viên có lương lớn hơn

lương của tất cả nhân viên phòng 4

3 Tìm những trưởng phòng có tối thiểu

một thân nhân

Trang 67

FROM NHANVIEN NV1, NHANVIEN NV2

WHERE NV1.LUONG > NV2.LUONG AND

Trang 68

SELECT MANV, TENNV

FROM NHANVIEN

WHERE EXISTS (

SELECT *

FROM PHONGBAN

WHERE TENPHG=‘Nghien cuu’ AND PHONG=MAPHG )

FROM NHANVIEN, PHONGBAN

WHERE TENPHG=‘Nghien cuu’ AND PHONG=MAPHG

Tìm nhân viên Phòng nghiên cứu

Trang 69

Tìm nhân viên

có thân nhân cùng tên, cùng phái

Trang 70

1 Tìm những nhân viên không có thân

nhân nào

2 Tìm những nhân viên có lương lớn hơn

lương của ít nhất một nhân viên phòng 4

3 Tìm những trưởng phòng có tối thiểu

một thân nhân

Trang 71

IN

– <tên cột> IN <câu truy vấn con>

– Thuộc tính ở mệnh đề SELECT của truy vấn con

phải có cùng kiểu dữ liệu với thuộc tính ở mệnh

đề WHERE của truy vấn cha

EXISTS

– Không cần có thuộc tính, hằng số hay biểu thức

nào khác đứng trước

– Không nhất thiết liệt kê tên thuộc tính ở mệnh

đề SELECT của truy vấn con

– Những câu truy vấn có = ANY hay IN đều có thể

chuyển thành câu truy vấn có EXISTS

Trang 72

RS là tập các giá trị ai trong R sao cho không có giá trị bi nào trong S làm cho bộ (ai, bi) không tồn tại trong R

1 1 1

1 1

a b

1 1

 a 

 a 

ai

bi

Trang 73

WHERE NOT EXISTS (

WHERE R2.D=S.D AND R2.E=S.E

AND R1.A=R2.A AND R1.B=R2.B AND R1.C=R2.C )

)

Sử dụng NOT EXISTS

để biểu diễn

Trang 74

SELECT R.A,R.B,R.C

FROM R

WHERE R.A+R.B+R.C NOT IN

( SELECT Q2.A+Q2.B+Q2.C

FROM ( SELECT R.A,R.B,R.C,S.* FROM R,S) Q2

WHERE Q2.A+Q2.B+Q2.C+Q2.D+Q2.E NOT IN

( SELECT R.A+R.B+R.C+R.D+R.E FROM R) ) Q3 LÀ A,B,C KHÔNG THAM GIA ĐẦY ĐỦ VÀO S

Sử dụng truy vấn lồng

để biểu diễn phép chia

Trang 75

SELECT MANV, COUNT (MADA)

FROM PHANCONG

GROUP BY MANV

HAVING COUNT (MADA)=( SELECT COUNT (MADA) FROM DEAN )

Sử dụng hàm count

Trang 76

Tìm tên các nhân viên được phân công làm tất

cả các đề án

– Tìm tên các nhân viên mà không có đề án nào là

không được phân công làm

– Tập bị chia: PHANCONG(MA_NVIEN, MADA)

– Tập chia: DEAN(MADA)

– Tập kết quả: KQ(MA_NVIEN)

– Kết KQ với NHANVIEN để lấy ra TENNV

Trang 79

SELECT SUM (LUONG), MAX (LUONG), MIN (LUONG), AVG (LUONG)

FROM NHANVIEN

SELECT COUNT (*) AS SL_NV

FROM NHANVIEN, PHONGBAN

WHERE PHG=MAPHG AND TENPHG= ‘Nghien cuu’

Trang 80

Cú pháp

Sau khi gom nhóm : mỗi nhóm các bộ

sẽ có cùng giá trị tại các thuộc tính gom nhóm

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

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

WHERE <điều kiện>

GROUP BY <danh sách các cột gom nhóm>

Trang 81

SELECT PHG, COUNT(*) AS SL_NV

FROM NHANVIEN

GROUP BY PHG

SELECT TENPHG, COUNT(*) AS SL_NV

FROM NHANVIEN, PHONGBAN

Trang 82

1 Với mỗi nhân viên

cho biết mã số, họ tên, số lượng đề án

2 10.0

3 10.0

333445555 333445555

10 10.0 333445555

20 20.0

10 35.0

888665555 987987987

30 5.0 987987987

30 20.0 987654321

20 15.0 987654321

1 20.0 453453453

2 20.0 453453453

Trang 83

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

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

WHERE <điều kiện>

GROUP BY <danh sách các cột gom nhóm>

HAVING <điều kiện trên nhóm>

SELECT MANV

FROM PHANCONG

GROUP BY MANV

HAVING COUNT (*) >= 2

Trang 84

SELECT PHONG, AVG(LUONG) AS LUONG_TB

FROM NHANVIEN

GROUP BY PHONG

HAVING AVG(LUONG) > 20000

SELECT TENPHG, AVG(LUONG) AS LUONG_TB

FROM NHANVIEN, PHONGBAN

WHERE PHG=MAPHG

GROUP BY TENPHG

HAVING AVG(LUONG) > 20000

Cho biết những phòng ban (TENPHG)

có lương trung bình của các nhân viên lớn lơn 20000

Trang 85

Mệnh đề GROUP BY

– Các thuộc tính trong mệnh đề SELECT (trừ những

thuộc tính trong các hàm kết hợp) phải xuất hiện trong mệnh đề GROUP BY

Mệnh đề HAVING

– Sử dụng các hàm kết hợp trong mệnh đề SELECT

để kiểm tra một số điều kiện nào đó

– Chỉ kiểm tra điều kiện trên nhóm, không là điều

kiện lọc trên từng bộ

– Sau khi gom nhóm điều kiện trên nhóm mới được

thực hiện

Trang 86

Chọn ra những dòng thỏa điều kiện trong

mệnh đề WHERE

Những dòng này sẽ được gom thành nhiều

nhóm tương ứng với mệnh đề GROUP BY

Trang 88

Kết quả trả về của một câu truy vấn phụ là một bảng

– Bảng trung gian trong quá trình truy vấn – Không có lưu trữ thật sự

Cú pháp

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

FROM R1, R2, ( <truy vấn con> ) AS tên_bảng

WHERE <điều kiện>

Trang 89

Kết bằng

Kết ngoài

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

FROM R1 [INNER] JOIN R2 ON <biểu thức>

WHERE <điều kiện>

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

FROM R1 LEFT|RIGHT [OUTER] JOIN R2 ON <biểu thức>

WHERE <điều kiện>

FULL JOIN

FULL

Trang 90

Cho phép kiểm tra điều kiện và xuất

thông tin theo từng trường hợp

Cú pháp

CASE <tên cột>

WHEN <giá trị> THEN <biểu thức>

WHEN <giá trị> THEN <biểu thức>

[ELSE <biểu thức>]

END

Trang 91

WHERE YEAR(GETDATE()) – YEAR(NGSINH) >= (CASE PHAI

WHEN 'Nam' THEN 60

WHEN 'Nu' THEN 55END )

SELECT HONV, TENNV,

( CASE PHAI

WHEN 'Nam' THEN YEAR(NGSINH) + 60

WHEN 'Nu‘ THEN YEAR(NGSINH) + 55

END ) AS NAMVEHUU

FROM NHANVIEN

Ngày đăng: 08/05/2021, 18:45

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm