dễ hiểu
Trang 1GIÁO TRÌNH ĐÀO TẠO
MICROSOFT OFFICE ACCESS 2003
Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
Trang 2Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
I Tại sao phải dùng truy vấn (Query)?
Với Access, ta có thể dùng công cụ truy vấn (Query) để đặt
những câu hỏi liên quan đến những dữ liệu chứa trong các bảng của cơ sở dữ liệu mà ta đang sử dụng Từ những câu hỏi mà chúng ta đặt ra, với cách thiết kế một truy vấn, chúng
ta có thể rút những thông tin cần thiết
Ví dụ: Chúng ta có thể đặt câu hỏi như sau “Có bao nhiêu
sinh viên thi đậu môn học có mã số là A015?”, … Từ các bảng dữ liệu của cơ sở dữ liệu, với công cụ truy vấn ta có thể tìm câu trả lời của câu hỏi trên
Trang 3Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
II Lợi ích của truy vấn (Query)
Chọn ra những mẫu tin thoả mãn những điều kiện mà chúng
ta quy định
Lựa chọn những vùng dữ liệu cần thiết trong một hay nhiều
bảng ra trên cùng một bảng truy vấn
Trong bảng truy vấn chúng ta cũng có thể xếp thứ tự các mẫu
tin theo một thứ tự nào đó
Trong bảng truy vấn chúng ta có thể tạo vùng bảng tính Trên
vùng tính toán chúng ta có thể chứa những kết quả được thực hiện từ những phép toán trên các dữ liệu
Sử dụng truy vấn làm nguồn dữ liệu cho biểu mẫu (Form),
báo cáo (Report) hoặc một truy vấn khác
Trang 4Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
III 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 xoá (Delete Query)
Truy vấn chéo (Crosstab Query)
Trang 5Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
IV Truy vấn bằng ngôn ngữ SQL
Cơ bản về SQL: SQL là từ viết tắt của Structure Query
Language (ngôn ngữ truy vấn có cấu trúc) Ngôn ngữ SQL thường được dùng trong việc truy vấn dữ liệu, cập nhật và quản lý các cơ sở dữ liệu có quan hệ
Truy vấn đơn:
SELECT [predicate] { * | table.* | [table.]field1 [AS
alias1] [, [table.]field2 [AS alias2] [, ]]}
FROM tableexpression [, ] [IN externaldatabase]
[INNER JOIN…]
[WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ]
Trang 6Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
IV Truy vấn bằng ngôn ngữ SQL
Truy vấn đơn giản:
• Predicate: Thuộc tính Bạn có thể chọn một trong 4 thuộc
tính: ALL, DISTINCT, DISTINCTROW, hoặc TOP Chọn một trong các thông số Nếu không chọn mặc định hiểu là ALL.
Thuộc tính Mô tả
ALL Trả về tất cả mẫu tin DISTINCT Trả về các giá trị không trùng nhau ở các vùng được chọn DISTINCTROW Trả về mẫu tin không trùng nhau
TOP<n> Trả về n mẫu tin đầu tiên
Trang 7Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
IV Truy vấn bằng ngôn ngữ SQL
Truy vấn đơn giản:
• *: Chọn tất cả các vùngtrường củatừ bảng được chỉ ra.
• Table: Tên bảng chứa các trường được lựa chọn.
• Field1, field2: Tên của trường có chứa dữ liệu mà ta muốn
trích ra.
• Alias1, alias2: Bí danh thể hiện tại tiêu đề cột thay cho tên
trường.
• Tableexpression: Tên bảng tham gia truy vấn, trong trường
hợp nhiều bảng tham gia truy vấn, thì chúng phải cách nhau bởi dấu phẩy (,).
• Externaldatabase: Tên của cơ sở dữ liệu chứa bảng tham gia
truy vấn nếu chúng không phải là cơ sở dữ liệu hiện hành.
Trang 8Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
IV Truy vấn bằng ngôn ngữ SQL
Truy vấn đơn giản:
• INNER JOIN: Dùng để liên kết các mẫu tin từ 2 bảng.
• WHERE: Điều kiện lấy mẫu tin Sau WHERE là một biểu thức
điều kiện lọc (Criteria) hoặc một lệnh SQL khác Nếu không có mệnh đề WHERE, ngầm định trả về tất cả các Record thỏa truy vấn.
• GROUP BY: Nhóm các mẫu tin.
• HAVING: Xác định mẫu tin nào được xuất hiện sau khi các
mẫu tin đã được nhóm bởi mệnh đề GROUP BY.
• ORDER BY: Xếp thứ tự mẫu tin các vùng lúc hiển thị Nó sử
Trang 9Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
IV Truy vấn bằng ngôn ngữ SQL
Ví dụ: Lọc danh sách học sinh có họ "Nguyen" gồm các
thuộc tính: SBD, HO, TEN, LOP, CHUNHIEM
• Click chọn đối tượng Queries trong cửa sổ CSDL.
• Click nút lệnh New Design View Click OK.
Trang 10Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
IV Truy vấn bằng ngôn ngữ SQL
Ví dụ: Lọc danh sách học sinh có họ "Nguyen" gồm các
thuộc tính: SBD, HO, TEN, LOP, CHUNHIEM
• Click Close.
• Chọn Menu View SQL View, xuất hiện vùng làm
việc của SQL
Trang 11Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
IV Truy vấn bằng ngôn ngữ SQL
Ví dụ: Lọc danh sách học sinh có họ "Nguyen" gồm các
thuộc tính: SBD, HO, TEN, LOP, CHUNHIEM
• Gõ câu lệnh như trên vào vùng làm việc này.
• Chọn Menu Query Run, hoặc Click vào biểu tượng
(Run) trên thanh Query Design
Trang 12Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
IV Truy vấn bằng ngôn ngữ SQL
Ví dụ: Lọc danh sách học sinh có họ "Nguyen" gồm các
thuộc tính: SBD, HO, TEN, LOP, CHUNHIEM
• Kết quả có được.
Trang 13Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
IV Truy vấn bằng ngôn ngữ SQL
Ví dụ: Lọc danh sách học sinh có họ "Nguyen" gồm các
thuộc tính: SBD, HO, TEN, LOP, CHUNHIEM
• Chọn Menu File Save để lưu lại.
Đặt tên cho Query
• Click OK.
Trang 14Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
V Truy vấn bằng công cụ (QBE)
1 Tạo mới truy vấn lựa chọn (Select Query)
Chọn kiểu đối tượng Queries.
Chọn Menu New Design View Click OK.
Chọn tên bảng Click Add Click Close.
Chọn loại truy vấn: Chọn Menu Query Select Query,
xuất hiện vùng làm việc Select Query
Trang 15Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
V Truy vấn bằng công cụ (QBE)
1 Tạo mới truy vấn lựa chọn (Select Query)
Drag các tên cột của các bảng cần thể hiện trong Query
vào các cột của vùng lưới QBE (QBE Grid) hoặc tạo mới các cột theo yêu cầu bằng các công thức, hàm cơ bản…
Chọn các thông số trong: Sort, Show, Criteria.
Lưu truy vấn hoặc đóng:
• Chọn Menu File Save.
• Nhập tên của truy vấn Click OK.
Trang 16Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
V Truy vấn bằng công cụ (QBE)
2 Ví dụ
Giả sử trong bảng HOCSINH có các trường (SBD, HO, TEN, PHAI, NGAYSINH, LOP) và trong bảng DIEM có các trường (SBD, TOAN, VAN, NGOAINGU) Lập danh sách học sinh gồm các trường: SBD, HOTEN,
DIEMTRUNGBINH Ta thực hiện như sau:
Chọn đối tượng Queries trong CSDL.
Chọn Menu New Design View Click OK.
Trong cửa sổ Show Table, chọn các bảng có các thông
tin yêu cầu: HOCSINH, DIEM Click Add, Click Close
Trang 17Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
V Truy vấn bằng công cụ (QBE)
2 Ví dụ
Drag cột SBD từ bảng HOCSINH vào cột đầu tiên của
vùng lưới
Nhập vào cột 2: HOTEN: [HO] &" "& [TEN].
Nhập vào cột 3: DIEMTRUNGBINH: ([TOAN]*3+
[VAN]*2+[NGOAINGU]*2)/7
Trang 18Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
V Truy vấn bằng công cụ (QBE)
2 Ví dụ
Chọn Menu Query Run, hoặc Click vào biểu tượng
(Run) trên thanh Query Design
Kết quả có được:
Trang 19Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
V Truy vấn bằng công cụ (QBE)
3 Thiết kế nội dung cho cột mới
Dùng công thức tự tạo: Tạo một cột mới bằng cách kết hợp các phép toán +, -, *, /, =, >, <, <>, ^, Mod, Like, Is, &
Trang 20Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
V Truy vấn bằng công cụ (QBE)
3 Thiết kế nội dung cho cột mới
Dùng hàm: Các hàm thông dụng
Hàm IIf:
• Cú pháp:
• Expr: Biểu thức điều kiện.
• Truepart: Giá trị hoặc biểu thức trả về nếu biểu
thức điều kiện đúng
• Falsepart: Giá trị hoặc biểu thức trả về nếu
biểu thức điều kiện sai
• Ý nghĩa: Hàm trả về giá trị hoặc biểu thức đúng nếu
biểu thức điều kiện đúng, trả về giá trị hoặc biểu thức sai nếu biểu thức điều kiện sai
IIf(expr, truepart, falsepart)
Trang 21Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
V Truy vấn bằng công cụ (QBE)
3 Thiết kế nội dung cho cột mới
• Domain: Biểu thức chuỗi xác định tập hợp các
mẫu tin Nó có thể là tên một bảng (Table) hoặc tên một truy vấn (Query)
• Criteria: Điều kiện thực hiện.
• Ý nghĩa: Dùng để tìm kiếm dữ liệu nếu thỏa mãn
điều kiện
DLookup(expr, domain, [criteria])
Trang 22Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
V Truy vấn bằng công cụ (QBE)
3 Thiết kế nội dung cho cột mới
• Domain: Biểu thức chuỗi xác định tập hợp các
mẫu tin tạo thành miền Nó có thể là tên một bảng (Table) hoặc tên một truy vấn (Query)
• Criteria: Điều kiện thực hiện.
• Ý nghĩa: Hàm đếm số mẫu tin trong một miền.
DCount(expr, domain, [criteria])
Trang 23Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
V Truy vấn bằng công cụ (QBE)
3 Thiết kế nội dung cho cột mới
Dùng hàm: Các hàm thông dụng
Hàm Round:
• Cú pháp:
• Expression: Biểu thức số cần làm tròn.
• Numdecimalplaces: Làm tròn bên phải chữ số
thập phân bao nhiêu số Nếu giá trị này không
có thì hàm Round lấy số nguyên
• Ý nghĩa: Hàm làm tròn số đến chữ số thập phân đã
xác định
Round(expression [, numdecimalplaces])
Trang 24Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
V Truy vấn bằng công cụ (QBE)
3 Thiết kế nội dung cho cột mới
Trang 25Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
V Truy vấn bằng công cụ (QBE)
3 Thiết kế nội dung cho cột mới
Dùng hàm: Các hàm thông dụng
Hàm Left:
• Cú pháp:
• String: Chuỗi ký tự gốc.
• Length: Số ký tự n muốn lấy.
• Ý nghĩa: Trích ra n ký tự ở bên trái của chuỗi được
chỉ định
Left(string, length)
Trang 26Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
V Truy vấn bằng công cụ (QBE)
3 Thiết kế nội dung cho cột mới
Dùng hàm: Các hàm thông dụng
Hàm Right:
• Cú pháp:
• String: Chuỗi ký tự gốc.
• Length: Số ký tự n muốn lấy.
• Ý nghĩa: Trích ra n ký tự ở bên phải của chuỗi được
chỉ định
Right(string, length)
Trang 27Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
V Truy vấn bằng công cụ (QBE)
3 Thiết kế nội dung cho cột mới
• Ý nghĩa: Hàm trả về giá trị đúng (True) nếu biểu
thức không chứa dữ liệu (rỗng) Ngược lại, hàm trả
về giá trị sai (False) Chuỗi rỗng (zero-length string (“”)) không được xem là Null
IsNull(expression)
Trang 28Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
V Truy vấn bằng công cụ (QBE)
3 Thiết kế nội dung cho cột mới
Dùng hàm: Các hàm thông dụng
Hàm Len:
• Cú pháp:
• String: Chuỗi muốn lấy chiều dài.
• Varname: Tên biến.
• Ý nghĩa: Hàm trả về chiều dài của chuỗi hoặc biến.
Len(string | varname)
Trang 29Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
V Truy vấn bằng công cụ (QBE)
3 Thiết kế nội dung cho cột mới
Dùng hàm: Các hàm thông dụng
Hàm Space:
• Cú pháp:
• Number: Số khoảng trắng muốn tạo.
• Ý nghĩa: Hàm tạo khoảng trắng.
Space(number)
Trang 30Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
V Truy vấn bằng công cụ (QBE)
3 Thiết kế nội dung cho cột mới
Trang 31Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
V Truy vấn bằng công cụ (QBE)
3 Thiết kế nội dung cho cột mới
Dùng hàm: Các hàm thông dụng
Hàm InStr:
• Cú pháp:
• Start (không bắt buộc): Vị trí bắt đầu tìm kiếm
Nếu bỏ qua tham số này, hàm bắt đầu tìm vị trí đầu tiên
• String1: Chuỗi đang được tìm kiếm.
• String2: Chuỗi muốn tìm trong String1.
• Ý nghĩa: Tìm vị trí của một chuỗi nằm trong chuỗi
muốn tìm
InStr([start, ]string1, string2)
Trang 32V Truy vấn bằng công cụ (QBE)
3 Thiết kế nội dung cho cột mới
Trang 33V Truy vấn bằng công cụ (QBE)
3 Thiết kế nội dung cho cột mới
Trang 34V Truy vấn bằng công cụ (QBE)
3 Thiết kế nội dung cho cột mới
Trang 35V Truy vấn bằng công cụ (QBE)
3 Thiết kế nội dung cho cột mới
Dùng hàm: Các hàm thông dụng
Hàm DatePart:
• Cú pháp:
• Interval: Khoảng thời gian muốn trả về.
• Date: Giá trị ngày muốn xử lý.
• Firstdayofweek: Là hằng số chỉ rõ ngày đầu
tiên của tuần
• Firstweekofyear: Là hằng số chỉ rõ tuần đầu
tiên của năm
• Ý nghĩa: Hàm trả về một phần giá trị của ngày
tháng
DatePart(interval, date[, firstdayofweek[, firstweekofyear]])Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
Trang 36V Truy vấn bằng công cụ (QBE)
3 Thiết kế nội dung cho cột mới
Trang 37V Truy vấn bằng công cụ (QBE)
3 Thiết kế nội dung cho cột mới
Dùng hàm: Các hàm thông dụng
Hàm Weekday:
• Cú pháp:
• Date: Có thể là biến, biểu thức chuỗi, hoặc
biểu thức số được thể hiện dưới dạng ngày
• Firstdayofweek: Là hằng số chỉ rõ ngày đầu
tiên của tuần
• Ý nghĩa: Hàm trả về giá trị thứ trong tuần.
Weekday(date, [firstdayofweek])Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
Trang 38V Truy vấn bằng công cụ (QBE)
3 Thiết kế nội dung cho cột mới
Dùng hàm: Các hàm thông dụng
Hàm Day:
• Cú pháp:
• Date: Có thể là biến, biểu thức chuỗi, hoặc
biểu thức số được thể hiện dưới dạng ngày
• Ý nghĩa: Hàm trả về giá trị ngày trong tháng (mang
giá trị từ 1 đến 31)
Day(date)Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
Trang 39V Truy vấn bằng công cụ (QBE)
3 Thiết kế nội dung cho cột mới
Dùng hàm: Các hàm thông dụng
Hàm Month:
• Cú pháp:
• Date: Có thể là biến, biểu thức chuỗi, hoặc
biểu thức số được thể hiện dưới dạng ngày
• Ý nghĩa: Hàm trả về giá trị tháng trong năm (mang
giá trị từ 1 đến 12)
Month(date)Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
Trang 40V Truy vấn bằng công cụ (QBE)
3 Thiết kế nội dung cho cột mới
Dùng hàm: Các hàm thông dụng
Hàm Year:
• Cú pháp:
• Date: Có thể là biến, biểu thức chuỗi, hoặc
biểu thức số được thể hiện dưới dạng ngày
• Ý nghĩa: Hàm trả về năm.
Year(date)Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
Trang 41V Truy vấn bằng công cụ (QBE)
3 Thiết kế nội dung cho cột mới
Trang 42V Truy vấn bằng công cụ (QBE)
3 Thiết kế nội dung cho cột mới
Trang 43V Truy vấn bằng công cụ (QBE)
3 Thiết kế nội dung cho cột mới
Dùng hàm: Các hàm thông dụng
Hàm Hour:
• Cú pháp:
• Time: Có thể là biến, biểu thức chuỗi, hoặc
biểu thức số được thể hiện dưới dạng giờ
• Ý nghĩa: Hàm trả về giá trị giờ trong ngày (mang
giá trị từ 0 đến 23)
Hour(time)Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
Trang 44V Truy vấn bằng công cụ (QBE)
3 Thiết kế nội dung cho cột mới
Dùng hàm: Các hàm thông dụng
Hàm Minute:
• Cú pháp:
• Time: Có thể là biến, biểu thức chuỗi, hoặc
biểu thức số được thể hiện dưới dạng giờ
• Ý nghĩa: Hàm trả về giá trị phút (mang giá trị từ 0
đến 59)
Minute(time)Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
Trang 45V Truy vấn bằng công cụ (QBE)
3 Thiết kế nội dung cho cột mới
Dùng hàm: Các hàm thông dụng
Hàm Second:
• Cú pháp:
• Time: Có thể là biến, biểu thức chuỗi, hoặc
biểu thức số được thể hiện dưới dạng giờ
• Ý nghĩa: Hàm trả về giá trị giây (mang giá trị từ 0
đến 59)
Second(time)Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
Trang 46V Truy vấn bằng công cụ (QBE)
4 Cách tạo vùng điều kiện (Criteria)
Trang 47V Truy vấn bằng công cụ (QBE)
4 Cách tạo vùng điều kiện (Criteria)
Các câu lệnh điều kiện SQL đơn giản thường dùng:
• Giống dạng: Like "H*".
• Giữa 2 giá trị: Between <giá trị 1> And <giá trị 2>.
• Có trong tập hợp: In (<giá trị 1>, <giá trị 2>, …, <giá
trị n>)
Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)
Trang 48V Truy vấn bằng công cụ (QBE)
1 Tham số trong truy vấn
Biểu thức trong cặp dấu [ ] mà không phải là tên biến,
tên cột thì được xem là tham số
Ví dụ: Muốn thể hiện thông tin cho 1 phái nào đó tùy
theo yêu cầu của người dùng, trong dòng Criteria của cột PHAI ta nhập: [Nhap -1 cho Nam, 0 cho Nu:]
Bài 3: Truy vấn dữ liệu (Query) – Truy vấn chọn (Select Query)