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

Tài liệu ôn thi cao học - thạc sĩ khoa học máy tính, hệ thống thông tin trường ĐH KHTN TP.HCM;p2

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 (398.94 KB, 54 trang )

SQL - Structured Query Language

Giới thiệu
Truy vấn dữ liệu
Cập nhật dữ liệu

Giới thiệu
Ngôn ngữ khai báo
Cài đặt dựa trên ĐSQH

Chuẩn hoá cho các HQTCSDL quan hệ
Được phát triển bởi IBM (1970s)
Các version Standard ANSI/ISO
SQL-86 (SQL1)
SQL-92 (SQL2)
SQL-99 (SQL3)

Nhiều phiên bản cài đặt
SQL Server
Oracle
3/6/2008

Ôn thi Cao học 2008

2

1


Giới thiệu (tt)
tt)


SQL hỗ trợ
Ngôn ngữ Định nghĩa dữ liệu (DDL)
Mức Quan niệm : CREATE SCHEMA, TABLE,...
Mức ngoài : CREATE VIEW, GRANT,…
Mức trong : CREATE INDEX, CLUSTER,...

Ngôn ngữ Thao tác dữ liệu (DML)
Truy vấn : SELECT
Cập nhật : INSERT, DELETE, UPDATE

Ngơn ngữ khai báo
Ràng buộc tồn vẹn
Phân quyền và bảo mật
Điều khiển giao tác

3/6/2008

Ôn thi Cao học 2008

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 tồ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

3/6/2008

Ôn thi Cao học 2008

4

2


Truy vấn dữ liệu
Là ngơn ngữ rút trích dữ liệu thỏa một số điều kiện nào đó
Dựa trên các phép toán đại số quan hệ + một số mở rộng
Bảng là bag ≠ quan hệ là set
Cho phép 1 bảng có nhiều dịng trùng nhau

Hỗ trợ các truy vấn
Cơ bản : Chọn, Chiếu, Kết
Tập hợp, so sánh tập hợp và truy vấn lồng
Hàm kết hợp và gom nhóm
Một số kiểu truy vấn khác

3/6/2008

Ôn thi Cao học 2008


5

Truy vấn cơ bản
Cú pháp
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 được hiển thị trong kết quả truy vấn

<danh sách các bảng>
Tên các bảng liên quan đến câu truy vấn

<điều kiện>
Biểu thức boolean xác định dịng nào sẽ được rút trích
Nối các biểu thức: AND, OR, và NOT
Phép toán: < , > , ≤ , ≥ , ≠ , =, LIKE và BETWEEN
3/6/2008

Ôn thi Cao học 2008

6

3


Truy vấn cơ bản (tt)
tt)
SQL và ĐSQH


π

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

×

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

σ

WHERE <điều kiện>

SELECT L

π σ

FROM R C (R))
L(
WHERE C
3/6/2008

Ôn thi Cao học 2008

7

CSDL mẫu
NHANVIEN(HONV,TENLOT,TENNV,MANV,NGSINH,DCHI,PHAI,LUONG,MA_NQL,PHG)
PHONGBAN(TENPHG,MAPHG,TRPHG,NG_NHANCHUC)
PHANCONG(MA_NVIEN,SODA,THOIGIAN)
THANNHAN(MA_NVIEN,TENTN,PHAI,NGSINH,QUANHE)

DEAN(TENDA,MADA,DDIEM_DA,PHONG)
DIADIEM_PHG(MAPHG,DIADIEM)

3/6/2008

Ôn thi Cao học 2008

8

4


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

333445555

Nguyen


987987987

Nguyen

TENNV

NGSINH

DCHI

Thanh

Tung

12/08/1955

638 NVC Q5

Manh

Hung

09/15/1962

Ba Ria VT

σ

PHG=5


3/6/2008

LUONG

MA_NQL

Nam

40000

888665555

5

Nam

38000

333445555

5

PHAI

PHG

(NHANVIEN)
Ôn thi Cao học 2008


9

Mệnh đề SELECT

SELECT MANV, HONV, TENLOT, TENNV
FROM NHANVIEN
WHERE PHG=5 AND PHAI=‘Nam’

MANV

3/6/2008

TENLOT

Nguyen

Thanh

Tung

987987987

π

HONV

333445555

Nguyen


Manh

Hung

MANV,HONV,TENLOT,TENNV(

σ

TENNV

PHG=5 ∧ PHAI=‘Nam’

Ôn thi Cao học 2008

(NHANVIEN))
10

5


Mệnh đề SELECT (tt)
(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


Nguyen

Thanh

Tung

987987987

Nguyen

Manh

Hung

π

(

MANV,HO,TEN LOT,TEN

TEN LOT

333445555

ρ

HO

TEN


σ

MANV,HONV,TENLOT,TENNV(

3/6/2008

PHG=5∧PHAI=‘Nam’(NHANVIEN)))

Ôn thi Cao học 2008

11

Mệnh đề SELECT (tt)
(tt)

Mở rộng

SELECT MANV, HONV + ‘ ’ + TENLOT + ‘ ’ + TENNV AS ‘HO TEN’
FROM NHANVIEN
WHERE PHG=5 AND PHAI=‘Nam’
MANV

HO TEN

333445555

ρ

π


MANV,HO TEN(

3/6/2008

Nguyen Thanh Tung

987987987

Nguyen Manh Hung

σ

MANV,HONV+TENLOT+TENNV(

Ôn thi Cao học 2008

PHG=5∧PHAI=‘Nam’(NHANVIEN)))
12

6


Mệnh đề SELECT (tt)
(tt)

Mở rộng

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

MANV
333445555

33000

987987987

ρ

LUONG10%

27500

π

MANV,LUONG10%(

σ

MANV,LUONG*1.1(

3/6/2008

PHG=5∧PHAI=‘Nam’(NHANVIEN)))

Ôn thi Cao học 2008

13

Mệnh đề SELECT (tt)

(tt)

Loại bỏ các dòng trùng nhau

SELECT LUONG
DISTINCT LUONG
FROM NHANVIEN
WHERE PHG=5 AND PHAI=‘Nam’
LUONG
30000

- Tốn chi phí

25000

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

38000
25000
38000

3/6/2008

Ơn thi Cao học 2008

14

7



Ví dụ
Cho biết MANV và TENNV làm việc ở phịng ‘Nghien cuu’
NHANVIEN(HONV,TENLOT,TENNV,MANV,NGSINH,DCHI,PHAI,LUONG,MA_NQL,PHG)
PHONGBAN(TENPHG,MAPHG,TRPHG,NG_NHANCHUC)

← NHANVIEN
PHG=MAPHG PHONGBAN
KQ ← πMANV, TENNV (σTENPHG=‘Nghien cuu’(R1))
R1

SELECT MANV, TENNV
FROM NHANVIEN, PHONGBAN
WHERE TENPHG=‘Nghien cuu’ AND
3/6/2008

PHG=MAPHG

Ôn thi Cao học 2008

15

Mệnh đề WHERE

SELECT MANV, TENNV

Biểu thức luận lý

FROM NHANVIEN, PHONGBAN
WHERE TENPHG=‘Nghien cuu’ AND PHG=MAPHG


TRUE

3/6/2008

TRUE

Ôn thi Cao học 2008

16

8


Mệnh đề WHERE (tt)
(tt)

BETWEEN

SELECT MANV, TENNV
FROM NHANVIEN
WHERE LUONG>20000 AND LUONG<30000

SELECT MANV, TENNV
FROM NHANVIEN
WHERE LUONG BETWEEN 20000 AND 30000

3/6/2008

Ôn thi Cao học 2008


17

Mệnh đề WHERE (tt)
(tt)

NOT BETWEEN

SELECT MANV, TENNV
FROM NHANVIEN
WHERE LUONG NOT BETWEEN 20000 AND 30000

3/6/2008

Ôn thi Cao học 2008

18

9


Mệnh đề WHERE (tt)
(tt)

LIKE

SELECT MANV, TENNV
FROM NHANVIEN
WHERE DCHI LIKE ‘Nguyen _ _ _ _’

Ký tự bất kỳ


SELECT MANV, TENNV
FROM NHANVIEN
WHERE DCHI LIKE ‘Nguyen %’

Chuỗi bất kỳ
3/6/2008

Ôn thi Cao học 2008

19

Mệnh đề WHERE (tt)
(tt)

NOT LIKE

SELECT MANV, TENNV
FROM NHANVIEN
WHERE HONV LIKE ‘Nguyen’

SELECT MANV, TENNV
FROM NHANVIEN
WHERE HONV NOT NOT LIKE ‘Nguyen’

3/6/2008

Ôn thi Cao học 2008

20


10


Mệnh đề WHERE (tt)
(tt)

ESCAPE

SELECT MANV, TENNV
FROM NHANVIEN
WHERE DCHI LIKE ‘% Nguyens_%’ ESCAPE ‘s’

‘Nguyen_’

3/6/2008

Ôn thi Cao học 2008

21

Mệnh đề WHERE (tt)
(tt)

Ngày giờ

SELECT MANV, TENNV
FROM NHANVIEN
WHERE NGSINH BETWEEN ‘1955-12-08’ AND ‘1966-07-19’


‘1955-12-08’

YYYY-MM-DD

’17:30:00’

’12/08/1955’

MM/DD/YYYY

’05:30 PM’

HH:MI:SS

‘December 8, 1955’
‘1955-12-08 17:30:00’
3/6/2008

Ôn thi Cao học 2008

22

11


Mệnh đề WHERE (tt)
(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 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
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

3/6/2008

Ơn thi Cao học 2008

23

Mệnh đề WHERE (tt)
(tt)

NULL

SELECT MANV, TENNV
FROM NHANVIEN
WHERE MA_NQL IS NULL


SELECT MANV, TENNV
FROM NHANVIEN
WHERE MA_NQL IS NOT NULL

3/6/2008

Ôn thi Cao học 2008

24

12


Mệnh đề FROM

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

SELECT MANV, MAPHG
FROM NHANVIEN, PHONGBAN
WHERE TRUE
MANV
333445555

MAPHG
1

333445555

4


333445555

5

987987987

1

987987987

4

987987987

5





3/6/2008

Ôn thi Cao học 2008

25

Mệnh đề FROM (tt)
(tt)
Tên bí danh


PHONGBAN(TENPHG,MAPHG,TRPHG,NG_NHANCHUC)
DIADIEM_PHG(MAPHG,DIADIEM)

SELECT TENPHG, DIADIEM
FROM PHONGBAN,AS PB, DDIEM_PHG AS DD
PHONGBAN DDIEM_PHG
WHERE MAPHG=MAPHG
PB.MAPHG=DD.MAPHG

NHANVIEN(HONV,TENLOT,TENNV,MANV,NGSINH,DCHI,PHAI,LUONG,MA_NQL,PHG)
THANNHAN(MA_NVIEN,TENTN,PHAI,NGSINH,QUANHE)

NV.NGSINH, TENTN, TN.NGSINH
SELECT TENNV, NGSINH, TENTN, NGSINH
NHANVIEN THANNHAN
FROM NHANVIEN,NV, THANNHAN TN
WHERE MANV=MA_NVIEN
3/6/2008

Ôn thi Cao học 2008

26

13


Ví dụ 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

NHANVIEN(HONV,TENLOT,TENNV,MANV,NGSINH,DCHI,PHAI,LUONG,MA_NQL,PHG)
PHONGBAN(TENPHG,MAPHG,TRPHG,NG_NHANCHUC)
DEAN(TENDA,MADA,DDIEM_DA,PHONG)

R1

← πMADA, PHONG (σDDIEM_DA=‘Hanoi’(DEAN))
R1(MADA, PHONG)

R2

← R1

PHONG=MAPHG

PHONGBAN

R2(MADA,PHONG,TENPHG,MAPHG,TRPHG,NG_NHANCHUC)

KQ

← πHONV, TENNV, NGSINH,DCHI ( R2

TRPHG=MANV

NHANVIEN)

KQ(MADA,PHONG,TENPHG,MAPHG,TRPHG,NG_NHANCHUC,HONV,TENLOT,
TENNV,MANV,NGSINH,DCHI,PHAI,LUONG,MA_NQL,PHG)
3/6/2008


Ơn thi Cao học 2008

27

Ví dụ 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

SELECT

DA.PHONG, NV.HONV, NV.TENNV,NV.NGSINH,NV.DCHI

FROM

DEAN AS DA, PHONGBAN AS PB, NHANVIEN AS NV

WHERE

(DDIEM_DA=‘Hanoi’)
AND

3/6/2008

AND

(DA.MAPHG=PB.MAPHG)

NV.MANV=PB.TRPHG
Ôn thi Cao học 2008


28

14


Ví dụ 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ờ

SELECT

HONV, TENNV

FROM

PHANCONG AS PC, DEAN AS DA, NHANVIEN AS NV

WHERE

(NV.PHG=5) AND

(PC.THOIGIAN>10) AND (TENDA= “Sản phẩm X” )

AND

(PC.SODA=DA.MADA)

AND


NV.MANV=PC.MA_NVIEN

3/6/2008

Ôn thi Cao học 2008

29

Mệnh đề ORDER BY
Dùng để hiển thị kết quả câu truy vấn theo một thứ tự nào đó
Cú pháp
SELECT <danh sách các cột>
FROM <danh sách các bảng>
WHERE <điều kiện>
ORDER BY <danh sách các cột>
ASC: tăng (mặc định)
DESC: giảm

3/6/2008

Ôn thi Cao học 2008

30

15


Mệnh đề ORDER BY (tt)
(tt)
Ví dụ

SELECT MA_NVIEN, SODA
FROM PHANCONG
ORDER BY MA_NVIEN DESC, SODA
MA_NVIEN

SODA

999887777

10

999887777

30

987987987

10

987987987

30

987654321

10

987654321

20


987654321

30

3/6/2008

Ơn thi Cao học 2008

31

Phép tốn tập hợp trong SQL
SQL có cài đặt các phép tố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

3/6/2008

Ôn thi Cao học 2008

32


16


Phép toán tập hợp trong SQL (tt)
(tt)
Cú pháp
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>
3/6/2008

Ôn thi Cao học 2008

33

Ví dụ 5
Cho biết các mã đề án có
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 AND HONV=‘Nguyen’
UNION
SELECT MADA

FROM NHANVIEN, PHONGBAN, DEAN
WHERE MANV=TRPHG AND MAPHG=PHONG
AND HONV=‘Nguyen’
3/6/2008

Ôn thi Cao học 2008

34

17


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, MANV FROM NHANVIEN
INTERSECT
SELECT TENTN, PHAI, MA_NVIEN FROM THANNHAN

3/6/2008

Ơn thi Cao học 2008

35

Ví dụ 7
Tìm những nhân viên khơng có thân nhân nào
SELECT MANV FROM NHANVIEN
EXCEPT
SELECT MA_NVIEN AS MANV FROM THANNHAN


3/6/2008

Ôn thi Cao học 2008

36

18


Truy vấn lồng

SELECT MANV, TENNV
FROM NHANVIEN, PHONGBAN
WHERE TENPHG=‘Nghien cuu’ AND PHG=MAPHG

Câu truy vấn cha
(Outer query)

SELECT MANV,TENNV
FROM NHANVIEN
WHERE PHG IN (
SELECT MAPHG
FROM PHONGBAN

Câu truy vấn con
(Subquery)

WHERE TENPHG =‘Nghien cuu’)
3/6/2008


Ôn thi Cao học 2008

37

Truy vấn lồng

Câu truy vấn 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>)

3/6/2008

Ôn thi Cao học 2008

Câu truy vấn con
(Subquery)

38

19


Truy vấn lồng (tt)
tt)

Các câu lệnh SELECT có thể lồng nhau ở nhiều mức
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
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
NOT EXISTS

3/6/2008

Ôn thi Cao học 2008

39

Truy vấn lồng (tt)
tt)
Lồng phân cấp
Mệnh đề WHERE của truy vấn con khơng tham chiếu đế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

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

3/6/2008

Ôn thi Cao học 2008

40

20


Ví dụ - Lồng phân cấp

SELECT MANV, TENNV
FROM NHANVIEN, DIADIEM_PHG
WHERE DIADIEM=‘TP HCM’ AND PHG=MAPHG

SELECT MANV, TENNV
FROM NHANVIEN
(1,
WHERE PHG IN ( 5)
SELECT MAPHG
FROM DIADIEM_PHG
WHERE DIADIEM=‘TP HCM’ )

3/6/2008

Ơn thi Cao học 2008


41

Ví dụ 5

SELECT SODA
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’

3/6/2008

Ôn thi Cao học 2008

42

21


Ví dụ 5
SELECT DISTINCT TENDA
FROM DEAN
WHERE MADA IN (
SELECT SODA
FROM NHANVIEN, PHANCONG
WHERE MANV=MA_NVIEN AND HONV=‘Nguyen’ )

OR MADA IN (
SELECT MADA
FROM NHANVIEN, PHONGBAN, DEAN
WHERE MANV=TRPHG AND MAPHG=PHONG
AND HONV=‘Nguyen’ )

3/6/2008

Ôn thi Cao học 2008

43

Ví dụ 7
Tìm những nhân viên khơng có thân nhân nào
SELECT *
FROM NHANVIEN
WHERE MANV NOT IN (
SELECT MA_NVIEN
FROM THANNHAN )
SELECT *
FROM NHANVIEN
WHERE MANV <> ALL (
SELECT MA_NVIEN
FROM THANNHAN )
3/6/2008

