Professional Documents
Culture Documents
Tinhoc 12
Tinhoc 12
Tinhoc 12
CHƯƠNG II : QUERY
Bài giảng
MS-ACCESS 2003
BÀI 01:(2Tiết) BÀI 02:(4Tiết) TẠO CSDL,
PTTK CSDL& MS-ACCESS TABLE, &RELATIONSHIP
Coâng ty coù taäp tin löu tröõ danh saùch nhaân vieân
treân maùy tính, cuøng luùc ban giaùm ñoác caàn
xem xeùt caùc nhaân vieân ñeå khen thöôûng –
phoøng taøi vuï laïi caàn laäp baûng löông thaùng
cho caùc nhaân vieân.
Nhö vaäy danh saùch nhaân vieân ñöôïc caû ban
giaùm ñoác vaø phoøng taøi vuï khai thaùc cuøng
moät luùc, dó nhieân thoâng tin veà nhaân vieân
phaûi nhaát quaùn nghóa laø duø ôû ñaâu - ôû ban
giaùm ñoác hay ôû phoøng taøi vuï - thoâng tin aáy
laø phaûi nhö nhau.
Minh họa
P Toå chöùc
Ví duï:
Trong moät tröôøng hoïc coù caùc thöïc theå:
giaùo vieân, hoïc sinh, moân hoïc…
Trong moät thö vieän coù caùc thöïc theå: saùch,
loaïi saùch, nhaø xuaát baûn…
Trong moät coâng ty buoân baùn cho pheùp traû
chaäm coù caùc thöïc theå: maët haøng (cuï
theå),coâng nôï (tröøu töôïng).
Caùc thöïc theå naøy coù caùc tính chaát rieâng cuûa
noù goïi laø thuoäc tính.
Ví duï:
Moãi hoïc sinh coù moät hoï teân, vaäy hoï teân laø thuoäc
tính
Moãi thöïc theå coù moät thuoäc tính duøng ñeå phaân bieät giöõa
caùc ñoái töôïng cuûa thöïc theå ñoù goïi laø thuoäc tính khoùa
hay goïi taét laø khoùa.
Ví duï:
Moãi Sinh vieân coù moät maõ soá duy nhaát ñeå
phaân bieät vôùi Sinh vieân khaùc
Giöõa caùc thöïc theå coù theå coù moái lieân heä vôùi
nhau goïi laø quan heä (relation)
2. Caùc Quan Heä:
Quan heä moätmoät (one to one): kí hieäu (1,1), laø
quan heä hình thaønh khi moät ñoái töôïng cuûa thöïc
theå naøy coù quan heä duy nhaát vôùi moät ñoái töôïng
cuûa thöïc theå kia.
Ví duï:
Moät nhaân vieân chæ thuoäc veà moät phoøng ban duy
nhaát
Quan heä moätnhieàu (one to many): kyù hieäu (1,n),
laø quan heä hình thaønh khi moät ñoái töôïng cuûa
thöïc theå naøy coù quan heä vôùi nhieàu ñoái töôïng
cuûa thöïc theå kia.
Ví duï:
Moät Lôùp coù nhieàu sinh vieân theo hoïc hoaëc Moät sinh
vieân hoïc nhieàu moân hoïc khaùc nhau.
Ngoaøi ra, trong thöïc teá, moät ñoái töôïng cuûa thöïc
theå naøy laïi coù quan heä vôùi nhieàu ñoái töôïng cuûa
thöïc theå kia vaø ngöôïc laïi. Quan heä naøy ñöôïc goïi
laø quan heä nhieàu-nhieàu (many to many), kí hieäu
laø (n, n).
Ví duï:
Trong moät thö vieän, ta xeùt quan heä giöõa thöïc
theå saùch vaø thöïc theå ñoäc giaû: Moät cuoán
saùch coù theå ñöôïc nhieàu ñoäc giaû möôïn vaø
ñoàng thôøi moät ñoäc giaû coù theå möôïn nhieàu
cuoán saùch.(luùc naøy, trong Access, ta phaûi bieåu
dieãn quan heä nhieàu-nhieàu noùi treân baèng hai
quan heä moät-nhieàu).
3. Moâ Hình CSDL Quan
Heä: moâ hình naøy thì caùc döõ lieäu, thoâng tin veà
Theo
moät thöïc theå caàn quaûn trò seõ ñöôïc löu vaøo maùy
tính döôùi daïng caùc baûng (Table).
Giöõa caùc baûng coù theå coù quan heä vôùi nhau vaø
moái quan heä naøy cuõng ñöôïc bieåu dieãn döôùi
daïng baûng
Ví duï:
Xeùt hoaït ñoäng cuûa moät thö vieän. Döõ lieäu caàn
quaûn lí cuûa thö vieän goàm coù:
* Saùch ta goïi Saùch laø moät thöïc theå.
* Ñoäc giaû ta goïi Ñoäc giaû laø moät thöïc
theå.
Bieåu dieãn caùc thöïc theå döôùi daïng baûng nhö
sau:
Saùch:
TenSach TacGia NamXB NhaXB SoLuong
MaSach
Lenin toaøn Söï
CT003 V. I. Lenin 1980 12
taäp thaät
Ñoäc
Giaû
MaDG TenDG DiaChi
DG0001 Traàn Vaên A 11 Leâ Lai Q1
Khóa chính
Khóa ngoại
II. TẠO CƠ SỞ DỮ LIỆU
1. Dùng Database Wizard
2. Tạo CSDL Trống
• Nếu mớI khởi động Access :
Chọn mục Blank Database/OK
Chọn thư mục và đặt tên
III. LÀM VIỆC VỚI TABLE
01. Vai trò của Table
Xóa Table
Chọn Table cần xóa. nhấn Delete, chọn Yes
Lưu Table
Thiết kế xong File/Save để lưu và thoát nếu chưa lưu Acess
sẽ thông báo yêu cầu lưu
Kiểu dữ liệu
Minh họa
Liên kết các bảng dữ liệu
Trong Access tồn tại 2 kiểu liên kết: liên kết 1-1 và liên kết 1-n (một-nhiều)
Liên kết 1-1 là: mỗi bản ghi của bảng này sẽ liên kết với duy nhất tới một bản
ghi của bảng kia và ngược lại;
Ví dụ liên kết 1-1:
Có thể tham khảo mỗi cha có thể có nhiều con qua 2 bảng sau:
Hoặc xem theo một kiểu khác:
Từ cửa sổ Show Table : Chọn các
Table hay query cần thiết lập quan
hệ: Add lần lượt vào
(Có thể thiết lập mối quan hệ đôi hay
mối QH với chính nó)
Bước 2 : Lần lượt thiết lập thuộc tính LOOKUP cho các trường
một cách phù hợp. Mỗi quan hệ trên bảng thiết kế sẽ cần một thao
tác thiết lập thuộc tính LOOKUP (sử dụng trình LookUp Wizard)
từ trường trên bảng quan hệ nhiều sang trường bảng quan hệ một;
Bước 3 : Thiết lập các thuộc tính đảm bảo toàn
vẹn dữ liệu cần thiết cho các
quan hệ tại cửa sổ Relationships (menu Tool |
Relationships.. hoặc nhấn nút
trên thanh công cụ);
Bước 4 : Thực hiện nhập dữ liệu cho các
bảng nếu cần. Chú ý : bảng có quan hệ 1
phải được nhập dữ liệu trước bảng có quan hệ
nhiều.
Chú ý : Một số lỗi có thể xảy ra khi nhập dữ liệu
Lỗi thứ nhất:
Lỗi do: Bạn đã nhập vào giá trị không tương thích với kiểu dữ liệu
của trường đã chỉ định.
Ví dụ: trường kiểu Numeric mà gõ vào chữ cái; hoặc không gõ đầy
đủ các giá trị ngày, tháng, năm cho trường kiểu Date/Time,.. lỗi này
sẽ xuất hiện.
Khắc phục: hãy nhập lại cho đúng, đủ giá trị các trường đã yêu cầu
đến khi không xuất hiện thông báo lỗi.
Lỗi thứ 2:
Lỗi do: Bạn không nhập giá trị hoặc để trống giá trị trường khoá. Đã là
trường khoá luôn yêu cầu phải nhập dữ liệu cho mỗi bản ghi.
Khắc phục: phải nhập đầy đủ giá trị cho trường khoá.
Lỗi thứ 3:
Lỗi do: Giá trị trường khoá trùng nhau. Giá trị trường khoá vừa nhập
vào đã trùng với giá
trị của một bản ghi nào đó trên bảng dữ liệu.
Khắc phục: nhập lại giá trị trường khoá khác sao cho vừa đúng, đủ
và không bị trùng khoá.
Lỗi thứ 4:
Lỗi do: Bản ghi vừa nhập dữ liệu đã bỏ trắng trường bắt buộc nhập dữ liệu (những
trường
được thiết lập thuộc tính Required=Yes)
Khắc phục: Phải nhập đủ dữ liệu cho các trường bắt buộc phải nhập dữ liệu.
Lỗi thứ 5:
Lý do: Lỗi do thực hiện một thao tác vi phạm các nguyên tắc đảm bảo toàn vẹn dữ liệu. Ví
dụ: Bạn đã nhập dữ liệu trên một bảng có quan hệ mà bản ghi đang nhập không thể liên kết
được tới được một bản ghi nào của bảng có quan hệ 1 với nó (nhập một hàng bán mà
mã hàng đó chưa có trong bảng danh mục hàng hoá).
Khắc phục: Tìm và nhập cho đúng giá trị theo bảng quan hệ 1 tương ứng. Tham khảo cách
khắc phục lỗi này ở mục 5: thuộc tính LookUp.
Bài tập
1. Xây dựng CSDL Quản lý lương cán bộ một cơ quan có cấu trúc như
sau :
Yêu cầu :
- Thiết kế cấu trúc các bảng một cách phù hợp : kiểu dữ liệu các trường;
trường khoá; thuộc tính Lookup và các thuộc tính khác;
- Thiết lập quan hệ cùng các thuộc tính đảm bảo toàn vẹn dữ liệu cho các quan hệ;
- Nhập dữ liệu như sau :
+ 4 phòng ban;
+ 5 loại chức vụ;
+ 20 hồ sơ cán bộ.
2. Xây dựng CSDL Quản lý việc bán hàng cho một cửa hàng có
cấu trúc như sau :
Yêu cầu :
- Thiết kế cấu trúc các bảng một cách phù hợp : kiểu dữ liệu các
trường;
trường khoá; thuộc tính Lookup và các thuộc tính khác;
- Thiết lập quan hệ cùng các thuộc tính đảm bảo toàn vẹn dữ liệu cho các
quan hệ;
- Nhập dữ liệu như sau :
+ 5 khách hàng;
+ 15 danh mục hàng hoá có bán;
+ lập 10 hoá đơn bán hàng;
+ với 25 lượt hàng hoá được bán ra.
3. Xây dựng CSDL Quản lý sách một thư viện có cấu trúc như sau :
Yêu cầu :
- Thiết kế cấu trúc các bảng một cách phù hợp : kiểu dữ liệu các
trường;
trường khoá; thuộc tính Lookup và các thuộc tính khác;
- Thiết lập quan hệ cùng các thuộc tính đảm bảo toàn vẹn dữ liệu cho các quan
hệ;
- Nhập dữ liệu như sau :
+ 5 tác giả;
+ 5 nhà xuất bản;
+ 8 danh mục sách;
+ 10 đầu sách.
4. Xây dựng CSDL Quản lý điểm học sinh trường phổ thông có cấu trúc như sau :
Yêu cầu :
- Thiết kế cấu trúc các bảng một cách phù hợp: kiểu dữ liệu các trường;
trường khoá; thuộc tính Lookup và các thuộc tính khác;
- Thiết lập quan hệ cùng các thuộc tính đảm bảo toàn vẹn dữ liệu cho các quan hệ;
- Nhập dữ liệu như sau:
Minh Họa
Design View
SQL View
DataSheet
View
V. LƯU VÀ ĐIỀU CHỈNH
Lưu : Khi hoàn tất thiết kế hoặc hiệu chỉnh cần lưu lại
Menu File/Save. nếu không khi đóng Acces sẽ hỏi bạn
cần lưu không.
Ví dụ 2 :
SELECT N.MaNCC, TenNCC, TenHang, DonViTinh,
DonGia
FROM NhaCungCap N, MatHang M
WHERE N.MaNCC=M.MaNCC And (M.MaNCC=2 Or
[M.MaNCC=4);
BÀI 05 QUERY CAO CẤP
I. PARAMETER QUERY
II. CROSSTAB QUERY
III. ACTION QUERY
I. PARAMETER QUERY
Parameter Query là query được nhận thông số nhập từ
bàn phím để định tiêu chuẩn lọc các mẫu tin cho mỗi
lần chạy. nếu thiết kế Query Paramater có yêu cầu trả
lời nhiều tiêu chuẩn cho mỗi lần chạy thì các khung đối
thoại cho từng tiêu chuẩn khai báo lần lượt hiển thị.
Trong hộp thoại “Enter Parameter value” chỉ có
thể nhập 1 tiêu chuẩn và không phải là 1 biểu thức.
Tạo Parameter Query
+ Tạo hay mở Query chế độ DesignView
+ Tại dòng Criteria của field muốn dùng làm tham số :
Nhập chuổI ký tự thông báo trong cặp ngoặc vuông (Thông
báo này sẽ hiện thị trong hộp “Enter Parameter Value” khi
chạy Query. Chuổi ký tự không đươc trùng với tên Field.
Có thể dùng Quey với thông báo yêu cầu đánh vào vài ký
tự đầu tiên của trị muốn tìm
EX: Like [Nhap vao vai ky tu dau tien cua tri muon tim]
&*
Có thể tạo Query parameter vớI nhiều thông số cho mỗI
field hay nhiều thông số cho một Field (Dùng toán tử
Between . . .And . . .)
EX: Between [Nhap ngay bat dau] and [Nhap ngay ket thuc]
Minh họa:
Rowheading
Column heading
Value
- Row heading là tiêu đề các dòng, có chứa các giá trị của các trường
nào đó làm tiêu chí thống kê. Mỗi Crosstab phải có tối thiểu 1 trường
làm Row heading;
- Column heading là tiêu đề các cột, có chứa các giá trị của một
trường nào đó làm tiêu chí thống kê. Mỗi Crosstab chỉ có duy
nhất 01 trường làm Column heading;
- Value là vùng dữ liệu tổng hợp (là các con số). Chỉ có duy nhất một
trường làm Value, tương ứng với nó là một phép tổng hợp hoặc: đếm,
tính tổng, tính trung bình cộng, max, min,..
Các bước để tạo một Crosstab query. Ví dụ tạo query đưa ra được
bảng tổng hợp sau:
Bước 1: Tạo một select query với đầy đủ các trường có liên quan
đến phép tổng hợp (không thừa và cũng không thể thiếu một trường
nào) như sau:
Bước 2: Ra lệnh chọn kiểu Crostab query bằng cách mở thực đơn
Queries | Crosstab Query;
Bước 3: Thiết lập các thuộc tính Total cũng như Crosstab cho các
trường phù hợp như sau:
Tên trường Thuộc tính Total Thuộc tính Crosstab
2. Delete Query
3. Append Query
4. Update Query
Giả sử đã tạo được một Select query đưa ra được
bảng kết quả như sau:
Bài toán đặt ra là: đưa toàn bộ kết quả của query đang hiển thị ra
một bảng mới có tên bangluong
1. Male Table Query
Dùng để tạo Table mới từ dữ liệu của các Table khác nhằm tạo bảng
lưu cho table.
Trình tự thực hiện:
+ Tạo Query mới
+ Chọn các field tương ứng
+ Chọn Menu Query/ Make Table Query
+ Đặt tên Table cho khung Table
+ Khai báo nơi lưu trữ dữ liệu: Database hiện tại hay Database khác
+ Hoàn tất : Ghi lưu Query
+ Khi chạy Make Table Query Access thông báo yêu cầu người
dùng xác nhận việc thực hiện.
2. Delete Query
Dùng để xóa các mẫu tin trong Table.
Trình tự thực hiện:
+ Tạo Query mới
+ Chọn các Table tham gia
+ Chọn Menu Query/ Delete Query
+ Chọn các field cần xóa ( * là chọn tất cả)
+ Xác địng điều kiện xóa ở dòng Criteria
+ Khi chạy Delete Query Access cảnh báo sẽ không thể phục
hồI
+ Khi xóa các mẫu tin bằng delete, chỉ có các mẫu tin bị xóa,
table vẫn còn trống. Muố xóa table phảI thực hiện từ cửa sổ
Database.
3. Append Query
Dùng để nối vào table các mẫu tin lấy từ nhiều table khác.
Trình tự thực hiện:
+ Tạo Query mới
+ Chọn các Table tham gia
+ Chọn Menu Query/ Append Query
+ Khai báo đích lưu CSDL
+ Xác định Table trong khung Table name
+ Khi chạy Append Query Access sẽ thông báo số record sẽ
thêm vào.
4. Update Query
Dùng để cập nhật các mẫu tin trong table.
Trình tự thực hiện:
+ Tạo Query mới
+ Chọn các Table tham gia
+ Chọn Menu Query/ Upadate Query
+ Chọn Field muốn cập nhật
+ Khai báo điều kiện tạI dòng Criteria
+ Khai báo tại dòng Update To biểu thức theo đó Access cập
nhật Field
+ Ghi lưu Update Query
+ Khi chạy Update Query Access sẽ thông báo số record sẽ
điều chỉnh
Bµi tËp:
Thực hiện trên CSDL Quản lý lương cán bộ các yêu cầu:
Bài số 1: Hãy tính và in ra bảng lương của cơ quan bao gồm các thông tin:
Hoten, ngaysinh, tenchucvu, tenphongban, luongchinh,
phucapcv, dangphi, congdoanphi, thuclinh.
Trong đó:
Luongchinh = hesoluong * 290000
Dangphi = 20,000 với những ai là Đảng viên
Congdoanphi = 5%Luongchinh với những ai đã vào công đoàn
Bài số 2: Hãy đưa ra danh sách các cán bộ là Đảng viên mà chưa vào
công
đoàn;
Bài số 3: Hãy lọc ra danh sách cán bộ của một phòng ban nào đó, tên phòng ban
được nhập từ bàn phím khi query được kích hoạt;
Bài số 4: Hãy lọc ra danh sách cán bộ là Đảng viên và có thực lĩnh lớn hơn một
số nào đó- được nhập từ bàn phím khi query được kích hoạt;
Bài số 5: Hãy lọc ra danh sách cán bộ mà năm sinh rơi vào trong một khoảng
năm nào đó được nhập vào từ bàn phím. Ví dụ: khi kích hoạt query, Access yêu
cầu nhập vào khoảng năm sinh từ năm nào, đến năm nào. Khi đó query sẽ lọc ra
danh sách các cán bộ thoả mãn điều kiện đó;
Bài số 6: Lọc ra danh sách cán bộ có tên được nhập vào từ bàn phím khi kích hoạt
query. Ví dụ: khi query kích hoạt sẽ hỏi: Gõ vào tên cần xem? Sau khi gõ vào một
tên (có thể cả họ hoặc cả họ và tên), máy tính sẽ lọc ra danh sách cán bộ thoả mãn
điều kiện;
Bài số 7: Lọc ra danh sách cán bộ đến tuổi nghỉ hưu, biết rằng điều kiện nghỉ
hưu xác định như sau:
- Là Nam giới, tuổi >=60
- Là Nữ giới, tuổi >=55
Bài số 8: Hãy đưa ra bảng tổng hợp số cán bộ đã vào Đảng hay chưa vào Đảng theo
giới tính như sau:
Bài số 9: Hãy đưa ra bảng tổng hợp tổng số cán bộ theo từng loại chức vụ của
các phòng ban như sau:
Bài số 10: Đưa ra bảng tổng hợp về chức vụ theo giới tính như sau:
Bài số 11: Đưa ra bảng tổng hợp lương theo từng phòng ban như sau:
Thực hiện trên CSDL Quản lý bán hàng các yêu cầu:
Bài số 12: Tạo query hiển thị chi tiết thông tin từng hàng bán:
Bài số 13: Tạo query đưa ra bảng tổng hợp tổng tiền bán được từng ngày của cửa
hàng như sau:
Bài số 14: Tạo query đưa ra bảng tổng hợp tổng số bán và tổng tiền đã bán ra của
từng loại mặt hàng như sau:
Bài số 15: Tạo bảng tính tổng tiền từng hoá đơn bán hàng như sau:
Bài số 16: Lập bảng tổng hợp số lượng bán ra từng ngày của từng
mặt hàng như sau:
Bài số 17: Lập bảng tổng hợp số lượng mua từng mặt hàng của
các khách hàng như sau: