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

Ngon ng truy vn SQL

38 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ữ Truy Vấn SQL
Định dạng
Số trang 38
Dung lượng 1,03 MB

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

Nội dung

Truy vấn đơn giảnSELECT FROM WHERE  Xét lược đồ quan hệ: SINHVIENMaSV, HoTen, Phai, MaLop Cho biết Mã và họ tên những sinh viên lớp ‘07DHTH’?. Truy vấn đơn giảnXét bảng dữ liệu MONH

Trang 1

LOGO Ngôn ngữ truy vấn SQL

Trang 3

Ngôn ngữ SQL là gì?

 SQL (Structured Query Language) là ngôn ngữchuẩn của nhiều HQT CSDL, gồm các câu lệnhđịnh nghĩa dữ liệu, truy vấn dữ liệu và cập nhật

dữ liệu

Còn được gọi là SEQUEL (Structured EnglishQuery Language), được phát triển bởi IBM(1970)

Trang 5

Bảng là bag  quan hệ là set.

Trang 6

[HAVING <biểu_thức_điều_kiện_nhóm>]

[ORDER BY tên_cột_thứ_tự | số_thứ_tự_cột | biểu thức]  [ASC | DESC]

Trang 7

Truy vấn đơn giản

SELECT <các cột yêu cầu>

FROM <d/s bảng liên quan>

WHERE <điều kiện dòng>

 Xét lược đồ quan hệ:

SINHVIEN(MaSV, HoTen, Phai, MaLop)

Cho biết Mã và họ tên những sinh viên lớp

‘07DHTH’ ?

• Yêu cầu: Mã, họ tên

• Bảng liên quan: SINHVIEN

• Điều kiện: lớp ’07DHTH’

SELECT MaSV, HoTen FROM SINHVIEN

WHERE MaLop= ’07DHTH ’

Trang 8

Truy vấn đơn giản

Xét bảng dữ liệu MONHOC như sau:

Liệt kê danh sách mã và tên những môn học

có số tín chỉ >2.

SELECT MaMH, TenMH

From MONHOC

Where SoTC>2

Trang 9

SINHVIEN(MaSV, HoTen, Tuoi, MaLop)

Biểu thức kết nối 2 quan hệ trên là:

SINHVIEN.MaLop=LOP.MaLop

Khoá ngoại Khoá chính

Trang 13

Mệnh đề GROUP BY

 GROUP BY được sử dụng để gom nhóm các bộ có cùng thuộc tính trong quan hệ, mỗi nhóm bao gồm tập hợp các bộ có cùng giá trị trên các thuộc tính gom nhóm.

Tập thuộc tính trong

mệnh đề SELECT

Tập thuộc tính trong mệnh đề GROUP BY

Trang 15

Mệnh đề HAVING

 Sử dụng cho điều kiện lọc trên các nhóm.

 Cú pháp: HAVING BiểuThứcĐiềuKiện

 Ví dụ: Liệt kê danh sách những lớp (MaLop)

có trên 2 sinh viên.

SELECT MaLopFROM SINHVIENGROUP BY MaLopHAVING Count(MaSV)>2

Lưu ý: Count(MaSV)  Count(*)

Trang 16

Truy vấn lồng

 Là dạng thức mà một truy vấn này được nhúng vào trong một truy vấn khác.

Trang 17

 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.

 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>

Trang 18

Truy vấn lồng

 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

Trang 19

đề 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

Trang 20

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

 Hiển thị các nhân viên ở phòng ‘Nghiên cứu’

SELECT MANV, TENNV

Trang 23

FROM NHANVIEN NV1, NHANVIEN NV2

WHERE NV1.LUONG > NV2.LUONG AND

NV2.PHG=4

Trang 25

WHERE SOTC>=ALL(SELECT SOTC

FROM MONHOC) >=ALL(2,3)

>=3

Trang 26

Ví dụ truy vấn lồng tương quan

 Cho biết mã và tên những môn học mà chưa

có sinh viên nào học?

SELECT MAMH, TENMH

FROM MONHOC

