1. Trang chủ
  2. » Giáo Dục - Đào Tạo

CHƯƠNG 4 CƠ SỞ DỮ LIỆU QUAN HỆ NGÔN NGỮ SQL

19 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

Thông tin cơ bản

Tiêu đề Cơ Sở Dữ Liệu Quan Hệ Ngôn Ngữ SQL
Định dạng
Số trang 19
Dung lượng 491,1 KB

Nội dung

Trang 1 1CHƯƠNG 4CƠ SỞ DỮ LIỆU QUAN HỆNGƠN NGỮ SQL2NỘI DUNGGiới thiệu ngơn ngữ con dữ liệu SQL Ngôn ngữ định nghĩa dữ liệuNgôn ngữ thao tác dữ liệuCập nhật dữ liệuTruy vấn dữ liệu Tìm ki

Trang 1

CH ƯƠ NG 4

2

NỘI DUNG

Giới thiệu ngôn ngữ con dữ liệu SQL Ngôn ngữ định nghĩa dữ liệu

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

Cập nhật dữ liệu Truy vấn dữ liệu (Tìm kiếm dữ liệu)

Chỉ mục (Index) Khung nhìn (View) Bảo mật và an toàn dữ liệu SQL nhúng

NGÔN NG Ữ CON D Ữ LI Ệ U SQL

Đặ c đ i ể m:

Là ngôn ngữ có cấu trúc, phi thủ tục

Vừa đóng vai trò là ngôn ngữ con cá thể thao tác độc lập cho

người sử dùng cuối, đồng thời có thể nhúng trong ngôn ngữ lập

trình.

Ch ứ c n ă ng c ủ a SQL

Hỏi dữ liệu (Truy vấn)

Định nghĩa dữ liệu

Cập nhật dữ liệu

Bảo mật và an toàn dữ liệu

NGÔN NG Ữ CON D Ữ LI Ệ U SQL

SQL (Structure English Query Language)

Tên g ọ i c ũ là SEQUEL Đượ c ANSI và ISO th ừ a nh ậ n là ngôn ng ữ chu ẩ n v ề

d ữ li ệ u; là ph ươ ng ti ệ n giao ti ế p c ủ a nhi ề u h ệ

th ố ng thông tin qu ả n lý.

Ra đờ i n ă m 1976 t ạ i phòng thí nghi ệ m Chamberlin; SQL-86 hay SQL1(ANSI 1986) SQL-92 hay SQL2

SQL−99 hay SQL3.

Trang 2

NGÔN NG Ữ CON D Ữ LI Ệ U SQL

Thu ậ t ng ữ

Quan hệ (Relation) Bảng (Table) Thuộc tính (Attribute) Cột (Column)

Không quan trọng thứ tự các cột và thứ tự các hàng !

6

SQL Data Definition Language

DDL là m ộ t thành ph ầ n trong SQL, ch ứ a các câu l ệ nh

t ạ o/xoá b ả ng, đị nh ngh ĩ a indexes, thi ế t l ậ p các ràng

bu ộ c quan h ệ Các câu l ệ nh DDL quan tr ọ ng:

CREATE TABLE – tạo bảng mới ALTER TABLE – thay đổi cấu trúc bảng DROP TABLE – xoá bảng

CREATE INDEX – lập chỉ mục (index) DROP INDEX – xoá chỉ mục

NGÔN NG Ữ ĐỊ NH NGH Ĩ A D Ữ LI Ệ U TRONG SQL

Tạo bảng

CREATE TABLE < tên b ả ng>

