1. CHƯƠNG 2 : TRUY VẤN DỮ LIỆU (QUERY)
I - NHỮNG KHÁI NIỆM CƠ BẢN
1 . Chức năng:
Dùng Khai thác, cập nhật, thêm xoá, sửa, trích lọc . . . dữ liệu trong
các bảng phụ vụ yêu cầu.
2 . Các công cụ truy vấn
- Dùng Ngôn ngữ truy vấn trên dữ liệu SQL (Structured Query
Language)
- Dùng công cụ của Access QBE (Query By Example) truy vấn bằng
hình thực trực quan
3 . Ứng dụng của Query
- Lựa chọn các Field cần thiết (không lấy tất cả các trường của bảng). Lựa
chọn những Mẫu tin, xếp theo thứ tự cột nào đó.
- Tham khảo những Mẫu tin của một Table theo một thứ tự quy định rồi
dùng Query như một dữ liệu nguồn cho biểu mẫu.
- Tham khảo dữ liệu của nhiều bảng khác nhau. Thực hiện các phép tính.
- Tạo dữ liệu cơ sở cho Form, Report hay Query khác
- Thực hiện những thay đổi trong bảng, v .v.v
4 . Các loại truy vấn
- Truy vấn chọn lựa (Select Query)
- Truy vấn tạo bảng (Make Table Query)
- Truy vấn cập nhật (Update Query)
- Truy vấn thêm (Append Query)
- Truy vấn xóa (Delete Query)
- Truy vấn chéo (Crosstab Query)
5 . Các bước cơ bản thực hiện truy vấn
- Xác định (chọn) hình thức truy vấn sẽ thực hiện
- Xác định (chọn) bảng sẽ tham gia truy vấn.
- Xác định (chọn) các field sẽ tham gia truy vấn : FIELD đã có sẵn; field
cần tạo mới, cách tạo field mới.
- Xác định việc sắp xếp dữ liệu trong field (nếu có)
- Xác định việc hiện hoặc Nn field trên màn hình kết quả truy vấn.
- Xác định điều kiện chọn lọc dữ liệu cho các field
- Xem kiểm tra kết quả .
- Thực hiện (chạy) truy vấn đóng truy vấn Save & đặt tên cho truy
vấn
II - MỘT SỐ PHÉP TOÁN VÀ HÀM
1 . Một số phép toán
- Tạo ra field mới : Cách viết
TÊN FIELD MỚI : BIỂU THỨC TẠO FIELD
- Ký tự thay thế: ? : Thay thế cho một ký tự bất kỳ
- Ký tự * : Thay thế cho một dãy các ký tự.
- Phép toán
3. Phép toán Số học : +; -; *; /.
9
2. 4. Phép toán so sánh : >;>=;<;<=;=;<>
“&” : Dùng để nối các field thành một field mới
Like: Giống như - dùng để chọn ra các dữ liệu giống với mẫu dữ
liệu được nêu ra.
In: Kiểm tra một giá trị có thuộc một tập các giá trị hay không?
Is Null: Giá trị của một trường là Null.
Not : Diễn tả ý người lại (Ví dụ Not in : không có trong)
Is not Null:Giá trị của một trường là không Null.
Between.....and: lấy các giá trị thuộc một "đoạn" giá trị được cho
trước .
And : Các điều kiện đưa ra phải được đồng thời thỏa mãn.
Or : Các điều kiện đưa ra phải được thỏa mãn ít nhất 1 điều kiện
2 . Một số hàm
Hàm Left(<Chuỗi>; n): Trích bên trái chuỗi n ký tự.
Hàm Right(<Chuỗi>; n): Trích bên phải chuỗi n ký tự.
Hàm Mid(<Chuỗi>; i; n): Trích n ký tự.nằm giữa một chuỗi bắt
đầu từ vị trí i.
Hàm Trim(<Chuỗi>): Cắt bỏ khoảng trống thừa trong chuỗi
Hàm IIF(<Điều kiện>; <Giá trị 1>; < Giá trị 2>): Nếu <Điều
kiện> nhận giá trị true thì hàm trả lại <Giá trị 1>, ngược lại hàm trả
lại <Giá trị 2>.
Các hàm về thời gian : Now; date; year; month; day; hour; minute;
second.
III - CÁC CHẾ ĐỘ HIỂN THN TRUY VẤN
1 . Cửa sổ thiết kế truy vấn (Design view).
Trong chế độ này, người sử dụng có thể tạo, sửa chữa một truy vấn
nào đó. Màn hình truy vấn chứa hai phần, phần thứ nhất chứa các bảng
(hoặc truy vấn) tham gia truy vấn, phần thứ hai gọi là vùng lưới QBE
(Query By Example).
Chú ý : Mỗi truy vấn có:
Tối đa là 32 bảng tham gia.
Tối đa là 255 trường.
Kích thước tối đa của bảng dữ liệu (do truy vấn tạo ra) là 1 gigabyte.
Số trường dùng làm khóa sắp xếp tối đa là 10.
10
3. Số truy vấn lồng nhau tối đa là 50 cấp.
Số ký tự tối đa trong ô của vùng lưới là 1024.
Số ký tự tối đa trong dòng lệnh SQL là 64000.
Số ký tự tối đa trong tham số là 255.
2 . Cửa sổ hiển thị truy vấn (DataSheet view).
Sử dụng chế độ này để xem kết quả.
3 . Cửa sổ lệnh SQL (SQL view).
Sử dụng chế độ này để xem mã lệnh của truy vấn đang tạo
4 . Thanh công cụ trong cửa sổ thiết kế truy vấn
IV - THIẾT KẾ TRUY VẤN CHỌN
1 . Định nghĩa truy vấn chọn
Truy vấn chọn là loại truy vấn dùng để chọn lựa, rút trích dữ liệu từ
các bảng dữ liệu thỏa mãn một hoặc nhiều điều kiện nào đó.
2 . Các hình thức truy vấn chọn thường gặp
- Truy vấn chọn lựa đơn giản.
- Truy vấn chọn lựa tổng hợp theo nhóm
- Truy vấn tìm kiếm các giá trị lớn nhất, nhỏ nhất, giá trị có trong bảng
này mà không có trong bảng khác (gọi chung là truy vấn tìm giá trị đặc
biệt)
3 . Truy vấn chọn lựa đơn giản
- Trong cửa sổ làm việc của Msaccess chọn Object là Query D.click
vào dòng lệnh Create query in design view xuất hiện cửa sổ QBE và
hộp thoại Show table.
- Lần lượt chọn các bảng sẽ tham gia trong query và nhấn vào nút add để
đưa bảng vào vùng chứa bảng của query. Sau khi chọn đủ các bảng cần
thiết nhấn vào nút Close để đóng cửa sổ Showtable trở về với cửa sổ
query.
- Đưa các field cần hiển thị dữ liệu vào vùng lưới QBE
Lần lượt D.Click chọn các field cần hiển thị dữ liệu trong query của từng
bảng để làm xuất hiện field đó trong vùng field của bảng QBE.
Có thể tạo ra field mới dựa vào các field đã có trong các bảng & các
phép toán..
11
4. Sử dụng các thành phần cần thiết trong vùng lưới QBE trên các cột
để tạo truy vấn có sắp xếp dữ liệu (Dòng SORT), đưa điều kiện để
chọn lọc dữ liệu (dòng CRITERIA) hoặc muốn cột đó có xuất hiện
trên truy vấn hay không (dòng SHOW).
Lưu ý : Muốn thay đổi định dạng của dữ liệu trong 1 field của bảng
query , ta bấm chuột phải vào tên field đó chọn lênh properties
- Chuyển cửa sổ truy vấn về dạng Datasheet view để kiểm tra kết quả
hoàn chình truy vấn Đóng và lưu truy vấn
4 . Truy vấn chọn lựa tổng hợp
a - Chức năng:
Dùng để tổng hợp thông tin theo một hay một số cột dữ liệu.
b - Thực hiện:
- Tạo truy vấn chọn và đưa các bảng vào tham gia truy vấn
- Thực hiện lệnh: View/Totals
- Trong vùng lưới QBE:
- Tại hàng Field chọn các trường
Total chọn các phép toán tương ứng.
Criteria: Chọn điều kiện giới hạn tính tổng (Nếu có)
Phép toán Ý nghĩa
Groupby Nhóm lại thành nhóm theo từng field
Sum Tính tổng các giá trị của một trường
Avg Tính giá trị trung bình của một trường
Min Tính giá trị nhỏ nhất của một trường
Max Tính giá trị lớn nhất của một trường
Count Đếm số giá trị khác rỗng có trong một trường
First Giá trị của trường ở bản ghi đầu tiên trong bảng
Last Giá trị của trường ở bản ghi cuối cùng trong bảng
Where Giới hạn điều kiện khi tính tổng
Expression Trường kiểu biếu thức
- Lưu và thực hiện truy vấn
12
5. 5 . Truy vấn tìm các giá trị đặc biệt
a - Chức năng:
- Truy vấn kết quả này dùng để tìm các giá trị đặc biệt trong bảng dữ liệu
chẳng hạn như tìm giá trị lớn nhât, nhỏ nhất, tìm giá trị có trong bảng
này mà không có trong bảng kia.
b - Truy vấn tim giá trị lớn nhất hoặc nhỏ nhất
- Thực hiện truy vấn chọn lựa đơn giản : Thực hiện truy vấn chọn lựa đơn
giản thỏa mãn các yêu cầu đưa ra (trừ yêu cầu giá trị dặc biệt).
- Tạo truy vấn tổng hợp theo giá trị đặc biệt cần tìm
- Thực hiện sắp thứ tự cho field cần tìm giá trị đặc biệt :
Nếu yêu cầu giá trị lớn nhất thì sắp thứ tự giảm dần.
Nếu yêu cầu giá trị nhỏ nhất thì sắp thứ tự tăng dần
- Click chọn ô Top value trên thanh công cụ nhập vào số 1 Enter (Số
1 có nghĩa là ta chọn các giá trị nào được xếp hạng 1 trong field).
- Chuyển cửa sổ truy vấn về dạng Datasheet view để kiểm tra kết quả
hoàn chình truy vấn Đóng và lưu truy vấn
c - Truy vấn tim giá trị có trong bảng 1 mà không có trong bảng 2
- Xác định field cần tìm.
- Xác định bảng đóng vai trò bảng 1 (bảng chứa giá trị cần tìm); bảng
đóng vai trò bảng 2 (bảng không chứa giá trị cần tìm). (lưu ý thông
thường bảng 1 là bảng đóng vai trò 1 trong mối quan hệ 1 - ∞ và giá trị
cần tìm thường thuộc field được chọn làm khóa)
- Đưa bảng 1 vào tham gia truy vấn Đưa các field cần thiết vào tham
gia truy vấn) kèm theo các điều kiện như truy vấn chọn lựa thông
thường.
- Tại phần điều kiện của field chứa dữ liệu cần tìm nhập câu lệnh sau :
NOT IN (SELECT TÊN FIELD FROM BẢNG 2)
- Chuyển cửa sổ truy vấn về dạng Datasheet view để kiểm tra kết quả
hoàn chình truy vấn Đóng và lưu truy vấn
V - TRUY VẤN THAM SỐ (Parameter Query)
1 . Khái niệm
Nếu thường xuyên chạy cùng một truy vấn, nhưng mỗi lần một tiêu
chuNn khác nhau, thay vì phải thiết kế lại truy vấn sau mỗi lần thực hiện, có
thể tiết kiệm thời gian bằng cách tạo truy vấn tham số. Khi thực hiện loại
13
6. này Access sẽ nhắc nhập điều kiện chọn trong hộp thoại enter parameter
Value.
Ví dụ: Giả sử thường xuyên chạy một truy vấn để liệt kê danh sách
nhân viên của một cơ quan nào đó có mã cơ quan nhập vào bất kỳ.
Chú ý: Nội dung các tham số mà chúng ta nhập vào có thể là hằng (
số,chuỗi,ngày..) nhưng không được biểu thức.
2 . Tạo truy vấn tham số
- Tạo truy vấn chọn và đưa các bảng cần thiết vào tham gia truy vấn.
- Kéo các trường cần thiết vào vùng lưới QBE.
- Tại hàng Criteria gõ vào biểu thức có chứa tham số với chú ý tên tham
số phải nằm giữa 2 dấu ngoặc vuông ( [ ])
- Tên tham số cũng là chuỗi nhắc
nhở.Access cho phép có khoảng trắng và
độ dài tối đa 255 ký tự.
- Quy định kiểu dữ liệu cho tham số: Chọn
queries/ parameter query.
- Trong hộp thoại query parameters: Trong
mục Parameter
- chọn tham số, trong mục Data type chọn
kiểu dữ liệu tương ứng.
Ví dụ: Tạo truy vấn để hiển thị danh sách các khách hàng mua một mặt hàng
nào đó (mặt hàng được nhập bất kỳ từ bàn phím).
Ví dụ : Tạo truy vấn để hiển thị danh sách các khách hàng mua hàng có họ lót
được nhập từ bàn phím.
14
7. 3 . Truy vấn nhiều tham số
Có thể tạo truy vấn , khi chạy truy vấn nhập nhiều dữ liệu cho điều
kiện chọn lựa. Muốn vậy tạo truy vấn nhiều tham số.
Ví dụ: Tạo một truy vấn hiển thị danh sách các khách hàng mua hàng trong khoảng thời gian
nào đó (Thời gian được nhập từ bàn phím).
- Tạo truy vấn chọn và đưa các 2 bảng dshang và dskhach vào tham gia
truy vấn.
- Kéo các trường tenhang, tenkhach, ngaymua vào vùng lưới QBE.
- Tại hàng Criteria của trường NGAYSINH chọn:
- Between [Từ ngày] and [Đến ngày]
- Chọn query/Parameter khai báo kiểu dữ liệu cho 2 tham số là date/time.
Khi chạy truy vấn sẽ cho kết quả sau
4 . Kết hợp giữa truy vấn tham số và truy vấn tính tổng
Trong nhiều bài toán quản lý người ta thường gặp những yêu cầu như:
Hãy thống kê xem mỗi loại hàng trong một tháng nào đó bán được với tổng
số lượng là bao nhiêu? Tổng thành tiền là bao nhiêu? (Tháng được nhập từ
bàn phím). Vì vậy trước hết chúng ta phải thực hiện truy vấn tính tổng xong
mới kết hợp truy vấn tham số.
Ví dụ:
Hãy tạo một truy vấn để hiển thị tổng thanhtien của mỗi mặt hàng bán
được trong một năm nào đó (Năm được nhập từ bàn phím).
15
8. - Tạo một truy vấn chọn, đưa bảng Dshang và dskhach vào tham gia truy
vấn.
- Đưa các trường tenhang, ngayban, thanhtien vào vùng lưới QBE.
- Chọn View/Totals
- Trong hàng Total: Chọn Group by đối với trường tenhang, và
year([ngayban])
- Trong hàng Criteria đối với trường Ngaysinh, ta chọn tham số sau:
- [Nhap vao nam ban hang].
VI - TRUY VẤN TẠO BẢNG
1 . Tác dụng
Truy vấn này sẽ trích, lấy ra một số cột dữ liệu trong các bảng hoặc
các truy vấn có sẳn tạo thành bảng mới.
Kết quả của truy vấn làm xuất hiện thêm bảng mới thuộc đối tượng
table trong cơ sở dữ liệu .
2 . Cách tạo truy vấn
- D.Click vào dòng lệnh Create query in design view chọn các bảng cần
tham gia vào truy vấn.
- Chọn lựa các field cần thiết tham gia vào truy vấn (thực hiện như Select
query)
- Xem trước kết quả trong chế độ sheet view
- Click Menu Query chọn Maketable Query (hoặc click nút Query type
và chọn maketable query) Xuất hiện hộp thoại yêu cầu đặt tên cho
bảng mới đặt tên bảng OK
- Click nút lệnh RUN để thực hiện truy vấn chọn Yes để trả lời đồng ý
tạo ra bảng mới khi hộp thoại thông báo.
- Đóng, lưu và đặt tên cho truy vấn trở về phần table để kiểm tra lại kết
quả do truy vấn tạo ra.
16
9. VII - TRUY VẤN CẬP NHẬT – UPDATE QUERY
1 . Công dụng:
- Truy vấn này dùng thay đổi, tính toán lại một hay nhiều cột dữ liệu trong
bảng cần cập nhật.
- Kết quả của truy vấn không làm xuất hiện thêm bảng mới trong cơ sở dữ
liệu mà chỉ làm thay đổi nội dung của một hoặc nhiều cột trong bảng dã
được chọn.
2 . Thực hiện:
- D.Click vào dòng lệnh Create query in design view chọn bảng có chứa
cột cần cập nhật.
- Click Menu Query chọn Update Query (hoặc click nút Query type
và chọn Update query).
- Chọn field cần cập nhật & field chứa điều kiện đưa vào phần Field
Nhập công thức tính toán trong phần Update to, điều kiện vào phần
Criteria
- Bước 4. Thực hiện Run truy vấn này sẽ xuất hiện hộp thông báo số mẫu tin được
cập nhập trong bảng chọn nút Yes để đồng ý cập nhật dữ liệu.
- Lưu truy vấn lại để xem kết quả trở về Table mở bảng có chứa cột cần cập
nhập xem kết quả.
Nhận xét: truy vấn cập nhật này sử dụng khi nào cần tính toán, hay
làm thay đỗi dữ liệu trong các cột đã có trong bảng được chọn. Còn khi tính
cho cột nào đó mà cột này chưa cho trong bảng thì ta không dùng truy vấn
17
10. cập nhật( Updtae Query) mà chỉ sử dụng truy vấn chọn lựa (Select Query
bình thường) để tạo ra thêm cột mới này.
VIII - TRUY VẤN THÊM – APPEND QUERY
1 . Chức năng:
- Truy vấn này dùng để thêm vào một bảng nào đó một hay nhiều mNu
tin(dòng) thông tin mới
- Kết quả của truy vấn làm xuất hiện thêm những dòng dữ liệu mới trong
bảng đã chọn .
2 . Cách thực hiện:
Truy vấn này có ba dạng thêm:
Thêm vào bảng mỗi lần một mNu tin
Thêm vào bảng nhiều mNu tin bằng cách dùng tham biến.
Thêm vào bảng nhiều mNu tin bằng từ một bảng đã có dùng tham biến.
a - Dạng thêm vào bảng chỉ một m u tin:
- Tạo Query không chọn bảng nào.
- Nhập dữ liệu cần thêm vào hàng field name trong lưới QBE (dữ liệu text viết
trong dấu nháy đôi, dữ liêu số viết bình thường..)
- Click nút lệnh Query type chọn kiểu Append Query → Xuất hiện hộp thoại
yêu cầu chọn bảng để thêm dữ liệu chọn bảng trong table name OK
- Trong phần append to (của lưới QBE) chọn field tương ứng với dữ liệu
cần thêm vào
Nhập thông tin cần thêm
Chọn trường/cột
tương ứng cần thêm
-
- Sau đó thực hiện Run truy vấn này → chọn Yes khi xuất hiện hộp thông báo để
đồng ý thêm dòng thông tin này.
18
11. - Để xem kết quả hãy trở về Table mở bảng vừa thêm xem kết quả.
b - Dạng 2 thêm vào bảng nhiều mẫu tin bằng tham biến:
- D.Click vào dòng lệnh Create query in design view không chọn các
bảng cần tham gia vào truy vấn.
- Nhập các tham số đại diện cho dữ liệu cần thêm vào hàng field name
trong lưới QBE (các tham số được viết trong ngoặc vuông, các tham số
này có thể là các câu nhắc nhở)
- Các bước còn lại thực hiện như phần trước đã học.
Nhập theo kiểu
Chọn trường/cột tương ứng
- Thực hiện truy vấn này (!) xuất hiện hộp thoại tham biến
Nhập mNu tin
c - Dạng 3 thêm vào bảng nhiều m u tin từ bảng khác:
- Chọn Queries/Append query
- Trong mục Table name: Chọn bảng
cần nối vào và chọn OK.
- Chọn Current Database (CSDL hiện
thời) hoặc Another Database (Tạo
bảng trong CSDL khác).
- Trong vùng lưới QBE của truy vấn tại
hàng Field:
- Đưa các trường của bảng gốc vào.
- Trong hàng Append to: Đưa các trường tương ứng của bảng cần nối và
đặt điều kiện nếu cần thiết.
19
12. Chú ý
- Trong truy vấn nối dữ liệu thì các trường được nối với nhau tương ứng
phải cùng kiểu dữ liệu. Nếu các trường tương ứng không có cùng kiểu dữ
liệu thì sẽ không được nối. Nếu các trường có Field size không phù hợp
thì tuỳ theo việc nối dữ liệu mà sẽ cắt bớt hoặc thêm vào ký tự trắng.
IX - TRUY VẤN XOÁ – DELETE QUERY
1 . Chức năng:
- Truy vấn này dùng để xóa một hay nhiều mẫu tin (dòng thông tin) trong
bảng và các bảng có quan hệ.
- Kết quả của truy vấn làm mất đi một số mNu tin trong bảng đã chọn &
các mNu tin tương ứng trong các bảng có quan hệ.
2 . Cách thực hiện:
- D.Click vào dòng lệnh Create query in design view chọn bảng chứa
các mNu tin cần xóa tham gia vào truy vấn.
- Click query type chọn delete query.
- Đưa field chứa dữ liệu cần xóa (thường là field khóa) & các field chứa
điều kiện vào fieldname.
- Nhập diều kiện cần xóa vào Criteria của field tương ứng.
- Click nút lệnh RUN để thực hiện truy vấn chọn Yes để trả lời đồng ý
khi hộp thoại thông báo xuất hiện.
- Đóng, lưu và đặt tên cho truy vấn trở về phần table để kiểm tra lại kết
quả do truy vấn tạo ra.
X - TRUY VẤN CHÉO – CROSSTAB QUERY
1 . Chức năng:
- Truy vấn tham khảo chéo là loại truy vấn dùng để tóm lược dữ liệu và
trình bày kết quả theo dạng như một bảng tính. Truy vấn tham khảo chéo
cũng có thể thống kê một khối lượng dữ liệu lớn và trình bày đơn giản
hơn do đó thường sử dụng để so sánh dữ liệu.
2 . Cách thực hiện:
Muốn tạo một truy vấn tham khảo chéo chúng ta phải xác định được 3
yếu tố chính: Trường làm tiêu đề cột ( Duy nhất 1 trường), trường làm tiêu
đề hàng ( Có thể nhiều trường), trường tính giá trị (Duy nhất 1 trường).
- Tạo truy vấn chọn và đưa các bảng vào tham gia truy vấn
- Đưa các trường vào vùng lưới QBE
- Chọn Query/Crosstab
20
13. - Quy định trường làm tiêu đề cột : tại hàng Total: Bắt buộc chọn phép
toán Group by, tại hàng Crosstab: Chọn Column heading
- Quy định trường làm tiêu đề hàng : tại hàng Total: Ít nhất một trong các
trường phải chọn phép toán Group by, tại hàng Crosstab: Chọn Row
heading
- Quy định trường tính giá trị : tại hàng Total: Chọn phép toán thích hợp,
tại hàng Crosstab: Chọn Value
- Thực hiện chạy (Run) truy vấn này, tiếp theo lưu truy vấn.
Lưu ý:
Thông thường khi thực hiện truy vấn chéo ta thường sắp xếp các field như
sau :
- Các field làm tiêu đề hàng được chọn trước.
- Tiếp theo là field làm tiêu đề cột
- Cuối cùng là field chọn làm giá trị
21