Khái niệm và phần loại các Query trong Access
Query là các câu lệnh để tương tác với CSDL, nó là ngôn ngữ
truy vấn có cấu trúc SQL.
Để học riêng về SQL có thể xem:
CÁC BÀI HỌC VỀ SQL
.
Trong Access nó có các công cụ nhằm nhanh chóng tạo ra các câu truy
vấn SQL, sinh câu truy vấn SQL một cách trực quan và nhanh chóng.
Với Access câu truy vấn SQL có thể phân thành các loại:
Select query, Total Query, Crosstab query, Action query
- Select query: truy vấn thông tin từ
các bảng, tạo ra một tập
các dòng kết quả (record) gọi là
recordset, thường tập kết quả này dùng cho các Form, các báo cáo Report - Total query: loại truy vấn có chức năng tổng hợp dữ liệu dựa vào một số hàm thống kê cho một nhóm dữ liệu như đếm tổng record, tính giá trị trung bình, tính tổng ... Ví dụ, liệt kê các lớp học, mỗi lớp học tính tổng số học sinh.
- Crosstab query: là loại truy vấn để thống kê, kết quả là bảng hai chiều có các cột theo giá trị truy vấn
- Action query: là nhưng câu truy
vấn có chức năng thay đổi các bảng dữ liệu như
Make-Table(tạo bảng dữ liệu),Update(cập nhật bản ghi),Delete(xóa bản ghi),Append(thêm bản ghi)
Tạo Select Query trong Access
Bấm vào menu Create, chọn mục Design Query
Một hộp thoại Show Table xuất hiện, tại đây
chọn những bảng có dữ liệu cần truy vấn rồi bấm vào Add
Màn hình để xây dựng Query chia làm hai phần, phần Khu vực các bảng truy vấn chứa các bảng, khu vực Lưới QBA (Query by example)
chứa các trường tham gia vào truy vấn.
-
Mặc định sẽ xây dựng loại
Select Query, nếu muốn thay đổi kiểu nhấn phải chuột, chọnQuery type1 tại đây có thể chọn các loại như Select Query, Update Query ... - Để thêm bảng vào truy vấn nhấn phải chuột chọn Show Table ... 2
-
Để thêm các trường (field) của bảng nào đó vào kết quả truy vấn, kích đúp vào tên
trường, nó sẽ được đưa vào QBA. Ví dụ kích đúp vào trường
Noisinh3 thì tại QBE nó đã thêm vào: tại dòng Field làNoisinh, tại dòng Table là tên bảngHOCSINH - Khi muốn chạy kiểm tra kết quả truy vấn bấm vào View hoặc Run trên menu 4. Nếu Query hoàn thành có thể nhấn CTRL + S để lưu lại Query
-
Có thể đặt lại tên cột kết quả truy vấn, tại dòng
Fieldcó thể thay đổi với cấu trúcTên cột:[Field]ví dụ:Họ:[Ho]5,Tên:[Ten],Giới tính:GT -
Các trường truy vấn cũng có thể thiết lập là một biểu thức, với cấu trúc
Tên:nội dung biểu thức6. Ví dụ tạo cột làLớpnó là kết quả của việc nối chuỗi[NIENKHOA] với chuỗi"-"(một chuỗi cụ thể viết trong dấu "") và chuỗi[LOP]![TENLOP]thì viết:
Lớp:[NIENKHOA]![Tenkhoa] & "-" & [LOP]![TENLOP]
Trong đó ký hiệu&là toán tử nối chuỗi. Còn nhiều toán tử khác để viết biểu thức.Để trợ giúp xây dựng biểu thức, tại cột cần xây dựng biểu thức bấm vào
Builder, có một số toán tử xây dựng biểu thức như- Toán tử số học
+-*/, ví dụ[Soluong] * [Dongia] - Toán tử so sánh như
< <= > >= = Between In Like - Toán tử Logic như
And Not Or
- Toán tử số học
-
Dòng
Sortcủa QBE để thiết lập sắp xếp, nếu chọn làAscending7 thì cột đó sắp sắp tăng dần, còn nếu chọnDescendingthì sắp xếp giảm dần hoặc chọn(not sorted)là không sắp xếp. -
Để lọc kết quả thì viết biểu thức lọc tại dòng
Criteria, ví dụ tại 8 điền chuỗi"36-K1"thì cộtLớpsẽ lọc ra các giá trị bằng chuỗi đó. Nhập dữ liệu lọc tùy thuộc vào kiểu dữ liệu:Text: nhập chuỗi trong "", ví dụ"Abc"Date:#18-12-2000#Number: 123
LIKE, so sánh ...=toán tử só sánh bằng<toán tử nhỏ hơn<=toán tử nhỏ hơn hoặc bằng>toán tử lớn hơn>=toán tử lớn hơn hoặc bằng<>toán tử so sánh khácBetween ... and ..., ví dụBetween #1-1-1983# And #31-1-1983#Likeví dụLike "*Vinh*"Is Nulllà rỗngIs Not Nullkhác rỗngIn(value1, value2 ...)ví dụIn("35-B1", "36-B1")
Truy vấn có tham số (Parameter Query)
Các giá trị đưa vào lọc
Criteriacó thể ấn định là tham số, giá trị sẽ nhập vào khi chạy. Nếu là tham số chỉ việc đưa nó vào dấu ngoặc vuông[tên tham số] -
Dòng
Showchọn cột dữ liệu đó có hiện thị ở kết quả bảng truy vấn hay không. Nhiều cột không cần chọn hiện thị, khi chỉ cần dùng nó như để lọc dữ liệu 9
Tạo Total Query - thống kê dữ liệu theo nhóm
Truy vấn này thực hiện đưa ra dòng số liệu thống kê cho những nhóm dữ liệu giống nhau, giá trị cần thống kê cho nhóm dữ liệu đó có các hàm như:
count- đếm tổng các record trong nhómsum- tổng giá trị trường cần thống kêmin/max- lấy giá trị nhỏ nhất, lớn nhất trong nhómavg- lấy giá trị trung bình
Ví dụ có truy vấn sau:
Truy vấn này liệt kê các học sinh (HOCSINHID) trong các lớp. Giờ nếu muốn thông kê,
có bao nhiêu học sinh mỗi lớp thì bấm vào biểu tượng Total, thì
trong QBE xuất hiện dòng total - tại đây thiết lập cá thông kê
Cần xác định trong các cột phải chỉ ra cột nào là cột cần thống kê, các cột còn lại dùng để xác định nhóm, ở ví dụ trên thì:
- Cột
TenKhoa,TENLOPlà nhóm - vậy thiết lập nó làGroup By - Cột
HOCSINHIDsẽ dùng thống kế, ở đây thống kê là đếm số lượng nên dùng hàmcount
Như vậy kết quả thống kê như trên.
Tạo Crosstab Query
Để thiết lập là Crosstab, nhấn phải chuột và chọn
Crosstab Query
1,
lúc này xuất hiện dòng crosstab và total
2
Crosstab bạn cần thiết lập các cột để phân nhóm (group by),
trong những cột này thiết lập một cột để thống kê - các giá trị của nó sẽ chuyển thành
tên cột thống kê Column Heading còn lại là Row Heading.
Tiếp theo là một cột để thống kê với thiết lập crosstab là Value
- Thiết lập
Tenkhoa,TENLOP,Dantoclà các cột để phân nhóm với giá trị Total làGroup by. Trong đó TenKhoa, TENLOP làRow Headinglàm tiêu đề cột. CònDanTocchuyển thành tiêu đề cột. - Thiết lập cột HOCSINHID với Crosstab là Value, với hàm thống kế là count.
Các Action Query
Các Action Query thực hiện việc cập nhật, sửa đổi dữ liệu.
Sau khi viết các Query này để thi hành bấm vào Run để thi hành
Update Query
Loại Query này để cập nhật cho các Record. Ví dụ cập nhật trường Ten
với giá trị là
Giá trị cập nhật nhập tại dòng Update to, lục các Record cần cập nhật
tại Criteria
Delete Query
Query này xóa các record. Ví dụ xóa Record có trường tên là "Abc"
Append Query
Query này nối dữ liệu vào bảng có sẵn
Make-Table Query
Query này để tạo ra bảng mới từ các dữ liệu truy vấn. Khi chuyển là loại Query Make-table có hộp thoại xuất hiện, hãy nhập tên bảng muốn tạo.
Tạo bảng gồm các cột TenKhoa, TenLop, Ho, Ten
