Bài giảng cơ sở dữ liệu chương 4 ths lương thị ngọc khánh - Pdf 32

Chƣơng IV:
Transact-SQL và truy vấn dữ liệu


Nội dung chƣơng IV
• Câu lệnh thao tác dữ liệu





Truy vấn dữ liệu cơ bản
Truy vấn lồng
Hàm kết hợp và gom nhóm
Một số dạng truy vấn khác

• Khung nhìn

Ths. Lƣơng Thị Ngọc Khánh – Khoa CNTT – ĐH TĐT

2


Cơ sở dữ liệu ví dụ
• Trong suốt phần sau của chương này, ta sử dụng
csdl sau làm ví dụ minh họa:
– NhanVien(manv, honv, tenlot, tennv, ngaysinh, diachi,
phai, luong, manql, phong)
– PhongBan(maphong,tenphong,trphong, ngnhanchuc)
– DDPhong(maphong, diadiem)
– DeAn(tenda, mada, ddiemda, phong)

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

Từ khóa DISTINCT để loại
bỏ các dòng trùng nhau
trong bảng kết quả

– <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
Ths. Lƣơng Thị Ngọc Khánh – Khoa CNTT – ĐH TĐT

5



Dấu * để chỉ tất cả các cột

– Tương đương với biểu thức đsqh sau:
malop = ‘Ti01’ (SinhVien)

Ths. Lƣơng Thị Ngọc Khánh – Khoa CNTT – ĐH TĐT

7


Truy vấn cơ bản (tt)
• Ví dụ: Cho biết ds sinh viên nam của lớp có mã
„Ti01‟
SELECT masv, hoten, ngaysinh, phai, malop
FROM SinhVien
WHERE malop = ‘Ti01’ and phai = ‘Nam’

– Tương đương với biểu thức đsqh sau:

masv,

hoten, ngaysinh, phai, malop
‘Ti01’and phai=‘Nam’ (SinhVien))

Ths. Lƣơng Thị Ngọc Khánh – Khoa CNTT – ĐH TĐT

(malop

=


WHERE
tenlop = ‘Cong nghe thong tin
01’ AND SinhVien.malop = LopHoc.malop

Ths. Lƣơng Thị Ngọc Khánh – Khoa CNTT – ĐH TĐT

10


Truy vấn cơ bản (tt)
• Tên bí danh cho bảng
– Ví dụ: Cho biết mã số, họ tên, ngày sinh, tên lớp của
danh sách sinh viên lớp „công nghệ thông tin 01‟
Select
From
Where

maso, hoten, ngaysinh, tenlop
SinhVien sv, LopHoc lh
tenlop = =‘Cong nghe thong
tin 01’
and sv.malop = lh.malop

Ths. Lƣơng Thị Ngọc Khánh – Khoa CNTT – ĐH TĐT

11


Truy vấn cơ bản (tt)
- Toán tử between, not between, like, not like

hay một tập (ví du: [abcdef])
• [^]: ký tự đơn bất kỳ không nằm trong giới hạn được chỉ định
(ví dụ [^a-f]) hay một tập (ví dụ [^abcdef]).

Ths. Lƣơng Thị Ngọc Khánh – Khoa CNTT – ĐH TĐT

13


Truy vấn cơ bản (tt)
- Toán tử between, not between, like, not like
• LIKE (tt)
– Ví dụ:

SELECT masv, hoten, ngaysinh
FROM SinhVien
WHERE hoten LIKE ‘Nguyen _ _ _ _’
– Hoặc
SELECT masv, hoten, ngaysinh
FROM SinhVien
WHERE hoten LIKE ‘Nguyen %’
• Sử dụng NOT LIKE tƣơng tự
– Lƣu ý:
• Like “ab\%cd%” cho ra những chuỗi bắt đầu với “ab%cd”
• Like “ab\\cd%” cho ra những chuỗi bắt đầu với “ab\cd”
Ths. Lƣơng Thị Ngọc Khánh – Khoa CNTT – ĐH TĐT

14



SELECT <ds các cột>
FROM <ds các bảng>
WHERE <điều kiện>
ORDER BY <danh sách các cột><kiểu sắp>

– Trong đó <kiểu sắp> có thể là:
• ASC: tăng (mặc định)
• DESC: giảm

Ths. Lƣơng Thị Ngọc Khánh – Khoa CNTT – ĐH TĐT

17


Truy vấn cơ bản
- Mệnh đề ORDER BY (tt)

• Ví dụ:
SELECT MANVIEN, SODA
FROM PHANCONG
ORDER BY MANVIEN DESC, SODA
MANVIEN

SODA

999887777

10

999887777






Truy vấn dữ liệu cơ bản
Truy vấn lồng
Hàm kết hợp và gom nhóm
Một số dạng truy vấn khác

• Khung nhìn

Ths.Ths.
Lƣơng
ThịThị
Ngọc
Khoa
CNTT
– TĐT
TUD – ĐH TĐT
Lƣơng
NgọcKhánh
Khánh ––Khoa
CNTT
– ĐH

19


Truy vấn lồng




EXISTS
NOT EXISTS

Ths. Lƣơng Thị Ngọc Khánh – Khoa CNTT – ĐH TĐT

21


Truy vấn lồng (tt)
• Có 2 loại truy vấn lồng
– 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, 1 lần

– 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

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

• Ví dụ: Tìm những nhân viên không có thân nhân
nào

Ths. Lƣơng Thị Ngọc Khánh – Khoa CNTT – ĐH TĐT

24


Truy vấn lồng (tt)
- Ví dụ lồng tƣơng quan

• Ví dụ:
SELECT MANV, TENNV
FROM NHANVIEN
WHERE EXISTS (
SELECT *
FROM PHONGBAN
WHERE TENPHONG=‘Nghien cuu’ AND PHONG=MAPHONG)

 Câu truy vấn trên cho kết quả gì? Tương đương với
câu truy vấn đơn giản nào?
SELECT MANV, TENNV
FROM NHANVIEN, PHONGBAN
WHERE TENPHONG=‘Nghien cuu’ AND PHONG=MAPHONG

Ths.Ths.
Lƣơng
ThịThị


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status