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

Bài giảng Tin học cơ sở 3 bài 4: Query

97 4 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Query
Trường học Trường Đại học Khoa Học Tự Nhiên - Đại học Quốc Gia TP.HCM
Chuyên ngành Quản trị Cơ sở dữ liệu với Access
Thể loại Bài giảng
Năm xuất bản 2023
Thành phố TP.HCM
Định dạng
Số trang 97
Dung lượng 2,17 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 Tin học cơ sở 3 bài 4: Query được biên soạn gồm các nội dung sau: khái niệm query; các loại query, các công cụ tạo query trong access; một số toán tử, lệnh và hàm trong SQL; Query tham số. Mời thầy cô và các em cùng tham khảo chi tiết bài giảng.

Trang 1

Find duplicate Query

Find unmatched Query

QUERY CÓ THAM SỐ

79

Quản trị Cơ sở dữ liệu với Access

Trang 2

Table & Relationship: Tổ chức, sắp xếp, lưu trữ dữ liệu

Query: Cập nhật, kiểm tra, truy xuất, tổng hợp dữ liệu

Công cụ cho phép thực hiện các thao tác trên cơ sở dữ

liệu như:

Thêm, sửa, xóa dữ liệu

Tạo table từ các table/query khác

Tập hợp, tính toán, tổng hợp dữ liệu từ các table/query khác

Query là nguồn dữ liệu cung cấp cho Report, Form

80

Quản trị Cơ sở dữ liệu với Access

Trang 3

1 Select Query (Truy vấn Chọn số liệu):

Chọn cho hiển thị dữ liệu trên một hoặc nhiều tables

theo những điều kiện nào đó

Ví dụ: Liệt kê kết quả thi môn THCSC của sinh viên lớp 10QTKD01

Tính toán và hiển thị dữ liệu theo nhóm

Ví dụ: Đếm số lượng sinh viên theo từng lớp

81

Quản trị Cơ sở dữ liệu với Access

Trang 4

2 CrossTab Query: (Truy vấn Tham chiếu chéo):

Dùng để tính toán và hiển thị dữ liệu từ dạng dòng

thành dạng cột

Dùng để lập bảng tổng hợp/phân tích số liệu

Tính toán cho từng nhóm, mỗi nhóm thể hiện trên 1 dòng

Phân tích giá trị tính được của mỗi nhóm theo các cột

Ví dụ: Lập bảng kê số lượng sinh viên thi lần 2, học kỳ một cho từng lớp Yêu cầu thể hiện chi tiết số lượng dự thi từng môn

82

Quản trị Cơ sở dữ liệu với Access

Trang 5

3 Make-Table Query: (Truy vấn Tạo table):

Cũng là một Select query nhưng sẽ có một table mới

được tạo ra để lưu kết quả truy vấn

Dùng để cập nhật dữ liệu trong table Có thể kèm theo

điều kiện hoặc không

Ví dụ: Cộng 1 điểm cho tất cả các sinh viên thi môn THCS3

83

Quản trị Cơ sở dữ liệu với Access

Trang 6

5 Append Query: (Truy vấn thêm dữ liệu):

Dùng để thêm record từ table/query A vào table B Nếu table B có một field F nào đó mà A không có, thì field F

bên B nhận giá trị Null

Dùng để xóa record khỏi table

Ví dụ xóa khỏi table Sinhvien những records có MALOP =

’07QTKD01’

84

Quản trị Cơ sở dữ liệu với Access

Trang 7

7 Find Duplicate Query (Tìm dữ liệu trùng)

Dùng để tìm những records có giá trị trùng nhau trên

những fields nào đó Thường dùng để làm sạch dữ liệu

Ví dụ tìm những sinh viên trùng mã sinh viên

Dùng để tìm những records có giá trị không hợp lệ

giữa hai tables trên một hoặc nhiều fields

Ví dụ tìm những sinh viên có MALOP không có trong table Lop

Hoặc tìm những records trong table Diem mà giá trị của field

MASV không có trong table Sinhvien

85

Quản trị Cơ sở dữ liệu với Access

Trang 8

Access cung cấp 3 công cụ tạo query là: Query Wizard, Môi

trường thiết kế với QBE (Design View) và Ngôn ngữ SQL

(SQL View)

Việc chọn công cụ nào để tạo query là tùy theo:

Phù hợp (hoặc dễ thực hiện) với loại query

Thói quen, sở thích của người dùng

Có khi ta dùng công cụ này để tạo trước, sau đó dùng công cụ khác

để chỉnh sửa

1 Dùng Query Wizard