(<tên c ộ t 1> <ki ể u dl> [NOT NULL] [DEFAULT <gt m ặ c đị nh>,

<tên c ộ t 2> <ki ể u dl> [NOT NULL] [DEFAULT <gt m ặ c đị nh>,

….

<tên c ộ t n> <ki ể u dl> [NOT NULL] [DEFAULT <gt m ặ c đị nh>

[, PRIMARY KEY (<tên các c ộ t tham gia vào khóa chính>)]

[, UNIQUE (<tên các c ộ t tham gia vào khóa duy nh ấ t>)]

[, FOREIGN KEY (<tên c ộ t là khóa ngo ạ i lai>) REFERENCES <tên

b ả ng> (<tên c ộ t liên k ế t>) [, FOREIGN KEY…… ]] );

NGÔN NG Ữ ĐỊ NH NGH Ĩ A D Ữ LI Ệ U TRONG SQL

Ki ể u d ữ li ệ u

CHAR (n), VARCHAR(n) BOOLEAN

INT hoặc INTEGER,….

FLOAT hay REAL hay DECIMAL(n,d) DATE, TIME

Trang 3

NGÔN NG Ữ ĐỊ NH NGH Ĩ A D Ữ LI Ệ U

Ví dụ Xét CSDL g ồ m 3 b ả ng:

SV (MASV, HOTEN, GT, NS, QUE, LOP)

HP (MAHP, TENHP, SOTC)

KQHT (MASV, MAHP, DIEM)

Đặ t tên các ràng bu ộ c: b ổ sung thêm thành ph ầ n

sau vào câu l ệ nh t ạ o b ả ng, đặ t tr ướ c m ỗ i ph ầ n khai

báo ràng bu ộ c:

CONSTRAINT <tên ràng bu ộ c>

10

NGÔN NG Ữ ĐỊ NH NGH Ĩ A D Ữ LI Ệ U

CREATE TABLE SV (MASV CHAR(7) , HOTEN VARCHAR(30) NOT NULL,

GT CHAR(3),

NS DATE, QUE VARCHAR(20), LOP CHAR(10), PRIMARY KEY (MASV));

NGÔN NG Ữ ĐỊ NH NGH Ĩ A D Ữ LI Ệ U

CREATE TABLE HP

(MAHP CHAR(5),

TENHP VARCHAR(20) NOT NULL,

SOTC SMALLINT NOT NULL,

PRIMARY KEY (MAHP),

CONSTRAINT TEN_DUY_NHAT

UNIQUE (TENHP));

NGÔN NG Ữ ĐỊ NH NGH Ĩ A D Ữ LI Ệ U

CREATE TABLE KQHT (MASV CHAR(7), MAHP CHAR(5), DIEM DECIMAL(4,1) DEFAULT 0, PRIMARY KEY (MASV, MAHP),

FOREIGN KEY (MASV) REFERENCES SV(MASV), FOREIGN KEY (MAHP) REFERENCES HP(MAHP));

Trang 4

NGÔN NG Ữ ĐỊ NH NGH Ĩ A D Ữ LI Ệ U

Thayđổi cấu trúc bảng

Thêm một cột mới cho bảng

ALTER TABLE <tên b ả ng>

ADD COLUMN <tên c ộ t> <ki ể u d ữ li ệ u> [NOT NULL] [DEFFAULT

<giá tr ị >];

Xóa một cột của bảng

ALTER TABLE <tên b ả ng>

DROP COLUMN <tên c ộ t> [CASCADE];

Thay đổi kiểu dữ liệu của một cột trong bảng

ALTER TABLE <tên b ả ng>

CHANGE COLUMN <tên c ộ t> <ki ể u d ữ li ệ u m ớ i>;

14

NGÔN NG Ữ ĐỊ NH NGH Ĩ A D Ữ LI Ệ U

Quy đị nh DEFAULT cho m ộ t c ộ t

Thêm quy định DEFAULT

ALTER TABLE <tên b ả ng>

ALTER <tên c ộ t> SET DEFAULT <giá tr ị >;

Xóa quy định DEFAULT

ALTER TABLE <tên bảng>

ALTER <tên cột> DROP DEFAULT;

NGÔN NG Ữ ĐỊ NH NGH Ĩ A D Ữ LI Ệ U

Thay đổ i các ràng bu ộ c trên b ả ng

Xóa ràng buộc

ALTER TABLE <tên b ả ng>

DROP CONSTRAINT<tên ràng bu ộ c>;

Thêm ràng buộc

ALTER TABLE <tên b ả ng>

ADD ( CONSTRAINT <tên ràng bu ộ c> PRIMARY KEY…| UNIQUE…|

FOREIGN KEY… );

Xóa b ả ng

DROP < tên bảng> [CASCADE];

SQL Data Manipulation Language

Là cú phép để b ổ sung, xoá, s ử a ch ữ a các hàng trong b ả ng và tìm ki ế m d ữ li ệ u.

Các câu l ệ nh trong DML

SELECT trích rút dữ liệu từ các bảng csdl UPDATE sửa chữa dữ liệu trong bảng DELETE xoá dữ liệu trong bảng INSERT INTO chèn thêm dữ liệu mới vào bảng

NGÔN NG Ữ THAO TÁC D Ữ LI Ệ U

Trang 5

C Ậ P NH Ậ T D Ữ LI Ệ U CHO B Ả NG

B ổ sung thêm m ộ t hàng cho b ả ng

INSERT INTO <tên b ả ng> [(<danh sách các c ộ t>)]

VALUES (<danh sách các giá tr ị t ươ ng ứ ng>)

|<câu truy v ấ n >;

Ví d ụ

INSERT INTO HP VALUES (‘M4’, ‘Toán r ờ i r ạ c’,4);

Ho ặ c

INSERT INTO HP (TENHP, MAHP, SOTC)

VALUES (‘Toán r ờ i r ạ c’, ‘M4’, 4);

INSERT INTO SV(MASV, HOTEN) VALUES (‘20091005’,’Hoa’);

18

C Ậ P NH Ậ T D Ữ LI Ệ U CHO B Ả NG

Xóa các hàng trong b ả ng

DELETE FROM <tên b ả ng>

[WHERE <bi ể u th ứ c đ i ề u ki ệ n>];

Thay đổ i giá tr ị cho các c ộ t trong b ả ng

UPDATE <tên b ả ng>

SET <tên c ộ t 1> = <bi ể u th ứ c>

[, <tên c ộ t2> = <bi ể u th ứ c>,…]

[WHERE <bi ể u th ứ c đ i ề u ki ệ n>];

TÌM KI Ế M D Ữ LI Ệ U

SELECT [DISTINCT] <danh sách chi ế u>

FROM <danh sách tên b ả ng|tên view>

[WHERE [NOT] <bi ể u th ứ c đ i ề u ki ệ n>]

[GROUP BY <danh sách c ộ t | bi ể u th ứ c>

[HAVING [NOT] <bi ể u th ứ c đ i ề u ki ệ n>]]

[ORDER BY < danh sách tên c ộ t| s ố th ứ t ự các c ộ t

trong danh sách chi ế u|bi ể u th ứ c> [ASC|DESC]];

TÌM KI Ế M D Ữ LI Ệ U

Biểu thức

Một biểu thứcđược tạo nên từcác hằng, các tên cột và các hàm, được liên kết với nhau bởi các phép tính sốhọc ( +, -,

*, / )

• Danh sách chiếu:

Danh sách các tên cột (hoặc biểu thức) cần có trong bảng

kết quả Khi danh sách chiếu là dấu *, có nghĩa danh sách chiếu là toàn bộcác cột của tất cảcác bảng (hoặc view)

được chỉra sau FROM

Trang 6

TÌM KI Ế M D Ữ LI Ệ U

Biểu thức điều kiện

(a) bi ể u th ứ c logic tạo nên từ các hằng, các tên cột và các hàm, được nối

với nhau bởi các phép toán số học so sánh (>, >=, <, <=, !=) và logic

(and, or, not)

(b) tân t ừ ở các dạng sau:

(b1) <tên cột> IS [NOT] NULL

(b2) <tên cột> [NOT] LIKE <xâu kí tự>

(b3) <biểu thức >[NOT] BETWEEN <biểu thức 1>

AND <biểu thức2>

(b4) <tên cột> [NOT] IN (<danh sách các giá trị | truy

vấn con>) (b5) <tên cột θ ANY | ALL (truy vấn con)

(b6) EXISTS (truy vấn con)

(c) bi ể u th ứ c logic k ế t h ợ p v ớ i tân t ừ bởi các phép toán logic

22

TÌM KI Ế M D Ữ LI Ệ U

Tìm ki ế m đơ n gi ả n

Ví d ụ 1: Cho bi ế t danh sách t ấ t c ả các sinh viên

SELECT * FROM SV;

Ví d ụ 2: Cho bi ế t mã s ố nh ữ ng sinh viên đ ã có ít nh ấ t m ộ t đ i ể m thi

SELECT DISTINCT MASV FROM KQHT;

Biểu thức quan hệtươngđương

7 M2

20091001

4 M1

20091000

6 M1

20091001

5 M3

20091001

DIEM MAHP

MASV

20091001

20091000

20091001

20091001

MASV

20091000 20091001 MASV

SELECT MASV

FROM KQHT;

SELECT DISTINCT MASV FROM KQHT;

Bảng

KQHT

TÌM KI Ế M D Ữ LI Ệ U

Tìm ki ế m v ớ i bi ể u th ứ c logic d ạ ng (a)

Ví d ụ 3: Cho bi ế t mã s ố , tên và ngày sinh c ủ a các sinh viên n ữ quê

ở Hà N ộ i

SELECT MASV, HOTEN, NS FROM SV

WHERE GT=’n ữ ’ and QUE=’Hà N ộ i’;

Biểu thức quan hệtương đương

) ( (

,

MASV HOTEN NS σ GT = NuQUE = HaNoi SV

Trang 7

TÌM KI Ế M D Ữ LI Ệ U

Tìm ki ế m v ớ i bi ể u th ứ c đ i ề u ki ệ n d ạ ng (b1)

Ví d ụ 4: Cho bi ế t danh sách mã s ố và tên nh ữ ng sinh

viên ch ư a rõ quê quán

SELECT MASV, HOTEN

FROM SV

WHERE QUE IS NULL;

Ví d ụ 5: Cho bi ế t thông tin v ề nh ữ ng sinh viên có h ọ

‘Nguy ễ n’

26

TÌM KI Ế M D Ữ LI Ệ U

Tìm ki ế m v ớ i bi ể u th ứ c đ i ề u ki ệ n d ạ ng (b2)

Khi dùng LIKE < xâu kí t ự >, trong xâu kí tự có th ể

ch ứ a các kí t ự thay th ế :

‘%’ thay th ế cho m ộ t xâu kí t ự

‘_’ thay th ế cho m ộ t kí t ự

FROM SV

TÌM KI Ế M D Ữ LI Ệ U

S ử d ụ ng d ữ li ệ u ki ể u ngày tháng

Ví d ụ 6: Cho bi ế t thông tin v ề nh ữ ng sinh viên sinh vào

tháng 12 n ă m 1979

SELECT * FROM SV

WHERE ‘01/01/1980’ - NS <= 31 AND

‘01/01/1980’ - NS > 0;

Tìm ki ế m v ớ i bi ể u th ứ c đ i ề u ki ệ n d ạ ng b3)

’31/12/1979’;

TÌM KI Ế M D Ữ LI Ệ U

Tìm ki ế m v ớ i bi ể u th ứ c đ i ề u ki ệ n d ạ ng (b3) và (c)

Ví d ụ 7: Cho bi ế t mã s ố , h ọ tên và ngày sinh c ủ a

nh ữ ng sinh viên l ớ p ‘Toán 1’ sinh vào tháng 12 n ă m 1979

SELECT MASV, HOTEN, NS FROM SV

‘01/12/1979’ AND ’31/12/1979’;

NS BETWEEN ‘01/12/1979’ AND ’31/12/1979 t ươ ng đươ ng:

NS >=‘ 01/12/1979’ AND NS <= ’31/12/1979’

Trang 8

TÌM KI Ế M D Ữ LI Ệ U

Bi ể u di ễ n phép k ế t n ố i

mô tả biểu thức kết nối trong mệnh đề WHERE

dùng phép JOIN trong mệnh đề FROM

Lưu ý: Khi một cột A trong danh sách chiếu cùng xuất hiện

trong nhiều bảng được chỉ ra sau mệnh đề FROM, để tránh sự

nhập nhằng, phải ghi rõ T.A, có nghĩa cột A của bảng T

K ế t n ố i (R ⋈A A θθθ BBS )(E)[A, B, C, …]

SELECT A, B, C,… FROM R, S

WHERE E AND A A θθθ B;B;

? Bi ể u th ứ c đạ i s ố quan h ệ nào t ươ ng đươ ng v ớ i:

SELECT * FROM S, R WHERE E;

30

TÌM KI Ế M D Ữ LI Ệ U − Phép k ế t n ố i

S ơ đồ chung: K ế t n ố i t ự nhiên R, S d ự a trên c ộ t A

Đạ i s ố quan h ệ: (R*S)(E)[A, B,…]

FROM R, S

WHERE E;

TÌM KI Ế M D Ữ LI Ệ U − Phép k ế t n ố i

Ví d ụ 8: Cho bi ế t mã s ố và tên nh ữ ng sinh viên thi

h ọ c ph ầ n mã s ố ‘m1’ đạ t đ i ể m >=5

Cách vi ế t 1

SELECT SV.MASV, HOTEN

FROM SV, KQHT

WHERE SV.MASV=KQHT.MASV AND MAHP =’m1’

AND DIEM >= 5;

TÌM KI Ế M D Ữ LI Ệ U − Phép k ế t n ố i

Cách vi ế t 2

SELECT SV.MASV, HOTEN FROM (SV JOIN KQHT ON SV.MASV = KQHT.MASV) WHERE MAHP = ’m1’ AND DIEM >= 5;

Cách vi ế t 3

SELECT SV.MASV, HOTEN FROM (SV NATURAL JOIN KQHT) WHERE MAHP = ’m1’ AND DIEM >= 5;

Trang 9

TÌM KI Ế M D Ữ LI Ệ U − Phép k ế t n ố i

INNER JOIN

R INNER JOIN S: Kết quả chỉ bao gồm những hàng tạo bởi từ

những hàng của R và những hàng của S mà kết nối được với nhau

(JOIN mặc định là INNER JOIN).

OUTER JOIN

LEFT OUTER JOIN,

RIGHT OUTER JOIN,

FULL OUTER JOIN

34

TÌM KI Ế M D Ữ LI Ệ U − Phép k ế t n ố i

những hàng tạo bởi từ những hàng của R và những hàng của S

mà kết nối được với nhau, những hàng của R và các cột còn lại mang giá trị NULL nếu không

có hàng nào trong S kết nối được với những hàng này

R RIGHT OUTER JOIN S

R FULL OUTER JOIN S

TÌM KI Ế M D Ữ LI Ệ U − Phép k ế t n ố i

Ví dụ9: Cho biết mã số, tên sinh viên, mã học phần vàđiểm

thi của tất cảcác sinh viên Với những sinh viên chưa có

điểm thi học phần nào thì giá trịtrên cột MAHP và DIEM là

NULL

SELECT SV.MASV, HOTEN, MAHP, DIEM

FROM (SV OUTER JOIN KQHT ON SV.MASV =

KQHT.MASV);

TÌM KI Ế M D Ữ LI Ệ U − Phép k ế t n ố i

SV [LEFT] OUTER JOIN KQHT

3/3/1985

Lê Ph ươ ng Nam 20091002

2/2/1986

Tr ầ n Mai Ly 20091001

1/1/1985 Nguy ễ n Minh Đứ c

20091000

NS HOTEN

MASV

7 M2

20091001

4 M1

20091000

6 M2

20091000

DIEM MAHP

MASV

4 M1

Nguy ễ n Minh Đứ c 20091000

NULL 7 6 DIEM

NULL

Lê Ph ươ ng Nam 20091002

M2

Tr ầ n Mai Ly 20091001

M2 Nguy ễ n Minh Đứ c

20091000

MAHP HOTEN

n ố i ngoài

Trang 10

TÌM KI Ế M D Ữ LI Ệ U − Phép k ế t n ố i

• Ví d ụ 10 Cho bi ế t mã s ố , h ọ tên và đ i ể m thi c ủ a nh ữ ng

sinh viên thi h ọ c ph ầ n ‘C ơ s ở d ữ li ệ u’ đạ t đ i ể m >=5.

SELECT SV.MASV, HOTEN, DIEM

FROM SV, KQHT, HP

WHERE SV.MASV = KQHT.MASV AND KQHT.MAHP

DIEM>=5;

38

TÌM KI Ế M D Ữ LI Ệ U − Phép k ế t n ố i

Ho ặ c

SELECT SV.MASV, HOTEN, DIEM FROM ((SV NATURAL JOIN KQHT) NATURAL JOIN HP)

SELECT SV.MASV, HOTEN, DIEM FROM ((SV JOIN KQHT ON SV.MASV = KQHT.MASV) JOIN HP ON KQHT.MAHP = HP.MAHP) )

LUY Ệ N T Ậ P − Phép k ế t n ố i

1) Lập bảngđiểm học phần CSDL của lớp “Toán 1” (gồm các

cột MASV, HOTEN, DIEM)

2) Cho biếtđiểm học phần Cơ sở dữliệu của sinh viên

