2. Giới thiệu
Query là công cụ cho phép truy vấn và xử
lý dữ liệu, rút trích để hiển thị những thông
tin cụ thể từ các Table và thay đổi dữ liệu
bằng nhiều cách khác nhau
Query còn được dùng để tạo nguồn số
liệu cơ sở cho các công cụ khác Form,
Report, kể cả Query khác
3. Query Nguồn dữ liệu
Reports
* Truy vấn
Forms
(xem, tổng hợp,
phân tích)
Query
* Rút trích Query
* Xử lý
Tables
(xem, sửa, cập nhật
dữ liệu mới)
Để thực hiện Query, bắt buộc phải có
Data database, trong database phải có
base table, và trong table phải có dữ liệu
4. Một số thuật ngữ
• Simple Query Wizard: Tạo query đơn giản với
sự hỗ trợ của Microsoft Access.
• Design View: Tạo query không có sự hỗ trợ
của Microsoft Access. Chúng ta sẽ sử dụng
cách này!
• Action Query: Là loại query có chức năng thay
đổi dữ liệu trong cơ sở dữ liệu
5. Các loại Query thường dùng
1. Select query (query chọn số liệu)
2. Delete query (query xóa số liệu)
3. Update query (query cập nhật số liệu)
4. Append query (query nối số liệu)
5. Make-table query (query tạo ra table)
6. CrosTab query (querry tham chiếu chéo)
6. Các loại Query khác
7. Find Duplicate query (query tìm các
record trùng lặp)
8. Find Unmatched query (query tìm các
record không khớp nhau)
9. Union query (query hợp số liệu)
10. Pass-through query (query chuyển giao)
11. Data-definition query (query định nghĩa
dữ liệu)
7. Tạo Query bằng Design view
B1: Chọn ngăn Query, click
Chọn
Design
View
Click OK
Cách khác: click đúp vào Create query in Design
view trong ngăn Query.
8. Các thành phần cơ bản trong QBE
Dòng Ý nghĩa
Field Thể hiện các cột, biểu thức trong truy vấn
Table Tên bảng tương ứng của cột
Sort Cho phép sắp xếp thứ tự cột tăng/ giảm
Total Sử dụng các hàm tính toán tổng hợp số liệu
Show Hiện hoặc ẩn cột
Criteria Biểu thức chứa điều kiện lọc
Or Hàm OR: kết hợp điều kiện hoặc để lọc
9. Tạo Query bằng Design view
B2: Đưa các table/query nguồn vào (dùng hộp
thoại Show table). Có thể mở hộp thoại này
bằng cách click chuột phải vào khu vực chứa
table/query rồi chọn Show Table.
B3: Lần lượt kéo thả các trường vào trong
lưới QBE hoặc tự tạo thêm các trường tính
toán mới.
B4: Thiết lập các điều kiện chọn dữ liệu.
B5: Click nút Datasheet View hoặc vào
ViewDatasheet view để xem kết quả.
Click nút Design View hoặc vào ViewDesign
view để trở lại chế độ thiết kế.
10. Một số thao tác trên Query
1. Thêm hoặc xóa các bảng trong khi tạo Query
2. Chèn thêm dòng tên bảng vào QBE
3. Chèn thêm cột vào QBE
4. Xóa cột trong QBE
5. Tạo các cột tính toán (Calculated Field) hoặc một
biểu thức trong truy vấn
6. Xem trước kết quả (thực hiện Query)
7. Lưu Query
8. Sử dụng các tham số trong vùng QBE để lọc dữ
liệu
11. Lưu ý
Tất cả các Table/Query tham gia trong
Query phải được liên kết với nhau (có thể
tạo kết nối giữa các table trong Query)
Bảng dữ liệu nguồn phải có mặt trong danh
sách các bảng tham gia truy vấn
Giá trị của khóa chính không hiển thị trùng
lắp
12. Xây dựng Calculated Field
Đặt con trỏ tại cột muốn sử dụng Calculated
Field
R-click chọn Build, hoặc click trên thanh
công cụ
Chèn Field, Control (điều khiển), Functions
(Hàm), Constants (Hằng)… và các toán tử từ
các thành phần trong hộp thoại để xây dựng
biểu thức
13. Lưu ý khi xây dựng Calculated Field
Tấtcả những thành phần trong công thức
phải có mặt trong các Table/Query nguồn
của Query hiện tại
Nếu sử dụng một Field hoặc Control từ
Form hoặc Report thì phải mở Form hay
Report đó trước.
14. Truy vấn nhóm dữ liệu
Ý nghĩa
Dùng để tính toán dữ liệu theo từng nhóm
có tính chất tổng cộng, thống kê tổng hợp
số liệu mà không quan tâm đến chi tiết số
liệu bên trong của từng dòng
15. Truy vấn nhóm dữ liệu
Thực hiện
Thiết kế trước 1 select Query
ViewTotals
hoặc R-Click vào vùng lưới QBE chọn Totals
hoặc biểu tượng Σ trên thanh công cụ Design
Sử dụng hàm tính toán tại dòng Totals để
thực hiện các phép toán cho các cột trong
truy vấn
16. Các hàm tính toán trong Totals
Group by: Trường dùng để nhóm dữ liệu
Sum: Tính tổng
Max/min: hàm lấy giá trị lớn nhất/nhỏ nhất
Avg: hàm lấy giá trị trung bình
Count: hàm đếm giá trị
First: lấy mẫu tin đầu tiên
Last: lấy mẫu tin cuối cùng
Where: Trường điều kiện
Expression: Cột tính toán ra một field mới
17. Lưu ý:
Các
cột tiêu đề thực hiện phép tính : Sum,
Count, First… được tạo ra với tên là Sumof,
Countof, …đổi tên:
Ghi tiêu đề mới ngay trên cột
Ghi vào thuộc tính tiêu đề (Caption)
Nếudòng Field dùng hàm Sum, IIf,… dòng
Totals tương ứng phải là Expression
Nếucột sử dụng điều kiện trong dòng Criteria thì
dòng Totals tương ứng là Where và không cho
hiển thị kết quả (tắt dấu ở dòng Show)
18. Thuộc tính của cột trong Query
• ViewProperties
• R-ClickProperties
• Click biểu tượng trên công cụ Query Design
Chuỗi mô tả cột
Định dạng dữ liệu
Mặt nạ nhập liệu
Tiêu đề
19. Thuộc tính của Query
R_Click vào vùng trống của Query, chọn Properties
Không Tổng số record sẽ được hiển thị khi thi hành Query
đồng Yes: không hiển thị giá trị trùng; No: ngược lại
thời là Yes: không hiển thị record trùng; No: ngược lại
Yes/No
21. Truy vấn con
Làmột truy vấn chọn lựa (select query)
được sử dụng như một điều kiện bên
trong một truy vấn khác
22. Thực hiện truy vấn lồng nhau
Tạo truy vấn con trong cùng nhất, chép
nội dung câu lệnh SQL
Tạo truy vấn cha, dán nội dung câu lệnh
SQL của truy vấn con vào dòng điều kiện
của cột cần so sánh điều kiện
Lưu ý:
Số cột trả về của truy vấn con phải là một
23. Truy vấn con
Khái niệm: là truy vấn mà việc tính tóan
tương đối phức tạp đòi hỏi phải có nhiều
truy vấn lồng vào nhau
Thí dụ: cho biết danh sách các sinh viên
có học bổng cao nhất trong khoa tin học
24. Cách 1: (không dùng truy vấn con)
Bước 1: Tạo truy vấn 1 để tìm ra số tiền
học bổng cao nhất trong khoa tin học
Bước 2: Tạo truy vấn 2 sẽ chọn các sinh
viên có học bổng cao nhất mà chúng ta đã
tìm ở truy vấn 1 và sinh viên đó phải đồng
thời học ở khoa tin học
25. Cách 2: (Dùng truy vấn con)
Bước 1: Tạo truy vấn 1 để tìm ra số tiền học
bổng cao nhất trong khoa tin học, chạy xem kết
quả.
Bước 2: Tạo truy vấn cha tạo ra các sinh viên
học ở khoa tin học và có học bổng bằng với giá
trị trả về của truy vấn 1 (Chép nội dung câu lệnh
SQL của truy vấn con (truy vấn 1) và lồng vào 1
cột tương ứng tại vùng criteria của truy vấn cha,
có thể dùng cac toán tử so sánh như: Not, in, >,
<…)
26. Crosstab Query
Thiết kế 1 Select Query
Chuyển Select Query sang Crosstab Query
(R-Click vào vùng lưới QBE/ Chọn Query
Type/Crosstab Query
Crosstab:
Tổng hợp theo hàng (Row heading)
Tổng hợp theo cột (Column heading)
Lấy giá trị trả về (Value)
Total: nhóm tổng hợp số liệu theo một field
29. Query có tham số (Parameter query)
Tham số trong truy vấn dùng để thực hiện các
truy vấn theo một điều kiện "động" nào đó.
Điều kiện động có thể ở một trong 2 dạng:
Là một giá trị được người sử dụng nhập vào khi
thực hiện một truy vấn
Hoặc là một giá trị của một điều khiển (control)
nằm trên một biểu mẫu đang mở ở chế độ cập nhật
dữ liệu.
30. Query có tham số (Parameter query)
Đặt tên tham số giữa 2 dấu ngoặc vuông [] ở
dòng Criteria.
Ví dụ:
[Ngay hoa don]
[Loại hóa đơn]
Vídụ: Thể hiện tất cả các hóa đơn nhập và
xuất hàng của một kho bất kỳ nào đó mà khi
chạy truy vấn người sử dụng sẽ nhập vào một
mã kho tương ứng muốn xem.
31. Max/min query
Tạo select query chứa các trường cần
chọn ra các giá trị min/max.
Sắp xếp tăng/giảm dần theo trường muốn
chọn ra giá trị min/max.
Thay đổi thuộc tính Top value của query
để có được giá trị min/max cần tìm.
32. Các thành phần cơ bản trong Query
• Số: 1,4,7,10…
Hằng • Chuỗi, ký tự: “Nguyễn Văn A”
• Ngày: #10/6/1999#
Kiểu dữ liệu Tên Table Tên biến trường
• Biến trường: [SINHVIEN]![HOTEN]
Biến
• Biến tham số: [Nhap ma sinh vien]
Biểu thức • BT logic (Dùng trong Criteria)
• BT tính toán được (Dùng trong Field)
33. Các Ký tự đại diện
Đạidiện cho nhiều kí tự ngay vị trí nó xuất hiện
Được sử dụng khi:
Bạn chỉ biết 1 phần giá trị muốn tìm
Bạn muốn tìm những giá trị bắt đầu với 1 ký tự xác định
hoặc kết hợp những thành phần nào đó
Được sử dụng trong:
Hộp thoại Find and Repalce
Query
Lệnh
Biểu thức
34. Các Ký tự đại diện (tt)
Ký tự Đại diện cho Ví dụ
* Nhiều ký tự (B2,3,4,7) Wh* What, While, Why
? 1 ký tự B?ll Ball, Bell, Bill
[] 1 ký tự trong dấu [ ] B[a,e]ll Ball, Bell
! 1 ký tự không có B[!a,e]ll Bill, Bull,
trong dấu [ ] nhưng không là Bell, Ball
- 1 ký tự trong khoảng B[a-c]d Bad, Bbd, Bcd
(B6)
# 1 số 1#3 113, 123, 133…
35. Các ký tự đại diện (tt)
Lưu ý:
Ký tự đại diện chỉ sử dụng trong kiểu dữ liệu:
Text
Date (qui định lại môi trường Regional Setting)
Khidùng ký tự đại diện để tìm các dấu * ? ! #, -
[ phải đặt các thành phần này trong dấu [ ]
Ví dụ [*], [?], [#]…
Không thể tìm [ ] cùng 1 lúc vì nó ~ chuỗi rỗng
36. Toán tử
Toán tử số học (+ , - , * , / , ^ , , Mod)
Toán tử logic (= , <> , > , >= , < , <= ,
And , or , Not )
Toán tử khác: & , Like , Between , In ,
Format , Is Null, Is Not Null)
37. Toán tử số học
+ , - , * , / : cộng, trừ, nhân, chia
^: lũy thừa. Ví dụ: 2^3 = 8
: chia lấy phần nguyên Ví dụ: 72 = 3
Mod: chia lấy phần dư Ví dụ: 7 Mod 2 = 1
38. Toán tử logic
=, <> : Bằng, khác
>, >= : Lớn hơn, lớn hơn hoặc bằng
<, <= : Bé hơn, bé hơn hoặc bằng
And : và
Or : hoặc
NOT : không
39. Toán tử And
Biểu
Cú pháp: BT1 And BT2 And BT3 thức
logic
BT1, BT2, BT3… đều là True True
Ví dụ: (1<3) And (2<8) : Kết quả là True
True True
Ngược lại False
Ví dụ: (1<3) And (9<7) : Kết quả là False
True False
40. Toán tử Or
Biểu
Cú pháp: BT1 Or BT2 Or BT3 thức
logic
BT1, BT2, BT3… đều là False False
Ví dụ: (2>4) Or (7<6) : Kết quả là False
False False
Ngược lại True
Ví dụ: (1<3) Or (9<7) : Kết quả là True
True False
41. Toán tử Not
Biểu
Cú pháp: Not BT thức
logic
BT là True False
Ví dụ: Not (3>9): Kết quả là True
False
BT là False True
Ví dụ: Not (4<8): Kết quả là False
True
42. Các toán tử khác
&
Like
Between
In
Format
Is Null
Is Not Null
43. Toán tử &
Ghép chuỗi
VD 1:
“Cơ sở” & “Tin học” & “đường 3/2”
“Cơ sở Tin học đường 3/2”
VD 2: C2,3,4)
[HONV] & [TENNV]
“Họ và tên nhân viên”
44. Toán tử Like
Cú pháp: <BT> Like <Mẫu>
Biểu thức chuỗi Chuỗi ký tự (có thể dùng ký tự đại diện)
Cho kết quả là True nếu biểu thức thỏa mẫu
Ví dụ: “aBBBa” Like “a*a” True
Ngược lại cho kết quả là False
Ví dụ: “F” Like “[A-E]” False
45. Toán tử Between
Cú pháp: <BT> Between GT1 And GT2
Biểu thức Các giá trị
Cho kết quả là True nếu giá trị của BT nằm trong
khoảng GT1 đến GT2
Ví dụ: 4 Between 2 And 9 True
Ngược lại cho kết quả là False
Ví dụ: 10 Between 1 And 3 False
46. Toán tử In
Cú pháp: <BT> In (GT1, GT2, GT3,…
Biểu thức Các giá trị
Cho kết quả là True nếu giá trị của BT nằm trong
khoảng GT1, GT2, GT3,…
Ví dụ: 4 In (1,2,3,4,5,6) True
Ngược lại cho kết quả là False
Ví dụ: 5 In (1,2,3,9) False
47. Toán tử Format
Cú pháp: Format(x,n)
Số Kiểu định dạng hiển thị số
Cho kết quả là số hiển thị theo kiểu định dạng
(tương tự như hàm làm tròn trong Excel)
Ví dụ: Format (1234,64558, “#,###.###”) = 1,234.646
Ví dụ: Format (1234,64558, “#,###.##”) = 1,234.65
Ví dụ: Format (1234,64558, “#,###.#”) = 1,234.6
Ví dụ: Format (1234,64558, “#,###.#”) = 1,235
48. Toán tử Is Null
Cú pháp: Is Null(GTMT)
Mẫu tin tại trường cần kiểm tra
Cho kết quả True nếu giá trị của mẫu tin tại một
trường là rỗng
Cho kết quả False nếu giá trị của mẫu tin tại một
trường là không rỗng
49. Toán tử Is Not Null (ngược lại hàm Is Null)
Cú pháp: Is Not Null(GTMT)
Mẫu tin tại trường cần kiểm tra
Cho kết quả True nếu giá trị của mẫu tin tại một
trường là không rỗng
Cho kết quả False nếu giá trị của mẫu tin tại một
trường là rỗng
50. Các hàm cơ sở dữ liệu
Cú pháp chung:
<Tên hàm> (<Biểu thức>, <Phạm vi>,[Điều kiện])
Biểu thức: chuỗi dùng để xác định tên trường dùng tìm
giá trị cần trả về
- Field của 1 Table
- Control của 1 Form
- Hằng, hàm của Access basic
Phạm vi: chuỗi dùng để xác định miền làm việc
- Tên Table hay Query
- Câu lệnh SQL
Điều kiện: biểu thức chuỗi dùng để hạn chế phạm vi
dữ liệu mà hàm thực hiện (có thể có hoặc không)
51. Hàm DAVG
Ý nghĩa: Tính trung bình của 1 Field nào đó
trong phạm vi xác định theo điều kiện:
Ví dụ: Tính học phí trung bình cho những sinh viên ngành
sư phạm
DAVG(“[SOTIEN]”,”SV”,”[MAKH]=‘SP’”)
Biểu thức Phạm vi Điều kiện
52. Hàm DCOUNT
Ý nghĩa: Đếm số Record trong phạm vi xác định theo
điều kiện. Không đếm các record có giá trị Null.
Nếu dùng ký tự đại diện “*” hàm sẽ đếm các
record có giá trị Null
Ví dụ: Đếm số sinh viên ngành sư phạm
DCOUNT(“*”,”SV”,”[MAKH]=‘SP’”)
Biểu thức Phạm vi Điều kiện
53. Hàm DLOOKUP
Ý nghĩa: Tìm giá trị Field trong phạm vi xác định theo
điều kiện
Ví dụ: Sinh viên Võ Thị Thảo Oanh học ngành nào
DLOOKUP(“[TENNG]”,”SV”,”[HOTEN]=‘Võ Thị
Thảo Oanh’”)
Biểu thức Phạm vi
Điều kiện
54. Hàm DMIN
Ý nghĩa: Trả về giá trị nhỏ nhất trong phạm vi xác định
theo điều kiện.
Hàm này chỉ làm việc với Field kiểu số
Ví dụ: Xác định học phí nhỏ nhất của Sinh viên ngành sư
phạm
DMIN(“[SOTIEN]”,”SV”,”[MAKH]=‘SP’”)
Biểu thức Phạm vi Điều kiện
55. Hàm DMAX
Ý nghĩa: Trả về giá trị lớn nhất trong phạm vi xác định
theo điều kiện.
Hàm này chỉ làm việc với Field kiểu số
Ví dụ: Xác định học phí lớn nhất của Sinh viên ngành sư
phạm
DMAX(“[SOTIEN]”,”SV”,”[MAKH]=‘SP’”)
Biểu thức Phạm vi Điều kiện
56. Hàm DSUM
Ý nghĩa: Tính tổng của một Field số trong phạm vi xác
định theo điều kiện
Hàm này chỉ làm việc với Field kiểu số
Ví dụ: Tính tổng học phí của Sinh viên ngành sư phạm
DSUM(“[SOTIEN]”,”SV”,”[MAKH]=‘SP’”)
Biểu thức Phạm vi Điều kiện
57. Hàm DFIRST
Ý nghĩa: Trả về Field đầu tiên thỏa điều kiện trong phạm
vi xác định
Ví dụ: Tìm tên của Sinh viên đầu tiên ngành sư phạm
DFIRST(“[HOTEN]”,”SV”,”[MAKH]=‘SP’”)
Biểu thức Phạm vi Điều kiện
58. Hàm DLAST
Ý nghĩa: Trả về Field cuối cùng thỏa điều kiện trong
phạm vi xác định
Ví dụ: Tìm tên của Sinh viên cuối cùng ngành sư phạm
DLAST(“[HOTEN]”,”SV”,”[MAKH]=‘SP’”)
Biểu thức Phạm vi Điều kiện
59. Một số hàm thường dùng khác
Hàm Now(): trả về ngày tháng năm hiện tại
Hàm Year(Date): trả về năm của Date (C1)
Hàm Month(Date): trả về tháng của Date
Hàm Day(Date): trả về ngày của Date (C3)
Với Date là 1 biến hoặc 1 giá trị kiểu date/time
60. Hàm IIF
Cú pháp: IIF(“Điều kiện”,”Giá trị 1”,”Giá trị
Ý nghĩa: Trả về giá trị 1 nếu điều kiện là đúng, ngược 2”)
lại
trả về giá trị 2
Ví dụ: Nếu phái của sinh viên là yes, ghi “nam”, ngược lại
ghi “nữ” (C2,4)
IIF(“[PHAI]=Yes”,”NAM”,”NỮ”)
Điều kiện giá trị 1 giá trị 2
61. Make-table Query
Thiếtkế 1 Select Query hoàn chỉnh
Chuyển Select Query sang Make-table
Query (R-Click vào vùng lưới QBE/ Chọn
Query Type/Make-table Query
Nhập tên bảng mới vào ô Table name
Lưu ý: Có thể chọn Current Database
hoặc Another Database
62. Update Query
Thiếtkế 1 Select Query
Chọn bảng có dữ liệu cần cập nhật
Chuyển Select Query sang Update Query (R-click
vào vùng lưới QBE/ Chọn Query Type/Update
Query
Chọn field cần update
Chọn các field điều kiện và đặt điều kiện Update
Nhập thông tin cần Update vào dòng Update to
63. Delete Query
Thiết kế 1 Select Query
Chọn bảng có dữ liệu cần xóa
Chuyển Select Query sang Delete Query (R-Click
vào vùng lưới QBE/ Chọn Query Type/Delete
Query
Chọn field đặt điều kiện xóa
Lưu ý:Nếu những table liên kết với nhau theo quan
hệ 1-nhiều và qui định thuộc tính Cascade Delete
Relate Record thì các Record bên bảng nhiều cũng
sẽ bị xóa
64. Append Query
Thiếtkế 1 Select Query
Chọn bảng chứa dữ liệu nguồn (có thể không có)
Chuyển Select Query sang Append Query (R-Click
vào vùng lưới QBE/ Chọn Query Type/Append
Query
Chọn bảng cần nối thêm dữ liệu
Nhập giá trị hoặc field cần thêm vào tại dòng Field
(Hằng số, Tham số, Field của 1 Table)
Chọn dòng cần nối thêm tương ứng tại dòng
Append to
Lưu ý: Khóa chính không nhập trùng
65. Find Duplicate Query
Chọn QueryNewFind Duplicate Query
Chọn Table hoặc Query làm dữ liệu nguồn
Chọn trường cần đưa vào khóa xác định
giá trị giống nhau trên các mẫu tin
Chọn các trường kế tiếp
Đặt tên cho Query, chọn Finish