Query Wizard sẽ dẫn dắt ta khai báo từng bước để xây dựng một

query

Query Wizard chỉ hỗ trợ một số loại query

Ví dụ: Liệt kê danh sách sinh viên gồm các fields: Mã sinh viên, Họ,

Tên và Tên lớp

86

Quản trị Cơ sở dữ liệu với Access

Trang 9

Bước 1: Chọn tab Create sau đó click vào Query Wizard

87

Quản trị Cơ sở dữ liệu với Access

Trang 10

Bước 2: Chọn loại query muốn tạo, sau đó click OK

88

Quản trị Cơ sở dữ liệu với Access

Trang 11

Bước 3: Chọn dữ liệu cần truy xuất, sau đó click Next

89

Quản trị Cơ sở dữ liệu với Access

Chọn table và/hoặc query có

chứa dữ liệu cần truy xuất

Chọn fields cần truy xuất

Bạn có thể chọn nhiều hơn 1 table/query

Trang 12

Bước 4: Đặt tên cho query, sau đó click Finish

90

Quản trị Cơ sở dữ liệu với Access

Đặt tên cho query

Bạn muốn mở query hay chỉnh sửa lại thiết kế cho query

Trang 13

Query vừa tạo cho kết quả như sau:

91

Quản trị Cơ sở dữ liệu với Access

Trang 14

Ngoài việc hỗ trợ tạo các query đơn giản, Query Wizard còn là

công cụ giúp ta học cách thiết kế query cũng như học cách viết lệnh SQL

92

Quản trị Cơ sở dữ liệu với Access

Design View SQL View

Trang 15

2 Dùng Design View

Design View là môi trường thiết kế query trực quan

Gồm 2 phần: Phần thứ nhất chứa các tables tham gia

truy vấn và phần thứ 2 có dạng khung lưới gọi là QBE (Query By Example)

93

Quản trị Cơ sở dữ liệu với Access

Trang 16

Bước 1: Chọn tab Create, sau đó click vào Query Design

94

Quản trị Cơ sở dữ liệu với Access

Trang 17

Bước 2: Thêm các table/query tham gia vào query

95

Quản trị Cơ sở dữ liệu với Access

Trang 18

Bước 3: Khai báo các tùy chọn

Trong hầu hết các ô trong lưới QBE đều có combo box để ta lựa chọn giá

trị mà không phải gõ vào

Các ô trên dòng Field dùng để khai báo các fields cần truy xuất

Các ô trên dòng Table dùng để khai báo các table ứng với field ở trên nó

Các ô trên dòng Sort có các giá trị: Ascending, Descending và (not sorted)

96

Quản trị Cơ sở dữ liệu với Access

Trang 19

Bước 3: Khai báo các tùy chọn (tt)

97

Quản trị Cơ sở dữ liệu với Access

((Diem.DIEM)=0) AND ((Diem.HOCKY) In (1,2)))

OR

((Diem.DIEM)<5) AND ((Diem.HOCKY) In (1,2)))

Nguyên tắc kết hợp các ô điều kiện:

Các ô trên cùng một dòng được kết hợp nhau theo phép AND

Các ô khác dòng được kết hợp nhau theo phép OR

Trang 20

Xem kết quả: Chọn chế độ xem DataSheet View để xem thử kết quả

98

Quản trị Cơ sở dữ liệu với Access

Trang 21

3 Dùng ngôn ngữ SQL:

Khi ta tạo query bằng Query Wizard hay trên Design

View, Access cũng tự sinh ra câu lệnh SQL tương ứng

99

Quản trị Cơ sở dữ liệu với Access

Trang 22

3 Dùng ngôn ngữ SQL: (tt)

SQL

(Structured Query Language –

ngôn ngữ vấn tin có cấu trúc)

là ngôn ngữ dùng để viết các

query trong Access cũng như

trong hầu hết các hệ quản trị

cơ sở dữ liệu

Ta có thể viết trực tiếp câu

lệnh SQL thông qua cửa sổ

SQL View

100

Quản trị Cơ sở dữ liệu với Access

Trang 24

1 Cú pháp cơ bản cho Select Query:

SELECT <danh sách fields, biểu thức, *> [AS <Caption>]

FROM <danh sách table>

[ WHERE <Điều kiện cho dữ liệu> ]

Trang 25

1 Cú pháp cơ bản cho Select Query: (tt)

SELECT <danh sách fields, biểu thức, *> [AS <Caption>]

FROM <danh sách table>:

Truy xuất những fields (hoặc biểu thức trên fields) nào

Dấu * thể hiện tất cả các fields của table

AS <Caption>: Hiển thị với tiêu đề là <caption> - Tùy chọn, nếu không đề cập thì tiêu đề mặc nhiên là thuộc tính Caption của field

<danh sách table>: Các fields ở trên nằm trong các tables nào

Vd1:

SELECT Sinhvien.MASV, Sinhvien.HO, Sinhvien.TEN FROM Sinhvien

Vd2:

SELECT Sinhvien.HO + Sinhvien.TEN AS HoVaTen FROM Sinhvien

Vd3: SELECT Sinhvien.*, Lop.TENLOP FROM Sinhvien, Lop

103

Quản trị Cơ sở dữ liệu với Access

Trang 26

1 Cú pháp cơ bản cho Select Query: (tt)

[ WHERE <Điều kiện cho dữ liệu> ] : Chỉ những records thỏa

điều kiện mới được truy xuất

Trang 27

1 Cú pháp cơ bản cho Select Query: (tt)

[ GROUP BY <ds fields>

[HAVING <ĐK cho nhóm> ] ]

Gom nhóm số liệu theo field nào - Thường kèm theo cho các hàm tính toán số liệu theo nhóm như Sum (tính tổng), Average (tính trung bình cộng), Count (đếm số lượng)…)

[HAVING <ĐK cho nhóm>]]: Đ.kiện hạn chế cho các dòng kết quả

Vd1:

SELECT Sinhvien.MALOP, Count(*) AS [Số lượng SV] FROM Sinhvien

GROUP BY Sinhvien.MALOP

Vd2:

SELECT Sinhvien.MALOP, Count(*) AS [Số lượng SV] FROM Sinhvien

WHERE Left(Sinhvien.MALOP,2)=‘10’ GROUP BY Sinhvien.MALOP

HAVING Count(*) >10

105

Quản trị Cơ sở dữ liệu với Access

Trang 28

1 Cú pháp cơ bản cho Select Query: (tt)

[ ORDER BY <ds fields> [ASC/DESC] ]

Sắp xếp dữ liệu theo fields nào

ASC: Sắp tăng dần (mặc định); DESC: Sắp giảm dần

Vd:

SELECT Diem.MASV, Diem.MAMH, Count(*) AS [Số lần thi],

Avg(Diem.DIEM) AS [Trung bình]

FROM Diem

GROUP BY Diem.MASV, Diem.MAMH

ORDER BY Diem.MASV, Diem.MAMH DESC

106

Quản trị Cơ sở dữ liệu với Access

Trang 30

2 Một số phép toán thường dùng: (tt)

Các phép toán đặc biệt:

Toán tử nối chuỗi & : ‘Microsoft’ & ‘-Access’ = ‘Microsoft-Access’

Toán tử so sánh tương đối Like <pattern> :

<pattern> (mẫu so sánh) là đó là một dãy ký tự bất kỳ, trong đó có các ký tự có ý nghĩa đặc biệt sau đây:

? đại diện cho một ký tự bất kỳ tại vị trí có dấu chấm hỏi

* đại diện cho một dãy ký tự bất kỳ tại vị trí đó

# đại diện cho các ký số

[ <ký tự đầu> - <ký tự cuối> ] : Biểu diễn d.sách được phép cho 1 ký

Trang 31

2 Một số phép toán thường dùng: (tt)

Các phép toán đặc biệt:

Is Null/ Is Not Null: Kiểm tra giá trị của một field có phải là Null

hay không SELECT Sinhvien * FROM Sinhvien WHERE Sinhvien.TEN Is Not Null

Between <giá trị 1> and <giá trị 2>: Lấy các giá trị thuộc đoạn

[giá trị 1, giá trị 2]

Ví dụ:

1 Between 1 And 3 cho kết quả là True

3 Between 1 And 3 cho kết quả là True

3.1 Between 1 And 3 cho kết quả là False

109

Quản trị Cơ sở dữ liệu với Access

Trang 32

3 Một số hàm thường dùng:

MIN: Trả về trị tối thiểu

MAX: Trả ra trị tối đa SELECT MAX(Diem.DIEM) AS [Điểm lớn nhất], Min(Diem.DIEM) AS [Điểm nhỏ nhất] FROM Diem WHERE LEFT(Diem.MASV,2)='10‘

Trang 33

3 Một số hàm thường dùng: (tt)

LEFT(<Chuỗi>,<n>): Cắt n ký tự bên trái của chuỗi

RIGHT(<Chuỗi>,<n>): Cắt n ký tự bên phải của chuỗi

MID(<Chuỗi>,<i>,<n>): Cắt n ký tự của chuỗi, bắt đầu tại vị trí i