“20091000”

3) Lập bảngđiểm của sinh viên “20091000” (gồm MAHP,

TENHP, SOTC, diem)

TÌM KI Ế M D Ữ LI Ệ U − Truy v ấ n con

Tìm ki ế m v ớ i bi ể u th ứ c đ i ề u ki ệ n d ạ ng (b4)

Ví d ụ 11: Cho bi ế t mã s ố c ủ a nh ữ ng sinh viên có đ i ể m

<4 ít nh ấ t là m ộ t trong 3 h ọ c ph ầ n m1, m2, m3

SELECT DISTINCT MASV FROM KQHT

MAHP IN (‘m1’, ‘m2’, ‘m3’);

Trang 11

TÌM KI Ế M D Ữ LI Ệ U − Truy v ấ n con

Tìm kiếm với biểu thứcđiều kiện dạng (b5)

Ví dụ12 Cho biết mã sốnhững sinh viên phải thi lại ít nhất

một học phần có sốtín chỉ>=4

SELECT DISTINCT MASV

FROM KQHT

FROM HP WHERE SOTC >=4);

Hãy vi ế t câu truy v ấ n trên b ằ ng cách s ử d ụ ng phép k ế t n ố i

42

TÌM KI Ế M D Ữ LI Ệ U − Truy v ấ n con