WHERE NOT EXISTS(SELECT * FROM KETQUA

WHERE MONHOC.MAMH=KETQUA.MAMH)

KETQUA

Trang 27

Ví dụ truy vấn lồng tương quan

Tìm nhân viên có người thân cùng tên và cùnggiớ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 )

Trang 28

Ví dụ truy vấn lồng tương quan

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

Trang 29

Ví dụ truy vấn lồng tương quan

Tìm những nhân viên có lương lớn hơn lươngcủa ít nhất một nhân viên phòng 4

Trang 30

Ví dụ truy vấn lồng tương quan

 Tìm 3 nhân viên có lương cao nhất

Trang 31

Nhận xét IN và EXISTS

IN

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

 Thuộc tính ở mệnh đề SELECT của truy vấncon 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ểuthứ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 32

Phép chia trong SQL

 r  s 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.

Trang 33

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 ))

Trang 36

Bài tập

Cho lược đồ cơ sở dữ liệu như sau:

KHOA(MaKhoa, TenKhoa) LOP(MaLop, TenLop, MaKhoa) SINHVIEN(MaSV, HoTen, NgaySinh, Phai, MaLop) MONHOC(MaMH, TenMH, SoTC)

KETQUA(MaSV, MaMH, Diem) Hãy viết các câu truy vấn sau bằng ngôn ngữ SQL:

1 Cho biết mã và tên những lớp thuộc khoa có tên CNTT

2 Cho biết mã và họ tên những sinh viên phái nam thuộc

lớp có mã lớp là ‘L001’

3 Cho biết mã và họ tên những sinh viên phái nam thuộc

lớp có mã lớp là ‘L001’ hoặc phái nữ học lớp có mã là

Trang 37

Bài tập (tt)

4 Cho biết mã và họ tên những sinh viên phái nam thuộc

lớp có tên lớp là ‘08 Đại học tin học’.

5 Liệt kê danh sách những môn học (MaMH) do sinh viên

8 Liệt kê danh sách những sinh viên (MaSV, HoTen) có

học môn với mã môn là ‘mh001’.

9 Cho biết mã khoa, tên khoa và số lớp trong từng khoa.

10 Mã và tên những khoa nào có số lớp trên 5.

Trang 38

Bài tập (tt)

11 Mã và tên những khoa có nhiều lớp nhất.

12 Cho biết mã sinh viên và số môn học của từng sinh viên.

13 Cho biết mã, họ tên và số môn học của từng sinh viên.

14 Cho biết mã và họ tên những sinh viên học trên 5 môn học.

15 Cho biết mã, họ tên những sinh viên học nhiều môn nhất.

16 Cho biết mã môn học và số sinh viên học của từng môn.

17 Cho biết mã môn học, tên môn học và số lượng sinh viên

Ngày đăng: 09/02/2022, 14:55

HÌNH ẢNH LIÊN QUAN

Ngôn ngữ SQL là gì? - Ngon ng truy vn SQL
g ôn ngữ SQL là gì? (Trang 4)
 Cho phép 1 bảng có nhiều dòng trùng nhau. - Ngon ng truy vn SQL
ho phép 1 bảng có nhiều dòng trùng nhau (Trang 5)
FROM &lt;danh_sách_bảng&gt; - Ngon ng truy vn SQL
lt ;danh_sách_bảng&gt; (Trang 6)
• Bảng liên quan: SINHVIEN - Ngon ng truy vn SQL
Bảng li ên quan: SINHVIEN (Trang 7)
Xét bảng dữ liệu MONHOC như sau: - Ngon ng truy vn SQL
t bảng dữ liệu MONHOC như sau: (Trang 8)
TênBảng1.TênCột1=TênBảng2.TênCột2 - Ngon ng truy vn SQL
n Bảng1.TênCột1=TênBảng2.TênCột2 (Trang 9)
 Từ khoá AS được dùng để đổi tên cột, tên bảng trong câu truy vấn - Ngon ng truy vn SQL
kho á AS được dùng để đổi tên cột, tên bảng trong câu truy vấn (Trang 10)