Ôn thi Cao học 2008

44


22


Ví dụ 8
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
SELECT *
FROM NHANVIEN
WHERE LUONG > ANY (
SELECT LUONG
FROM NHANVIEN
WHERE PHG=4 )
SELECT NV1.*
FROM NHANVIEN NV1, NHANVIEN NV2
WHERE NV1.LUONG > NV2.LUONG AND NV2.PHG=4
3/6/2008

Ôn thi Cao học 2008

45

Ví dụ 9
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
SELECT *
FROM NHANVIEN
WHERE LUONG > ALL (
SELECT LUONG
FROM NHANVIEN
WHERE PHG=4 )


3/6/2008

Ôn thi Cao học 2008

46

23


Ví dụ 10
Tìm những trưởng phịng có tối thiểu một thân nhân

SELECT *
FROM NHANVIEN
WHERE MANV IN (SELECT MA_NVIEN FROM THANNHAN)
AND MANV IN (SELECT TRPHG FROM PHONGBAN)

3/6/2008

Ơn thi Cao học 2008

47

Ví dụ - Lồng tương quan
ương
SELECT MANV, TENNV
FROM NHANVIEN, PHONGBAN
WHERE TENPHG=‘Nghien cuu’ AND PHG=MAPHG


SELECT MANV, TENNV
FROM NHANVIEN
WHERE EXISTS (
SELECT *
FROM PHONGBAN
WHERE TENPHG=‘Nghien cuu’ AND PHG=MAPHG )

3/6/2008

Ôn thi Cao học 2008

48

24


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 *
FROM NHANVIEN NV
WHERE EXISTS (
SELECT *
FROM THANNHAN TN
WHERE NV.MANV=TN.MA_NVIEN
AND NV.TENNV=TN.TENTN
AND NV.PHAI=TN.PHAI )

3/6/2008

Ơn thi Cao học 2008


49

Ví dụ 7
Tìm những nhân viên khơng có thân nhân nào
SELECT *
FROM NHANVIEN
WHERE NOT EXISTS (
SELECT *
FROM THANNHAN
WHERE MANV=MA_NVIEN)

3/6/2008

Ôn thi Cao học 2008

50

25


×