Ví dụ13: Cho biết mã sốvà tên những sinh viên cóđiểm

<5 ởít nhất một học phần có sốtín chỉ<= 2

Ví dụ14: Cho biết mã sốvà tên những sinh viên không có

điểm học phần nào < 4

TÌM KI Ế M D Ữ LI Ệ U

Tìm ki ế m v ớ i bi ể u th ứ c đ i ề u ki ệ n d ạ ng (b6)

A θθθθ ANY S = true, n ế u∃∃∃∃X S: A θθθθX

false, n ế u ng ượ c l ạ i

A θθθθ ALL S = true, n ế uX S: A θθθθX

false, n ế u ng ượ c l ạ i

θθθθlà phép toán so sánh: =, <> (! =) >, >=, <, <=

TÌM KI Ế M D Ữ LI Ệ U

Ví d ụ 15: Cho bi ế t mã s ố nh ữ ng sinh viên đạ t đ i ể m cao nh ấ t h ọ c ph ầ n ‘M1’.

SELECT MASV FROM KQHT

AND DIEM >= ALL (SELECT DIEM

FROM KQHT WHERE MAHP = ’M1’);

Trang 12

TÌM KI Ế M D Ữ LI Ệ U

9 M1

20091003

8 M1

20091002

4 M1

20091000

