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 type
1 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
Noisinh
3 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
Field
có 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ức
6. Ví dụ tạo cột làLớp
nó là kết quả của việc nối chuỗi[NIENKHOA]![Tenkhoa]
(Đây là cấu trúc trỏ đến một trường nào đó của bảng [tên bảng]![tên cột]) 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
Sort
của QBE để thiết lập sắp xếp, nếu chọn làAscending
7 thì cột đó sắp sắp tăng dần, còn nếu chọnDescending
thì 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ớp
sẽ 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#
Like
ví dụLike "*Vinh*"
Is Null
là rỗngIs Not Null
khá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
Criteria
có 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
Show
chọ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
,TENLOP
là nhóm - vậy thiết lập nó làGroup By
- Cột
HOCSINHID
sẽ 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
,Dantoc
là các cột để phân nhóm với giá trị Total làGroup by
. Trong đó TenKhoa, TENLOP làRow Heading
làm tiêu đề cột. CònDanToc
chuyể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