TRIM(<Chuỗi>): Cắt bỏ khoảng trắng ở 2 đầu chuỗi

IIF(<Điều kiện>,<Giá trị 1>,<Giá trị 2>): Trả về giá trị 1 nếu

điều kiện đúng, ngược lại trả về giá trị 2

Trang 34

TẠO QUERY

Phần này sẽ tìm hiểu cách tạo các loại query

Vì ta đã tìm hiểu về các loại query và cách thức sử dụng các

công cụ tạo query rồi, nên ta sẽ tìm hiểu cách tạo query thông qua ví dụ

Ta sẽ lần lượt tìm hiểu cách tạo các loại query sau:

7 Find duplicate Query

8 Find unmatched Query

112

Quản trị Cơ sở dữ liệu với Access

Trang 35

Ví dụ 1: In bảng điểm thi lần 2, học kỳ 1 của tất cả các sinh

viên Bảng điểm có dạng:

MÃ SV | HỌ | TÊN | MÃ MÔN HỌC | ĐIỂM

Danh sách được sắp theo thứ tự tăng dần của Mã sinh

viên Trong cùng một mã sinh viên, thứ tự các môn học

cũng được sắp tăng dần

113

Quản trị Cơ sở dữ liệu với Access

Trang 36

1 Phân tích yêu cầu:

Các tables và fields cần truy xuất:

Diem.LAN, Diem.HOCKY, Diem.MASV, Sinhvien.HO, Sinhvien.TEN,

Trang 39

2 Thực hiện bằng QBE:

Bước 3: Thiết kế trên lưới QBE

Các table.fields theo yêu cầu

Sort: Diem.MASV ASC; Diem.MAMH ASC

Show: Không hiển thị diem.LAN và Diem.HOCKY

Criteria: Diem.LAN=1 AND Diem.HOCKY=1

Không thêm điều kiện OR

117

Quản trị Cơ sở dữ liệu với Access

Trang 41

2 Thực hiện bằng QBE:

Câu lệnh SQL do Access sinh ra cho query trên như sau: (Xem ở cửa

sổ SQL View)

119

Quản trị Cơ sở dữ liệu với Access

Câu hỏi: Tại sao trong câu lệnh SQL này:

- Không có 2 fields Diem.LAN và Diem.HOCKY sau SELECT?

- Biểu thức INNER JOIN sau FROM do đâu mà có?

Trang 42

Select Query có kết nhóm (có GROUP BY)

Ví dụ 2: Hãy thống kê số lượng sinh viên theo từng lớp

tham gia thi lần 2 học kỳ 1 Chỉ lấy những lớp có số lượng tham gia thi ít hơn 5 Bảng in ra có dạng:

MÃ LỚP | TÊN LỚP | SỐ LƯỢNG SV THI

Danh sách được sắp theo thứ tự giảm dần của SỐ LƯỢNG

SV THI, sau đó là thứ tự tăng dần của Mã lớp

120

Quản trị Cơ sở dữ liệu với Access

Trang 43

1 Phân tích yêu cầu:

Các tables và fields cần truy xuất:

Lop.MALOP, Lop.TENLOP, Diem.LANTHI, Diem.HOCKY

Gom nhóm theo: Lop.MALOP

Điều kiện trên dữ liệu:

Trang 47

2 Thực hiện bằng QBE:

Bước 4: Thiết kế trên lưới QBE

Các table.fields theo yêu cầu

Sort: Diem.MASV ASC; Diem.MAMH ASC

Show: Chỉ hiển thị Lop.MALOP, Lop.TENLOP và [Số lượng SV

thi]

Criteria:

WHERE: Diem.LAN=1 AND Diem.HOCKY=1

HAVING: [Số lượng SV thi]

125

Quản trị Cơ sở dữ liệu với Access

- Khi tạo query kết nhóm ta cần đặt cột nhóm dữ liệu đứng ở đầu các cột của lệnh Select

Trang 49

2 Thực hiện bằng QBE:

Câu lệnh SQL do Access sinh ra cho query trên như sau: (Xem ở cửa

sổ SQL View)

127

Quản trị Cơ sở dữ liệu với Access

- Thứ tự các cột được chỉ định trong mệnh đề SELECT phải

như thứ tự các cột chỉ định trong mệnh đề GROUP BY

Trang 50

Ví dụ: Lập bảng kê số lượng sinh viên thi lần 2, học kỳ một

cho từng lớp Yêu cầu thể hiện chi tiết số lượng dự thi

từng môn từng môn theo dạng:

Mã Lớp | Tên Lớp | SLSV thi | Môn 1 | Môn 2 |

128

Quản trị Cơ sở dữ liệu với Access

Trang 57

Ví dụ: Lập danh sách các sinh viên họ Nguyễn, thi học kỳ 1

hoặc học kỳ 2, lần 1 được 0 điểm hoặc thi lần 2 <5 điểm

Lưu danh sách vào table mới với tên là New-Table

Trang 58

3 Nhập tên table mới để chứa kết quả

Nếu Table mới nằm ở một Database khác thì chọn Another

Trang 59

4 Click nút lệnh Run để chạy query

137

Quản trị Cơ sở dữ liệu với Access

Trang 60

Xem nội dung của table mới tạo ra:

138

Quản trị Cơ sở dữ liệu với Access

Trang 61

Câu lệnh SQL của query:

139

Quản trị Cơ sở dữ liệu với Access

Trang 62

Ví dụ: Nâng lên thành 5 điểm cho những sinh viên thi lần 2,

học kỳ 2 mà kết quả được 4 điểm

Cách thực hiện:

1 Tạo Select Query lấy dữ liệu thỏa yêu cầu (tham khảo

cách tạo Select Query ở phần trước)

Xem thử kết quả của Select Query:

140

Quản trị Cơ sở dữ liệu với Access

Trang 63

2 Trên màn hình Design View, click vào nút lệnh Update

141

Quản trị Cơ sở dữ liệu với Access

Trang 64

3 Trên lưới QBE, tại dòng Update To của cột DIEM, ta nhập

số 5 là giá trị mới cần update

Lúc này nếu ta xem ở chế độ DataSheet View, ta vẫn thấy

giá trị cũ Muốn giá trị mới được update, ta phải click nút Run

142

Quản trị Cơ sở dữ liệu với Access

Trang 65

4 Click nút lệnh Run để chạy query Click Yes để update

Nếu xem lại ở chế độ DataSheet View, ta không còn thấy những

records thỏa điều kiện nữa

143

Quản trị Cơ sở dữ liệu với Access

Trang 66

Câu lệnh SQL tương ứng với query trên như sau:

144

Quản trị Cơ sở dữ liệu với Access

Trang 67

Ví dụ: Lập danh sách các sinh viên họ Lê, thi học kỳ 1 hoặc

học kỳ 2, lần 1 0 điểm hoặc thi lần 2 <5 điểm Ghép danh

sách vào table New-Table đã có

Trang 68

3 Chọn table đã có để ghép kết quả vào

Nếu Table đã có nằm ở một Database khác thì chọn Another

Trang 69

4 Chọn fields cần append trên dòng Append To ở lưới QBE

147

Quản trị Cơ sở dữ liệu với Access

Trang 70

5 Click nút lệnh Run để chạy query Click Yes để đồng ý

148

Quản trị Cơ sở dữ liệu với Access

Trang 71

Xem nội dung của table New-Table:

149

Quản trị Cơ sở dữ liệu với Access

3 records mới được thêm vào

Trang 72

Câu lệnh SQL của query:

150

Quản trị Cơ sở dữ liệu với Access

Trang 73

Ví dụ: Xóa khỏi table New-Table những sinh viên đạt 4

Trang 74

2 Trong chế độ Design View, click nút lệnh Delete

152

Quản trị Cơ sở dữ liệu với Access

Trang 75

3 Click nút lệnh Run để chạy query:

Thông báo: Bạn sắp xóa 4 dòng từ Table đã chỉ định – Một khi bạn

click Yes, bạn không thể dùng lệnh Undo Bạn có chắc chắn không?

Nếu chắn chắn xóa click Yes để đồng ý

153

Quản trị Cơ sở dữ liệu với Access

Trang 76

Xem nội dung của table New-Table:

154

Quản trị Cơ sở dữ liệu với Access

Không còn những records như điều kiện

Trang 77

Câu lệnh SQL của query:

155

Quản trị Cơ sở dữ liệu với Access

Trang 78

Với Find Duplicate Query, ta dùng Query Wizard để thực

hiện sẽ thuận lợi hơn

Ví dụ: Tìm những sinh viên có trùng mã sinh viên

1 Click nút lệnh Query Wizard

156

Quản trị Cơ sở dữ liệu với Access

Trang 79

2 Chọn loại wizard là Find Duplicate Query Wizard Xong

click OK

157

Quản trị Cơ sở dữ liệu với Access

Trang 80

3 Chọn Table cần lấy dữ liệu Click Next

158

Quản trị Cơ sở dữ liệu với Access

Ngày đăng: 17/12/2022, 06:05

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