DIEM MAHP

MASV

5 M2

20091004

9 M1

20091003

6 M3

20091003

8 M1

20091002

7 M2

20091001

4 M1

20091000

6 M2

20091000

DIEM MAHP

MASV

SELECT DIEM FROM KQHT

WHERE MAHP = ’M1’);

9 8 4 DIEM

46

TÌM KI Ế M D Ữ LI Ệ U

N ế u k ế t qu ả c ủ a truy v ấ n con là m ộ t h ằ ng thì không c ầ n

s ử d ụ ng t ừ khóa ANY, ALL trong đ i ề u ki ệ n

Ví d ụ 16: Cho bi ế t mã s ố và tên c ủ a nh ữ ng sinh viên

có cùng ngày sinh v ớ i sinh viên có mã s ố

‘20091000’

SELECT MASV, HOTEN FROM SV

TÌM KI Ế M D Ữ LI Ệ U

Tìm ki ế m v ớ i bi ể u th ứ c đ i ề u ki ệ n d ạ ng (b7)

EXISTS < truy vấn con> = true, nếu kết quả của

truy vấn con ≠ ∅ false, nếu ngược lại

Ví d ụ 17: Cho bi ế t mã s ố và tên c ủ a nh ữ ng sinh viên

không ph ả i h ọ c l ạ i h ọ c ph ầ n nào.

