Select Query Truy vấn chọn số liệu: được sử dụng phổ biến nhất, dùng để: Chọn lọc các mẩu tin Thêm các trường mới là kết quả thực hiện các phép tính trên các trường của bản
Trang 1Giảng Viên: Lê Thị Minh Nguyện Email: nguyenltm@hotmail.com
TIN HỌC ỨNG DỤNG TRONG KINH DOANH 2
Chương 3 TRUY VẤN DỮ LIỆU - QUERY
Trang 22
19/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 3
1 GIỚI THIỆU
1.1 Tại sao phải dùng truy vấn
Trong thực tế việc tham khảo thông tin rất có nhiều dạng
khác nhau và thường là khác với dạng dữ liệu nhập vào
Hơn nữa việc khai thác số liệu ở bảng có nhiều khuyết
điểm, do đó ta dùng query sẽ thấy tiện lợi hơn nhiều Do
đó, người ta phải sử dụng một công cụ để truy vấn thông
tin đó là query Sử dụng bảng truy vấn trong những việc
sau:
- Lựa chọn các trường và các mẩu tin cần thiết
- Xếp sắp thứ tự mẩu tin theo trường quy định
- Tham khảo dữ liệu trên nhiều bảng dữ liệu
- Sử dụng bảng vấn tin làm cơ sở cho biểu mẫu hay báo
cáo
- Thực hiện những thay đổi trong bảng dữ liệu
19/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 4
1.2 Các loại truy vấn thông dụng : Có nhiều loại truy
vấn, nhưng thông dụng nhất là các loại sau:
1 Select Query (Truy vấn chọn số liệu): được sử dụng
phổ biến nhất, dùng để:
Chọn lọc các mẩu tin
Thêm các trường mới là kết quả thực hiện các
phép tính trên các trường của bảng nguồn
Đưa vào các điều kiện tìm kiếm, lựa chọn
2 Update Query (Truy vấn cập nhật): dùng để sửa đổi
đồng loạt nhiều mẩu tin của một hay nhiều bảng
1 GIỚI THIỆU
Trang 319/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 5
1.2 Các loại truy vấn thông dụng
3 Delete Query (Truy vấn xoá số liệu): xoá một nhóm
các mẩu tin từ một hay nhiều bảng
4 Crosstab Query (Truy vấn tham chiếu chéo): kết
nhóm số liệu theo chủng loại và hiển thị số liệu dưới
hình thức của một bảng tính kèm theo số liệu tổng
hợp ngang và dọc
6 Make Table Query (Truy vấn tạo bảng ): cho tạo
một bảng mới từ số liệu của Query
5 Append Query (Truy vấn thêm): Dùng để thêm
(nối) các bảng ghi vào phần cuối của một bảng
1 GIỚI THIỆU
Thường dùng hai cách tạo truy vấn ứng với hai lựa
chọn: Query Design và Query Wizard
+ Query Wizard : truy vấn được xây dựng bằng
công cụ Wizard của Access, ta chỉ việc trả lời các câu
hỏi theo yêu cầu
+ Query Design : truy vấn được thiết kế tùy theo
1.3 Cách tạo truy vấn
1 GIỚI THIỆU
Trang 44
19/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 7
1 GIỚI THIỆU
1.3 Cách tạo truy vấn
Bước 1: Trên thanh Ribbon chọn Tab Create ->
Chọn Query Design trong nhóm lệnh Queries
19/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 8
1 GIỚI THIỆU
1.3 Cách tạo truy vấn
Bước 2: Chọn nguồn dữ liệu cho truy vấn
+ Cửa sổ Show Table cho
Trang 519/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 9
1 GIỚI THIỆU
1.3 Cách tạo truy vấn
Mô tả cửa sổ Select Query
+ Table/Query Pane: chứa các bảng hoặc query tham gia
vào truy vấn
+ Lưới thiết kế QBE (Query By Example) dùng chứa các
trường của truy vấn mới cần xây dựng
Table/Query
Pane
QBE
1 GIỚI THIỆU
1.3 Cách tạo truy vấn
Mô tả cửa sổ Select Query
Field Chứa tên trường hoặc biểu thức làm kết quả truy vấn
Table Ghi tên nguồn dữ liệu của trường được chọn tại dòng
field
Show Cho phép trường đó có hiển thị hay không
Trang 66
19/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 11
Bước 3: Thiết kế truy vấn theo yêu cầu
Đưa các trường vào truy vấn: nhấn giữ chuột kéo trường thích
hợp thả vào cột của lưới thiết kế, hoặc Double Click vào tên
trường
Ghi chú: Cách thêm trường mới có chứa biểu thức:
Chọn một ô trống trên hàng Field, gõ cú pháp như sau
Tên trường: [Biểu thức]
Ví dụ: Tongdiem: [Diemtoan]+[Diemly]+[Diemhoa]
Bước 4 : Lập tiêu chuẩn lựa chọn (Điều kiện)
Nhập điều kiện (tiêu chuẩn) vào ô Criteria của trường cần lập
biểu thức
Ví dụ: Nhập vào “TH” (tìm sinh viên của khoa Tin học)
1.3 Cách tạo truy vấn
1 GIỚI THIỆU
19/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 12
1 GIỚI THIỆU
Bước 5: Lưu truy vấn vừa tạo
Click vào biểu tượng Save trên thanh Quick Access
hoặc nhấn tổ hợp phím Ctrl + S và đặt tên
Ghi chú: Cách thay đổi loại truy vấn
Trong cửa sổ thiết kế Query, trên thanh Ribbon,
chọn Tab Design.Trong nhóm lệnh Query Type chọn
loại Query phù hợp
1.3 Cách tạo truy vấn
Trang 719/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 13
1 GIỚI THIỆU
Bước 6: Thực hiện truy vấn
Trong cửa sổ thiết kế Query trên thanh Ribbon, chọn
Tab Design.Trong nhóm lệnh Results chọn View để xem trước
dữ liệu hoặc Run để thực thi
1.3 Cách tạo truy vấn
2 PHÉP TOÁN VÀ HÀM TRONG ACCESS
Toán tử toán học
+ , -, *, /, luỹ thừa (^)
Thương số nguyên (chia lấy phần nguyên):\
Số dư (chia lấy phần dư): Mod
Toán tử logic
Not: cho kết quả ngược lại (Not đúng= sai, Not sai=
Trang 88
19/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 15
Toán tử so sánh
<, <=, >, >=, =, <> (không bằng)
Toán tử so sánh đặc biệt
Between And (Nằm trong khoảng)
Like (gần giống):
• Vd: [slg] Between 150 And 200
• (*) Tổ hợp bất kỳ - “Anh Ban” Like “*B*”
• (?) Ký tự bất kỳ - “Access” Like “???e*”
• (#) Ký số bất kỳ - 2001 Like “##0#”: True
2 PHÉP TOÁN VÀ HÀM TRONG ACCESS
19/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 16
2 PHÉP TOÁN VÀ HÀM TRONG ACCESS
Trang 919/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 17
2 PHÉP TOÁN VÀ HÀM TRONG ACCESS
Toán tử so sánh đặc biệt
Null, Not null : kiểm tra dữ liệu đã có hay chưa
• Vd: Để tìm các thí sinh thiếu Ngày sinh, ta đưa giá
trị IS Null vào ô Criteria của trường [Namsinh]
2 PHÉP TOÁN VÀ HÀM TRONG ACCESS
Trang 1010
19/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 19
Toán tử ghép nối
& (nối chuỗi)
• “Đà” & “ Nẵng”: “Đà Nẵng”
+ (cộng với)
• 100 & “năm cô đơn”: 100 năm cô đơn
• “Con thuyền” + “không bến”: Con thuyền không bến
• 1001 + “đêm” : Type mismatch (kết quả sai)
• 123 & 456: 123456
• Date() & “Nhâm Ngọ”: 14/6/2002 Nhâm Ngọ
• “Vĩ tuyến” & 90/2 & “ngày đêm”: Vĩ tuyến 45 ngày đêm
2 PHÉP TOÁN VÀ HÀM TRONG ACCESS
19/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 20
Hằng trị (constants)
True / False / Null : hằng trị đúng/ sai/ rỗng
Dấu rào (Delimiter)
“ ” : Rào giá trị chuỗi
• Vd: “43 Thanh Thuỷ - Đà Nẵng”
[ ] : Rào tên biến
Trang 1119/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 21
• LEFT(chuỗi,n): Trích n ký tự bên trái chuỗi
• RIGHT(chuỗi,n): Trích n ký tự bên phải chuỗi
• MID(chuỗi, vị trí, n): Rút trích n ký tự kể từ vị trí chỉ định
• LEN(chuỗi): Trả về giá trị là chiều dài chuỗi
• LCASE(chuỗi): Chuyển thành chuỗi thường
• UCASE(chuỗi): Chuyển thành chuỗi hoa
• TRIM(chuỗi): cắt bỏ khoảng trắng 2 đầu
• LTRIM(chuỗi): Cắt bỏ khoảng trắng bên trái
• RTRIM(chuỗi): cắt bỏ khoảng trắng bên phải
2 PHÉP TOÁN VÀ HÀM TRONG ACCESS
Hàm thao tác trên dữ liệu kiểu date
• Trong việc quản lý dữ liệu, việc thống kê dữ liệu theo thời
gian là một thao tác khá thường xuyên Các hàm liên quan
đến thời gian
• Datepart(“định dạng”, biểu thức ngày) : Cho kết qủa theo
phần định dạng của biểu thưc ngày Trong đó, ký hiệu phần
định dạng mang một trong các giá trị:
“y”: ngày trong năm (day of year)
“w”: ngày trong tuần (weekday)
“d”: ngày trong tháng (Day of month)
2 PHÉP TOÁN VÀ HÀM TRONG ACCESS
Trang 1212
19/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 23
• Day(dữ liệu trích) = DATEPART(“d”,dữ liệu trích)
• Month(Dữ liệu trích) = DATEPART(“m”,dữ liệu trích)
• Year(Dữ liệu trích) = DATEPART(“yy”,dữ liệu trích)
• Date(): lấy ngày của hệ thống
• Now(): lấy ngày giờ của hệ thống
• WeekDay(biểu thức ngày): cho kết quả là số thứ tự của biểu
thức ngày Theo mặc định 1 là chủ nhật, 2 là thứ 2…
• Datediff(“Định dạng”, biểu thức ngày BĐ, biểu thức ngày KT):
Cho khoảng giữa hai chuỗi ngày theo phần định dạng
• DateAdd(“định dạng”, n, biểu thức ngày): cộng thêm n đơn vị
theo phần định dạng vào biểu thức ngày
• Hour(Biểu thức giờ): cho kết quả là giờ của biểu thức giờ
• Minute(Biểu thức giờ): cho kết quả là phút của biểu thức giờ
• Second(Biểu thức giờ): cho kết quả là giây của biểu thức giờ
2 PHÉP TOÁN VÀ HÀM TRONG ACCESS
19/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 24
Điều kiện cùng thoả mãn/hoặc thoả mãn
Các điều kiện viết cùng trên dòng Criteria là các điều
kiện đồng thời thoả mãn
3 TRUY VẤN VỚI ĐIỀU KIỆN ĐƠN GIẢN
Ví dụ : Tìm sinh viên sinh ở Hà nội của khoa Tin học
Trang 1319/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query
Các điều kiện viết trên dòng Criteria và dòng Or là các
điều kiện không cần đồng thời thoả mãn
3 TRUY VẤN VỚI ĐIỀU KIỆN ĐƠN GIẢN
Ví dụ: Tìm sinh viên ở Hà nội hoặc học khoa Tin học
Phép so sánh Is Null và Is Not Null
Is Null được dùng để hiển thị những mẩu tin mà trên trường chỉ định
không có dữ liệu Is Not Null thì ngược lại
Ví dụ : cho bảng SINHVIEN có nội dung như sau:
Hiển thị những sinh viên không có ngày sinh
3 TRUY VẤN VỚI ĐIỀU KIỆN ĐƠN GIẢN
Trang 1414
19/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 27
Toán tử In
Toán tử IN để xác định giá trị trong một danh sách chỉ định
Ví dụ: Hiển thị những sinh viên học ở các khoa có mã AV, TH và VL
Hoặc
3 TRUY VẤN VỚI ĐIỀU KIỆN ĐƠN GIẢN
19/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 28
Phép AND và OR
- Mệnh đề OR được viết trên 2 dòng(một hoặc nhiều cột)
- Mệnh đề AND được viết trên một dòng(nhiều cột)
Ví dụ 1:Hiển thị những sinh viên có học bổng từ 1000000 đến 2000000
3 TRUY VẤN VỚI ĐIỀU KIỆN ĐƠN GIẢN
Trang 1519/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 29
3 TRUY VẤN VỚI ĐIỀU KIỆN ĐƠN GIẢN
3 TRUY VẤN VỚI ĐIỀU KIỆN ĐƠN GIẢN
Ví dụ: Hiển thị những sinh viên học ở các khoa có mã AV, TH và VL
Ví dụ : Hiển thị những học viên sinh trước 1994
Hoặc
3 TRUY VẤN VỚI ĐIỀU KIỆN ĐƠN GIẢN
Trang 1616
19/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 31
Ví dụ : Lọc những sinh viên sinh vào tháng 2 năm 1995
3 TRUY VẤN VỚI ĐIỀU KIỆN ĐƠN GIẢN
19/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 32
3 TRUY VẤN VỚI ĐIỀU KIỆN ĐƠN GIẢN
Ví dụ : Hiển thị kết quả nếu điểm nhỏ hơn 5 thì rớt ngƣợc lại là đậu
Những tính toán khác
Hàm IIF(<Ðiều kiện>,<Giá trịv1>,< Giá trị 2>)
Nếu <Ðiều kiện> nhận giá trị true thì hàm trả về <Giá trị 1>, ngược
lại trả về <Giá trị 2>
Trang 1719/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 33
Các thông báo lỗi
“Can’t have aggregate function in WHERE clause”
Không thể chỉ định hàm thống kê trong mệnh đề WHERE (Criteria)
“You can’t set criteria before you add a field or expression to the field row”
Lỗi xuất hiện khi bạn chỉ định một tiêu chuẩn vào cột mà chưa có chỉ
định tên trường(hay biểu thức trường) vào dòng field
“Data type mismatch in critetia expression”
Sai về kiểu dữ liệu trong biểu thức tiêu chuẩn, chẳng hạn như so
sánh một trường số number với tiêu chuẩn là chuỗi
3 TRUY VẤN VỚI ĐIỀU KIỆN ĐƠN GIẢN
4.TRUY VẤN TRÊN NHIỀU BẢNG
Thông thường trong các truy vấn thường lấy dữ liệu
trên nhiều bảng dữ liệu
Ví dụ: ta muốn xem điểm của một sinh viên ở khoa
nào Thì ít nhất ta phải lấy hai bảng là SINHVIEN và
KETQUA
- Muốn tạo truy vấn tin lấy dữ liệu trên bảng, ta chỉ
định các bảng cần thiết với lưu ý là phải bảo đảm các
mối quan hệ giữa chúng
Trang 1818
19/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 35
4.1 Các loại liên kết
- Liên kết chặt (Inner Join hay Equi Join): là kiểu liên kết
mà dữ liệu hiển thị trong bảng truy vấn là những mẩu tin
có quan hệ với nhau phải tồn tại trên cả hai bảng
- Liên kết không chặt (Outer Join): là kiểu liên kết mà dữ
liệu được đưa vào bảng truy vấn là tất cả những mẩu tin
của bảng thứ nhất (ngay cả khi nó không có mẩu tin
tương ứng ở bảng thứ 2) và những mẩu tin của bảng
thứ 2 có tương ứng trong bảng thứ nhất
- Tự liên kết (Self Join): là kiểu liên kết của một bảng dữ
liệu với chính nó (phải thêm bảng dữ liệu này 2 lần)
4.TRUY VẤN TRÊN NHIỀU BẢNG
19/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 36
4.2 Chỉ định mối liên kết giữa 2 bảng
- Trong nhiều trường hợp, khi ta thêm các bảng dữ
liệu thì sẽ hiển thị các mối quan hệ đã khai báo từ cửa
sổ thiết lập quan hệ
- Ngay cả trong trường hợp, hai bảng chưa thiết lập
mối quan hệ với nhau thì Access cũng cố thiết lập mối
quan hệ giữa hai trường cùng tên, có kiểu dữ liệu
thích hợp
- Muốn chỉ định loại liên kết (Join Type), ta nhấp cào
mối qua hệ thì xuất hiện hộp thoại sau:
4.TRUY VẤN TRÊN NHIỀU BẢNG
Trang 1919/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 37
4.TRUY VẤN TRÊN NHIỀU BẢNG
- Quan hệ chặt: Hiển thị những mẩu tin có giá trị bằng
nhau trên cả 2 trường quan hệ của 2 bảng
- Quan hệ không chặt thứ 1: Hiển thị tất cả các mẩu tin
trên bảng KHOA cho dù không có mẩu tin tương ứng
trên bảng SINHVIEN và những mẩu tin của bảng
SINHVIEN có mẩu tin với bảng KHOA
- Quan hệ không chặt thứ 2: Hiển thị tất cả các mẩu tin
trên bảng SINHVIEN cho dù nó không có mẩu tin tương
4.TRUY VẤN TRÊN NHIỀU BẢNG
Trang 2019/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 40
4.TRUY VẤN TRÊN NHIỀU BẢNG
4.3.a Liên kết chặt
Trang 2119/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 41
4.TRUY VẤN TRÊN NHIỀU BẢNG
4.3.b Liên kết không chặt
Lưu ý: Khi 2 bảng không có mối liên kết thì sẽ tạo
ra sự lặp lại dữ liệu Chẳng hạn bảng thứ 1 có n mẩu
tin, bảng thứ 2 có m mẩu tin thì bảng kết quả có m x n
mẩu tin
4.TRUY VẤN TRÊN NHIỀU BẢNG
Trang 2222
19/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 43
4.TẠO VẤN TIN TRÊN NHIỀU BẢNG
Giả sử có truy vấn sau:
Kết quả:
19/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 44
4.TRUY VẤN TRÊN NHIỀU BẢNG
Khuyến cáo: tránh truy vấn khi 2 bảng không
có liên kết
Trang 2319/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 45
5.TRUY VẤN DÙNG THAM SỐ
Truy vấn có tham số, nhắc người dùng nhập
điều kiện cho query tại thời điểm query thực
thi
Cách tạo
• Trong cửa sổ thiết kế query, chọn các Table/
query tham gia truy vấn
• Chọn các field hiển thị trong kết quả
• Tại field chứa điều kiện lọc, nhập câu nhắc
trên dòng Criteria và đặt trong cặp dấu []
Ví dụ: Xem điểm của sinh viên bất kỳ
5.TRUY VẤN DÙNG THAM SỐ
Trang 2424
19/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query
6 TRUY VẤN DÙNG PHÉP TRỪ
19/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 48
Cách 1: Tạo bằng Query Design
Bước 1: Trên thanh Ribbon, chọn Tab Create ,
trong nhóm Queries chọn Query Design
6 TRUY VẤN DÙNG PHÉP TRỪ
Trang 2519/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 49
6 TRUY VẤN DÙNG PHÉP TRỪ
Ví dụ: Cho biết những sinh viên chƣa thi môn nào
Bước 2: Mở hai bảng cung cấp dữ liệu
Bước 3 : Thiết lập mối quan hệ không chặt trên
hai bảng
6 TRUY VẤN DÙNG PHÉP TRỪ
Trang 2626
19/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 51
Bước 4: Chỉ định là rỗng (Is Null) trên một
trường (không rỗng) của bảng thứ hai
6 TRUY VẤN DÙNG PHÉP TRỪ
19/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 52
Cách 2: Tạo bằng Query Wizard
Bước 1: Trên thanh Ribbon, chọn Tab Create, trong
nhóm lệnh Queries Click nút Query Wizard.
6 TRUY VẤN DÙNG PHÉP TRỪ
Trang 2719/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 53
6 TRUY VẤN DÙNG PHÉP TRỪ
Cách 2: Tạo bằng Query Wizard
Bước 2: Chọn bảng dữ liệu thứ nhất -> Next.
Cách 2: Tạo bằng Query Wizard
Bước 3: Chọn bảng dữ liệu thứ hai -> Next
6 TRUY VẤN DÙNG PHÉP TRỪ
Trang 2828
19/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 55
Cách 2: Tạo bằng Query Wizard
Bước 4: Chỉ định trường chung (Trường so sánh của hai
bảng) -> <=> ->Next
6 TRUY VẤN DÙNG PHÉP TRỪ
19/08/2012 - MaMH: 701006 - Chương 3 Truy vấn dữ liệu – Query 56
Cách 2: Tạo bằng Query Wizard
Bước 5: Chỉ định thêm các trường cần hiển thị từ
Available Fields qua Selected Fields -> Next
6 TRUY VẤN DÙNG PHÉP TRỪ