SELECT MASV, HOTEN

FROM SV WHERE NOT EXISTS

(SELECT * FROM KQHT WHERE MASV = SV MASV AND DIEM <4);

TÌM KI Ế M D Ữ LI Ệ U

Đặ t bí danh cho c ộ t, b ả ng

SELECT <tên c ộ t> [AS] <bí danh>,…

FROM <tên b ả ng> AS <bí danh>,…

Ví d ụ 18:

SELECT MASV FROM KQHT AS T WHERE MAHP = ’M1’ AND NOT EXISTS (SELECT * FROM KQHT

WHERE MAHP = ’M1’ AND DIEM > T.DIEM);

Trang 13

Hàm th ư vi ệ n trong danh sách chi ế u

COUNT(<tên cột>)

MAX(<tên cột>| <biểu thức>)

MIN(<tên cột>| <biểu thức>)

SUM(<tên cột>| <biểu thức số>)

AVG(<tên cột>| <biểu thức số>)

TÌM KI Ế M D Ữ LI Ệ U

50

TÌM KI Ế M D Ữ LI Ệ U

S ử d ụ ng hàm th ư vi ệ n trong danh sách chi ế u

Ví dụ19: Cho biết tổng sốsinh viên phải học lại ít nhất

một học phần nàođó

SELECT COUNT (DISTINCT MASV) TSSV_thilai FROM KQHT

WHERE DIEM <4;

Ví dụ20:

SELECT MASV FROM KQHT WHERE MAHP = ’m1’ AND DIEM = ( SELECT MAX(DIEM) FROM KQHT

WHERE MAHP = ’m1’);

TÌM KI Ế M D Ữ LI Ệ U - Mệ nh đề Order by

S ử d ụ ng m ệ nh đề ORDER BY

Ví d ụ 21:

SELECT MASV, MAHP, DIEM FROM KQHT

ORDER BY MASV, DIEM DESC;

Ghi chú:

Chiều sắp xếp luôn mặc định là ASC

Mệnh đề ORDER BY có thể viết:

ORDER BY 1, 3 DESC

Khi sắp xếp dựa trên giá trị của nhiều cột thì thứ tự ưu tiên là từ

trái sang phải

TÌM KI Ế M D Ữ LI Ệ U - Mệ nh đề Group by

Ví dụ 22: Đối với mỗi sinh viên, cho biết số học phần đã thi

SELECT MASV, COUNT(MAHP) FROM KQHT

GROUP BY MASV;

3 M2 20091004

7 M2 20091001

2 M2 20091000

9 M1 20091003

4 M1 20091000

8 M1 20091002

DIEM MAHP

MASV

9 M1 20091003

6 M3 20091003

8 M1 20091002

7 M2 20091001

4 M1 20091000

2 M2 20091000

DIEM MAHP MASV

1 20091004

2 20091003

1 20091002

1 20091001

2 20091000

count(MAHP)

MASV

Ngày đăng: 25/01/2024, 18:22

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w