Laø truy vaán cheùo cho pheùp ta coù theå toång hôïp döõ lieäu töø moät hoaëc nhieàu baûng ñeå taïo thaønh baûng môùi goïi laø baûng ñoäng coù caáu truùc tham chieáu cheùo (Crosstab), ña[r]
(1)MICROSOFT ACCESS Lời nói đầu
gày ngành Công Nghệ Thông Tin phát triển vũ bảo, Máy tính trở nên gần gũi, thân thuộc với chúng ta, học tập, nghiên cứu Giúp cho lưu trữ liệu, xử lý thông tin cách nhanh chóng xác Đặc biệt lĩnh vực quản lý hỗ trợ đắc lực máy tính phần mềm quản trị sở liệu mang lại nhiều lợi ich công tác quản lý, thống kê liệu
N
Và giáo trình chúng tơi xin giới thiệu đến bạn độc giả phần mềm hệ quản trị sở liệu quan hệ phổ biến Microsoft Access
Giáo trình Microsoft Access giúp bạn nắm bắt nhanh chóng tính hệ quản trị sở liệu Access với nhiều cải tiến giúp bạn sử dụng dễ dàng hơn, giao diện thân thiện nhiều tính thơng minh
(2)Chương 1
BẢNG (TABLE) & MỐI QUAN HỆ (RELATIONSHIP)
I. CÔNG DỤNG CỦA MICROSOFT ACCESS
Dùng để tổ chức lưu trữ sở liệu phục vụ cho mục tiêu quản lý
Ví dụ: Quản lý nhân sự, vật tư , quản lý HS, SV…
II. THỰC THỂ VAØ QUAN HỆ
Thực thể vật cụ thể hay trừu tượng giới khách quan Ví dụ:
- Trong trường học có thực thể: Giáo viên, học sinh, môn học… - Trong thư viện bao gồm thực thể: sách, loại sách, nhà xuất bản…
- Trong công ty thương mại có thực thể: Mặt hàng (cụ thể), công nợ (trừu
tượng)
Các thực thể có tính chất riêng gọi thuộc tính Ví dụ : Mỗi học sinh có họ tên, họ tên thuộc tính
Ghi chú: Để khơng bị trùng lắp thơng tin thuộc tính đặc tính riêng thực thể
Thực thể biểu diễn hình chữ nhật sau:
<Tên thực thể> <Thuộc tính>
… … <Thuộc tính>
Ví dụ: Biểu diễn thực thể sinh viên & môn học sau:
Sinh viên Môn học
Mã SV Tên SV Ngày sinh
Địa
Mã MH Tên MH
Số tiết
Mỗi thực thể có thuộc tính dùng để phân biệt đối tượng thực thể gọi
là thuộc tính khố
(3) Quan hệ có thuộc tính khơng có thuộc tính
Ví dụ: Điểm thuộc tính quan hệ sinh viên môn học
Loại quan hệ: Có loại quan hệ sau:
- Quan hệ – một: Kí hiệu (1,1) one to one: Là quan hệ hình thành đối tượng
của thực thể có quan hệ với đối tượng thực thể
Ví dụ: Một nhân viên thuộc phòng ban
- Quan hệ - nhiều: Kí hiệu (1, n) one to many: Là quan hệ hình thành đối tượng thực thể có quan hệ với nhiều đối tượng thực thể
Ví dụ: Một lớp có nhiều sinh viên
- Quan hệ nhiều – nhiều: Kí hiệu (n,n) many to many: Là quan hệ hình thành đối
tượng thực thể có quan hệ với nhiều thực thể ngược lại
Ví dụ: Một độc giả mượn nhiều sách, loại sách có nhiều độc giả mượn
III. KHỞI ĐỘNG MICROSOFT ACCESS 2003. Sau khởi động hệ điều hành Windows. Thực theo bước sau:
Chọn nút Start\Program\Microsof Office\Microsoft Office Access 2003 Xuất hình Microsoft Access 2003.
a) Tạo tệp CSDL cách sau: Bước 1:
- Cách 1: Vào Menu File\New cửa sổ New File xuất hiện\
chọn Blank Database. Tạo CSDL (File.MDB mới)
- Cách 2: Kích chọn biểu tượng New trên công cụ. cửa sổ New File xuất hiện\ chọn Blank Database. Tạo
CSDL (File.MDB mới)
- Cách 3: Kích chọn Create a new file bên khung phải
của thanh Task Pane\ chọn Blank Database Taïo CSDL
mới (File.MDB mới)
Bước 2: Xuất khung File new Database
Tại Save in: Chọn đường dẫn lưu tệp CSDL Tại File name: Đặt tên cho tệp CSDL Chọn Create hoàn thành kết thúc
b) Mở tệp CSDL có cách sau:
Vào Menu File\Open: Chọn đường dẫn chứa tệp CSDL
cần mở
Kích chọn biểu tượng Open công cụ: Chọn đường dẫn chứa tệp CSDL cần
mở
(4)IV. CÁC THÀNH PHẦN TRONG MICROSOFT ACCESS.
Tập tin CSDL Microsoft Access gồm có thành phần:
1. Baûng (Table)
Là thành phần dùng để thiết kế CSDL, nơi chứa liệu
2. Truy vấn (Query ): Là công cụ cho phép người sử dụng thực thao tác bảng kết theo yêu cầu khai thác liệu thực tế, có nhiều loại Query khác
3. Mẫu biểu (From): Là thành phần quan trọng dùng cho nhập liệu, giúp thao tác nhập liệu vào bảng nhanh hiệu
4. Báo biểu (Report): Thành phần trình bày kết qủa liệu với nhiều dạng, hình thức phong phú, phục vụ cho việc in ấn liệu
5. Tập lệnh (Macro): Là thành phần chứa hành động cho phép thực thao tác, Macro xem cơng cụ lập trình đơn giản
6. Đơn thể chương trình (Module): Là thành phần chứa thủ tục hàm Các thủ tục, hàm lập trình ngôn ngữ Visual Basic, thành phần chuyên sâu, dùng cho người dùng chuyên nghiệp
V. BAÛNG (TABLE).
1 Bảng: Là thành phần lưu giữ thông tin, liệu Microsoft Access gồm nhiều cột nhiều dòng
Cột (Field - gọi trường hay vùng tin)
- Dùng để miêu tả thuộc tính thực thể
- Trên cột (Field) liệu phải kiểu
Dòng (Record – gọi mẫu tin hay bảng ghi):
- Là thể cụ thể liệu cột bảng
Ý nghĩa: Lưu thơng tin thực thể muốn quản lý
Ví dụ: Cho bảng NHÂN VIÊN
MaNV Hoten Ngaysinh Banluong Phainu
HC02 Lê Thị B 15/02/1973 520 NU
KT01 Trần văn A 01/01/1974 460 NAM
- Bảng có năm cột (5 Fields) MaNV, Hoten, Ngaysinh Banluong, Phainu - Bảng có hai dịng (2 Records) tượng trưng cho hai Nhân viên
2. Các kiểu liệu cột (Fields)
Microsoft Access có kiểu liệu cho Field sau:
(5)Text Kiểu chuỗi có độ dài <= 255 ký tự
Number Kiểu số dùng tính tốn, gồm kiểu con: Byte, Interger, Long interger, Single, Double, Rerplication ID, Decimal
Date/ Time Kiểu ngày tháng năm, phút giây
Curency Kiểu tiền tệ tính tốn kiểu số
Yes/ No Kiểu luận lý, chứa giá trị Yes/ No True/ False On/ Off OLE Object Kiểu đối tượng hình ảnh âm thanh, đoạn phim …
nhúng liên kết vào bảng
Memo Kiểu chuỗi ghi có độ dài <=65535 ký tự Hyper Link Kiểu văn sử dụng địa liên kết
Lookup Wizard Không phải kiểu cụ thể, đường lấy liệu từ bảng khác theo Wizards
Auto Number Kiểu số không trùng tự động tăng sửa
VI. TẠO BẢNG
1. Tạo bảng Design view.
Là q trình tạo bảng “Bằng tay” người sử dụng tự thiết kế liệu cho bảng theo CSDL Đây cách tạo bảng thơng dụng mang tính chun nghiệp cao
Từ khung DataBase, chọn
Tab Table, chọn New, xuất khung đối thoại New Table, ta chọn Design view, Ok
Xuất khung thieát keá
bảng, thực thao tác sau:
- Nhập tên Field cần tạo
cột Field Name
- Chọn kiểu liệu thích
hợp cho Field cột Data Type.
- Có thể nhập thích,
mô tả cho Field Name vào cột
Description.
- Qui định thuộc tính cho Field phần Field Properties - Lập lại buớc cho Field khác
Xác định khố
- Khóa ( Primary key) tập hợp gồm hay nhiều cột (Field|) mà giá trị
(6)Dữ liệu cột (hay nhiều cột) chọn làm khóa khơng thể trùng lắp (No Duplicates) khơng thể rỗng
- Khoá ngoại (Foreign key): Là cột hay nhiều cột bảng cột khóa bảng khác
Chú ý : Dữ liệu cột bảng nhập liệu phải tồn bảng mà cột là khố chính, nói cách khác dữ liệu lưu cột khóa ngoại phải lưu trữ sau các cột liệu khố chính bên bảng khác
Thực đặt khoá:
- Click chọn tên làm khóa, chọn Menu Edit – Primary Key (hoặc click cơng cụ
chìa khố cơng cụ) Field khố có hình “chìa khố” bên cạnh
Xong, ta chọn Menu File – Close, xuất hộp thoại yêu cầu đặt tên cho bảng cuối bảng tạo
Ví dụ: Để tạo bảng NHÂN VIÊN ta làm sau:
- Từ cửa sổ CSDL ta chọn tab Table chọn New Design view chọn OK Hiện
lên cửa sổ thiết kế sau:
Nhập tên field MANV vào cột Field Name, chọn kiểu liệu cho field MANV Text xác lập phần khác hình
Tương tự bạn tạo cho field Hoten, Ngay Sinh, Bangluong,Phainu (Đối với Field Phainu chọn phiếu Lookup chọn Text box)
Sau thiết kế xong cho tất field ta chọn khóa cho bảng (table) MANV cách chọn MANV sau Click chọn vào cơng cụ chìa khố cơng cụ vào Edit
Primary key
Lưu lại với tên NHANVIEN, chọn menu View -> Datasheet View để nhập liệu cho bảng (nhập khoảng dòng)
Cơng cụ chọn khóa cho bảng Khai báo độ rộng MANV = Định dạng liệu nhập vào
MANV tự động chuyển sang chữ in hoa
Mặc định bắt buộc nhập vào ký tự
(LL) vaø so (00)
Giá trị mặc định không nhập Điều kiện nhập liệu
Thơng báo sai điều kiện Yêu cầu có bắt buộc nhập liệu cho
field hay khơng
Cho phép chuỗi có độ dài khơng Có sử dụng số Index khơng (Nếu
(7)Chú ý: Nhớ đặt khóa cho tất bảng.
VII. QUI TẮC ĐẶT TÊN.
Misrosoft Access 2003 qui định qui tắc đặt tên cho Filed, tên Table, tên Query, tên From, tên Report, tên Macro … sau:
- Chuỗi tên có độ dài tối đa 64 ký tự - Không trùng tên với
- Không dùng ký tự đặc biệt như: (, ) , [, ] … tên
BÀI TẬP
Để quản lý hàng xuất nhập Công ty bạn tạo sở liệu (Data base) có tên QLSP.MDB lưu đĩa thực tập bạn CSDL gồm bảng (Table) sau:
(Chú ý: Các Fields in đậm gạch khố bảng)
Điều kiện chung: Khi nhập liệu vào tất cột (field) kiểu liệu Text tự động đổi sang chữ in hoa (Hướng dẫn: Mục Format nhập vào dấu : > (dấu lớn hơn)
KHACHHANG
TÊN KIỂU DỮ LIỆU ĐỘ RỘNG GHI CHÚ
MAKH TEXT MA KHACH HANG
TENKH TEXT 30 TEN KHACH HANG
DIACHI TEXT 30 DIA CHI KH
PHONE TEXT 10 DIEN THOAI KH
Điều kiện: MAKH cho phép người sử dụng nhập vào ký tự (Hướng dẫn:
INPUTMASK: LL)
SANPHAM
TÊN KIỂU DỮ LIỆU ĐỘ RỘNG GHI CHÚ
MASP TEXT MA SAN PHAM
TENSP TEXT 20 TEN SAN PHAM
DONGIA CURRENCY DON GIA
DVT TEXT 10 DON VI TINH
Điều kiện : MASP cho phép người sử dụng nhập vào ký tự số (INPUT MASK: LLL00)
HSNV
(8)MANV TEXT MA NHAN VIEN
HOLOT TEXT 20 HO LOT NHAN VIEN
TEN TEXT 15 TEN NHAN VIEN
CHUALAPGD YES/NO =YES neu chua lap gia dinh,
nguoc lai la NO
TDHV TEXT TRINH DO HOC VAN
PHAINU YES/NO =YES neu la nu, nguoc lai
nam
LCB CURRENCY
NGAYSINH DATE\TIME Short date NGAY SINH
NGAYVL DATE\TIME Short date NGAY VAO LAM
SOCON NUMBER BYTE SO CON
HINH OLE HINH NHAN VIEN
Điều kiện: MANV cho phép người sử dụng nhập vào ký tự số (INPUT MASK: LL00
CHAMCONG
TÊN KIỂU DỮ LIỆU ĐỘ RỘNG GHI CHÚ
THANG TEXT THANG CHAM CONG
MANV TEXT MA NHAN VIEN
NGAYCONG NUMBER BYTE NGAY CONG NHAN VIEN
NGAYPHEP NUMBER BYTE SO NGAY NHAN VIEN
NGHI
NGOAIGIO NUMBER BYTE SO NGAY LAM THEM
Điều kiện: MANV cho phép người sử dụng nhập vào ký tự số Ngày công không nhập số âm, ngày làm ngồi khơng lớn 10, ngày phép không nghĩ ngày tháng Nếu nhập sai theo yêu cầu câu thông báo lỗi tương ứng
HOADON
(9)SOHD TEXT SO HOA DON
MAKH TEXT MA KHACH HANG
MASP TEXT MA SAN PHAM
NGAY DATE\TIME Short Date NGAY GHI HOA DON
LOAIVT TEXT LOAI NHAP HAY XUAT
SOLUONG NUMBER INTEGER SO LUONG
DONGIA CURRENCY DON GIA
HTTT TEXT HINH THUC THANH TOAN
MANV TEXT MA NHAN VIEN
VIII THIẾT KẾ CÁC MỐI QUAN HỆ.
Để bảng sở liệu có mối quan hệ ràng buộc liệu lẫn nhau, phối hợp hoạt động việc tổ chức khai thác CSDL, phải thiết kế mối quan hệ Table Microsoft Access tự nhận biết loại mối quan hệ, ta tạo cấu trúc bảng thực thao tác xác Tiến hành tạo quan hệ theo bước sau:
Tạo xong cấu trúc bảng
Chọn menu Tools\ Relationships, xuất khung Show Table.
Chọn tên bảng cần thiết kế mối quan hệ, lần chọn click nút Add, xong chọn
nút Close, bảng chọn thị khung thiết kế
Rê tên Field quan hệ bảng gốc mang sang vị trí tên Field quan hệ bảng quan
hệ, xuất hộp đối thoại Relationship
Đánh dấu hộp Enforce Referential Intergrity: Để làm cho tham chiếu có hiệu lực Đánh dấu hộp Cascade Update Related Fields: Đồng thời cập nhật liệu bảng
(10) Đánh dấu hộp Cascade Update Related Records: Đồng thời xóa liệu bảng có
quan hệ, xóa Record bảng gốc kéo theo Record bảng quan hệ bị xoùa theo
Xem loại quan hệ hộp Edit Relationship, click nút Create để tạo mối quan hệ Lặp lại bước cho mối quan hệ khác
Xong click nút Close, trả lời Yes kết thúc việc tạo mối quan hệ
Chú ý: Khi nhập liệu cho bảng, cần phải nhập liệu cho bảng gốc trước, bảng quan hệ nhập sau.
BÀI TẬP
Thiết kế mối quan hệ cho bảng sau:
IX. CÁC THAO TÁC TRONG QUÁ TRÌNH NHẬP DỮ LIỆU.
Chọn bảng (table) muốn nhập liệu chọn Open trình thiết kế chọn View\Datasheet view
Chọn Font: Chọn menu Format, Font, OK chọn Tool \ Option \ Datasheet \ Font Chọn Record: Click cạnh trái record cần chọn
Xóa Record: Chọn menu Edit, Delete Record, trả lời Yes.
Di chuyển bảng: Click chọn nút di chuyển cuối bảng
Chỉnh độ rộng cột dòng: Rà chuột đến cạnh phải cạnh đáy kéo đến vị trí
cần hiệu chỉnh
Duới hình nhập liệu cho Table.
BÀI TẬP
Thiết lập mối quan hệ xong Nhập liệu cho bảng sau:
Về record
đầu tiên trước record Về record hành
Về record sau record hành
(11) Table KHACHHANG
MÃ KH TÊN KHÁCH HAØNG ĐẠI CHỈ ĐIỆN THOẠI
BT CTY BITIS TRẦN HƯNG ĐẠO (8)989155
LS CTY LAM SƠN 132 LÊ LỢI (8) 123334
PV CTY PHONG VŨ LÊ DUẪN (8) 989898
TB CTY THANH BÌNH 43 LÊ LỢI (8) 845123
TT CTY THANH THANH 177 PHẠM NGŨ LÃO (8)459999
TABLE SANPHAM
MÃ SP TÊN SP DƠN GIÁ ĐƠN VỊ TÍNH
COM46 COMPUTER486-66 500$ CÁI
COM51 COMPUTER PENTUMM-100 1000$ CÁI
DIS12 Ỗ ĐĨA 1.2MH 20$ CÁI
DIS14 Ỗ ĐĨA 1.4MH 23$ CÁI
FPP12 ĐĨA MỀN 1.2MH 6$ HỘP
GLL11 KÍNH LỌC 2$ CÁI
MON99 MONNNITOR COLOR CTX 120$ CAÙI
MOU11 MOUSE PRTEC 12$ CON
MOU12 MOUSE GENIUS 10$ CON
PRN11 MAÙY IN LQ - 1170 65$ CÁI
TABLE HSNV
MANV HỌ LÓT TÊN CHUALAPGD TDVH PHAINU LCB NGÀY SINH
NGÀY VL
SỐ
CON HÌNH
HC01 Nguyễn Thị Thu Chưa ĐH 310$ 01/01/196
(12)TH02 Nguyễn Dũng Có ĐH 310$ 04/07/1981 04/07/2003 0 TH03 Trần Ngọc Sơn Chưa ĐH 345$ 15/10/1978 15/10/2000 0 TH04 Nguyển Long Chưa TH 310$ 02/09/1979 02/09/2000 0 TH05 Trần Thị Bông Có TH 234$ 05/05/1952 05/05/1980 3
(13)TABLE CHAMCONG
THANG MANV NGAYCONG NGAYPHEP NGOAIGIO
01 HC01 25
01 HC02 23
01 HC03 24 0
01 HC04 26 0
01 HC06 0
01 KT01 25
01 KT02 23 0
01 KT06 23
01 KT09 26 0
01 TH01 23
01 TH02 25
01 TH03 24
01 TH04 0
01 TH05 15 0
TABLE HOADON
SOHD MAKH MASP NGAY LOAIVT SOLUONG DONGIA HTTT MANV
01 TT COM46 01/01/20 N 23 50$ TM HC01
02 BT COM46 02/01/20 X 500$ TP HC02
03 BT COM46 01/01/20 X 12 275$ TP HC03
04 TT COM46 27/01/20 X 260$ NO KT01
05 TT COM46 01/02/20 X 600$ NO KT02
06 PV MON99 02/02/20 X 13 90$ TM HC01
07 PV MON99 01/02/20 N 120$ TP HC02
08 TT PRN11 27/02/20 N 65$ TM HC03
09 BT DIS12 01/04/20 X 200$ TM KT01
10 TB DIS12 02/04/20 X 10 23$ TM KT02
11 BT MOU11 01/04/20 X 10 12$ TM HC01
12 PV MOU12 27/04/20 X 12 12$ TP HC02
13 TT PRN11 01/10/20 X 70$ TM HC03
14 TT MOU12 02/11/20 X 12 12$ TM KT01
15 BT PRN11 01/11/20 N 66$ NO KT02
(14)17 TT PRN11 01/12/20 N 20 65$ NO TH02
18 BT MON99 01/12/20 N 120$ TM HC01
19 PV MON99 01/12/20 N 120$ NO HC02
20 PV DIS12 02/12/20 N 10 4$ TM HC03
34 BT COM46 15/12/20 X 270$ NO KT01
45 TT FPP12 16/12/20 N 10 500$ TP KT02
X. SẮP XẾP,TÌM KIẾM, THAY THẾ, LỌC DỮ LIỆU
Sắp xếp bảng: Đặt trỏ trường cần xếp, chọn Menu Records\ Sort, chọn
2 cách xếp sau:
- Sort Ascending: Sắp xếp tăng dần - Sort Descending: Sắp xếp giảm dần
n Field: Đặt trỏ Field cần ẩn, chọn Menu Format\Hide Columns, Field
không hình Hiện lại Field cần ẩn cách chọn menu Format\Unhide Columns.
Tìm kiếm thay thế : Đặt trỏ Field cần tìm thay thế, chọn Menu Edit\ Replace
xuất hộp thoại
Nhaäp giá trị cần tìm hộp Find
What
Nhập giá trị cần thay hộp Replace With
Chọn hướng tìm hộp Search
- Chọn nút: Find Next: Tìm
giá trị kế tiếp; Replace: Thay giá trị tìm thấy; Replace All: Thay tất giá trị tìm thấy; Close: Kết thúc tìm kiếm thay
Lọc liệu theo mẫu: Chọn Menu Records, Filter, Filter By Form, xuất khung chọn
Chọn giá trị cần lọc Combo Field, xong chọn Menu Filter, Apply Filter/ Sort, liệu bảng lọc Muốn bỏ lọc ta chọn Menu Records, Remove Filter/ Short
Lọc liệu theo chọn : Đặt trỏ
(15) Lọc liệu theo Advanced: Chọn menu
Records, Filter, Advanced Filter/ Sort, xuất khung lọc :
Rê tên Field cần lọc kéo vào hàng
Field
Chọn cách xếp hàng Sort Nhập điều kiện lọc vào hàng Criteria,
có thể thêm điều kiện khác vào hàng OR
Chọn menu Filter, Apply Filter/ Sort,
liệu lọc điều kiện
Bỏ lọc cách chọn menu Records,
Remove Filter/ Sort
BÀI TẬP
1. Tìm kiếm liệu.
Các bạn sử dụng bảng HSNV để tìm mẫu tin sau:
- Tìm mẫi tin có họ Trần (Match: Start of Field) - Tìm mẫi tin có họ lót Thị (Match: Any part of Field)
- Tìm mẫi tin có tên Thu (Match: Whole Field)
- Tìm mẫu tin có ngày sinh tháng 01 - Tìm mẫu tin có năm sinh 78
2. Thực chép, đổi tên, xoá Table
-Sao chép cấu trúc liệu Table HOADON thành Table HOADONTAM
-Sao chép cấu trúc liệu Table CHAMCONG thành Table CHAMCONGTAM -Sao chép cấu trúc Table SANPHAM thành Table SANPHAMTAM
-Đổi tên Table HOADONTAM thành HD
- Đổi tên Table CHAMCONGTAM thành CC - Đổi tên Table SANPHAMTAM thành SPT
3. Dùng chức xắp xếp (Record -> Sort Record -> filter -> Avancefilter/sort )
Duøng Table HD, CC
Chú ý: Khi xắp xếp bạn để ý liệu có đổi khơng ?
- Xắp xếp Field SOLUONG, DONGIA tăng dần (Sort Aseending)
- Xắp xếp Field NGAYPHEP giảm dần (Sort Deseending), NGOAIGIO tăng dần
(16)4. Dùng chức lọc trích: (Record -> filter -> Avancefilter/sort )
Dùng Table sau để thực : HSNV, CHAMCONG
- Lọc mẫu tin có phái nữ
- Lọc mẫu tin có phái nam - Lọc mẫu tin có họ Nguyên - Lọc mẫu tin có họ lót Thị - Lọc mẫu tin có tên Thu
- Lọc mẫu tin có tên Phong Vũ - Lọc mẫu tin có chữ đầu tên T
- Lọc mẫu tin có chữ đầu MANV HC TH - Lọc mẫu tin có NGAYCONG lớn 25 - Lọc mầu tin có làm NGOAIGIO
5. Dùng chức nén File (Compact DataBase)
Đứng DataBase hành chọn Menu Tools \ Database Utilities \ Compact DataBase …
Chú ý: Trước nén xem kích thước tổng thể tệp sở liệu Sau nén xong, xem lại thấy thay đổi kích thước
Chương 2
TRUY VẤN – QUERY
BÀI 1:
TẠO TRUY VẤN BẰNG LƯỚI QBE (QUERY BY EXAMPLE)
I. ĐỊNH NGHĨA
Query cơng cụ truy vấn liệu, cho phép ta tổng hợp thực thao tác bảng để đáp ứng yêu cầu Các yêu cầu mà ta thường gặp hàng ngày như: Tổng hợp liệu từ bảng, xóa liệu theo yêu cầu, tất yêu cầu điều truy vấn Nguồn liệu cho Query Table hay Query
II. PHÂN LOẠI : Truy vấn chia thành nhóm
Action Query: Là truy vấn hoạt động, nhằm thực thao tác bảng, gồm
các loại sau: Delete Query (truy vấn xóa liệu); Make Table Query (truy vấn tạo bảng); Update Query (truy vấn cập nhật liệu); Append Query (truy vấn nối liệu)
Dynaset Query: Là truy vấn tạo bảng động, cách tổng hợp, chọn lọc liệu từ
(17)cheùo); Find Duplicates Query (truy vấn tìm Record trùng lặp); Find Unmatched Query (truy vấn tìm Record khác nhau)
Ngồi cịn số loại Query khác ngôn ngữ SQL : Union Query (truy
vấn hội); Data Definition (truy vấn định nghĩa liệu); Pass Though Query (truy vấn chuyển giao liệu)
III TẠO TRUY VẤN (Query).
Ta tạo Query Wizard “bằng tay” Wizard tạo Query sau: Simple Query Wizard, Crosstab Query Wizard, Find Duplicates Query Wizard, Find Unmatched Query Wizard Tuy nhiên cách tạo Wizard cách làm khơng chun, phần dành cho bạn học viên tự nghiên cứu
Các bước tạo Query:
- Chọn trang Query \ New \ Chọn lọai tạo Query\ OK
- Chọn Table, Query chứa liệu liên quan đến yêu cầu Add\ Close
- Chọn Field liệu cần tác động đến - Chọn điều kiện để giới hạn thông tin - Chọn loại truy vấn (Select, Update…)
- Lưu lại đặt tên cho Query - Để xem ta chọn Query, Open - Các thao tác query
Thiết kế lại Query: Chọn tên Query, Click nút Design
Xố Query: Chọn tên Query cần xóa, chọn menu Edit, Delete nhấn phím Delete Đổi tên Query: Chọn tên Query, chọn menu Edit, Rename, nhập vào tên
Chuyển Query sang SQL: Mở Query chế độ Design, chọn menu View, SQL View, Query
sẽ chuyển sang ngôn ngữ SQL
1 SELECT QUERY :
Là truy vấn chọn, cho phép ta chọn lựa liệu tổng hợp từ nhiều bảng có quan hệ để tạo thành bảng gọi bảng động (dynaset) Select query truy vấn thường sử dụng
Từ khung Database, chọn nút New, xuất
hộp hội thoại New Query, chọn Design View, OK
Xuất khung Show Table, ta chọn bảng,
(18)Xuất khung thiết kế hình sau :
Rê tên Field cần tổng hợp từ bảng kéo vào hàng field vùng lưới QBE, hàng
Table tên chứa bảng Field
Chọn cách xếp cho Field hàng Sort (Ascending: tăng; Descending: giảm) Đánh dấu Show để Field này, khơng đánh dấu Field khơng thể Lặp lại bước cho Field khác
Nhập biểu thức điều kiện cho Field (theo cột) hàng Criteria, kết hợp
hoặc với biểu thức khác hàng OR
Xong chọn menu File, Save xuất hộp thoại Save As, đặt tên cho Query, Ok Query
được tạo
CÁC THAO TÁC TRÊN SELECT QUERY.
Mở Select query: Chọn Select Query cần mở, click nút Open, bảng động ra, xem
xong click nút Close để đóng lại
Thiết kế lại Select Query: Chọn tên Query, nhấn nuùt Design
Tạo biểu thức, cột (field) mới : Biểu thức chuỗi chứa hàm, phép toán, giá trị, tên
Field,…được Access tính tốn mở Query
Cú pháp: Tên cột (field) mới: Biểu Thức
Ví dụ: Hãy tính giái trị sản phẩm khách hàng quy định sau:
Gồm field tham gia :
MAKH MASP DONGIA SOLUONG TRIGIA THANHTOAN
Với:
TRIGIA = SOLUONG * DONGIA
(19) Phân tích : Với yêu cầu ta thấy liệu có liên quan đến table HOADON có 02 cột
(field) là: TRIGIA THANHTOAN
Để giải yêu cầu ta làm sau:
Từ CSDL ta chọn tab Query, chọn New, chọn Design View, chọn Ok Sẽ xuất cửa sổ Show Table, chọn tab Table, chọn Table HOADON, chọn Add, chọn Close Xuất cửa sổ thiết kế query Sau ta chọn Field có liên quan đến yêu cầu rê field xuống vùng lưới QBE cột field tương ứng
Với hai cột mới: TRIGIA, THANHTOAN cột thêm ta lập công thức sau: TRIGIA: [SOLUONG]*[DONGIA]
THANHTOAN: IIf([HTTT]="TM","TIEN MAT",IIf([HTTT]="TP","TIN PHIEU","NO")) Sau chọn “Run” biểu tượng công cụ
Lưu lại với tên ViduSelectQuery (Quá trình tạo lập minh hoạ hình ảnh bên)
Một số hàm thường dùng Query
1 Hàm IIF (điều kiện, giá trị 1, giá trị 2)
Nếu điều kiện thoả trả giá trị ngược laiï nhận giá trị
2 Hàm Left (Chuỗi,số ký tự lấy ra) Lấy ký tự bên trái chuỗi định
3 Hàm Right (Chuỗi,số ký tự lấy ra) Lấy ký tự bên phải chuỗi định
4 Date(). Trả ngày tháng năm máy
5 Hàm Day(“chuỗi ngày tháng năm). Trả ngày chuỗi ngày tháng năm định
(20)6 Hàm Month(“chuỗi ngày tháng năm”). Trả tháng chuỗi ngày tháng năm định
7 Hàm Year(“chuỗi ngày tháng năm) Trả năm chuỗi ngày tháng năm định
8 Hàm BETWEEN X AND Y Trả giá trị khoảng từ X Y
9 Hàm DatePart (DataPart, date) Trích thành phần ngày, tháng, năm, q trị kiểu Date/ Time
Trong đó: - DatePart: Chỉ thành phần muốn lấy
- “d”; “m”; “q”; “yyyy”: Thành phần muốn lấy ngày, tháng, quý, năm
Ví dụ:
Nếu giá trị Field NgayVL 3/6/93 (ngày tháng năm 1993) Thì biểu thức: DatePart(“d”, [NgayVL]) cho kết trị số
BÀI TẬP
Thực tạo Query đáp ứng yêu cầu sau:
1 Hãy tạo Query tên Tinh Thuc Lanh, tính thực lãnh cho nhân viên với yêu cầu sau:
Gồm Field tham gia: MANV, HOLOT, TEN, NGAYCONG, NGAYPHEP, NGOAIGIO, HESO, THUCLANH
HESO: Dựa vào ký tự đầu MANV tính sau:
- Nếu HC -> HESO : - Nếu TH -> HESO : - Nếu KT -> HESO :
THUCLANH: LCB*(NGAYCONG – NGAYPHEP + NGOAIGIO*2* HESO)
(Gợi ý: Thao tác giống ViduSelectQuery, nhớ thêm cột HESO, THUCLANH nhập công thức yêu cầu đề vào)
2 Hãy tạo Query “NAM VAO LAM” để tính tiền thưởng nhân viên bắt đầu làm việc vào năm 2000 Gồm Field: MANV, HOLOT, TEN, LCB, NGAY VL, THUONG
Biết : Thưởng 5% LCB
3. Hãy tạo Query tên TINH PHU CAP để tính phục cấp theo số con, năm làm việc cho nhân viên nhân viên phòng hành chánh (HC*)
Gồm Field tham gia: MANV, HOVATEN, SOCON, NGAYVL, PHUCAPCON, PHUCAPNAM, CONGPHUCAP
HOTEN: Sẽ gồm Field HOLOT TEN nối lại (Gợi ý: [HOLOT]& “ “&[TEN] ) PHUCAPCON: Sẽ tính sau:
SOCON x Nếu SOCON >2 PHUCAP 50000 cịn lại 20000 PHUCAPNAM: Sẽ tính sau:
Nếu ngày vào làm <1980 phụ cấp 100000 ngược lại 50000
CONGPHUCAP : PHUCAPNAM+PHUCAPCON
(21)Gồm field: Makh, Masp, Dongia, Soluong,Trigia TRIGIA = SOLUONG*DONGIA
Hướng dẫn: sử dụng hàm BETWEEN X AND Y
5. Tương tự Câu các bạn tạo Query để xem khách hàng BT có đơn giá từ 200 đến 500 khách hàng PV Và lưu lại với tên: XemKhachhangBT
6. Hãy tạo Query tên Su dung tham so để tìm người có phái nữ (0) , chưa có gia đình (-1) cho biết tuổi người Với yêu cầu sau: Khi chạy query cho nhập vào phái có gia đình chưa
Gồm field : HOVATEN, CHUALAPGIADINH, PHAINU, TUOI
HOVATEN: Được nối hai cột HOLOT cột TEN TUOI: Lấy ngày – ngày sinh (chỉ lấy năm)
Ghi chú: Tham số đặt dấu ngoặc vng [ ], đặt dịng Criteria Khi mở Query xuất khung Enter Parameter Value yêu cầu nhập giá trị lần lược cho tham số.
7 Hãy tạo query tên TIM SO LUONG MUA LON NHAT VA NHO NHAT để tìm số lượng mua lớn nhỏ khách hàng
Gồm fields: MAKH, TENKH, SOLUONGNN,SOLUONGLN Vào menu View \ Total (hoặc chọn công cụ)
Ghi chú: Một số hàm thường dùng Total
(22) Hàm Min: Tìm số lượng mua nhỏ Hàm Avg: Tính trung bình
Hàm Count: Đếm xem có phần tử Hàm Expression: Khai báo chọn biến ngoại
Hàm Where: khai báo Field làm điều kiện dòng Criteria
8 Hãy tạo Query tên TINH TONG SO NHAN VIEN để tính tổng số nhân viên cho biết có nhân viên nam, nữ phịng ban
Gồm fields: PHONGBAN, TONGSONHANVIEN,SONAM, SONU
1 PHONGBAN:
- Nếu “HC” -> Hành chánh - Nếu “TH” -> Tin Học - Nếu “KT” -> Kỹ Thuật
2 SONAM: Đếm tổng số nhân viên Nam (-1) ( HD: SONAM: IIF([PHAINU]= -1,1,0)
3 SONU: Đếm tổng số nhân viên Nữ (0) ( HD: SONU: IIF([PHAINU]= 0,1,0)
4 TONGSONV: SONAM + SONU
9 Hãy tạo query tên GIA TRI SAN PHAM THEO KHACH HANG VA THANG để thực tính giá trị sản phẩm theo khách hàng tháng nhập vào từ bàn phím lúc chạy query (Gợi ý: Dùng tham số Field: MAKH, THANG
Gồm field: MAKH, MASP, TRIGIA, THANG
Với TRIGIA: SOLUONG*DONGIA
THANG: MONTH([NGAY])
2 CROSSTAB QUERY.
Là truy vấn chéo cho phép ta tổng hợp liệu từ nhiều bảng để tạo thành bảng gọi bảng động có cấu trúc tham chiếu chéo (Crosstab), cách tổng hợp liệu khác so với Select Query Sử dụng dạng trruy vấn chéo muốn tính tóan, thống kê liệu thành dạng cột dù liệu lưu bảng hay Select query dạng dịng
Cấu trúc bảng tham chiếu chéo :
Có một đến ba Field dùng làm Row Heading (dữ liệu Field thể theo dịng) Có duy Field cho Column Heading (dữ liệu Field trình bày cột)
Có duy Field làm Value (dữ liệu thể vùng giao Row Heading
Column Heading)
Ngoài bảng tham chiếu chéo cịn có
(23) Từ khung Database, chọn nút New, xuất hộp thoại New Query, chọn Design View,
OK
Xuất khung Show Table, ta chọn tên bảng cần tổng hợp liệu, lần chọn
click nuùt Add, Close
Chọn menu Query, chọn mục Crosstab Query (để chuyển sang chế độ Crosstab Query) Chọn rê tên Field cần tổng hợp mang vào hàng Field
Chọn hàm tính tốn cho Field hàng Total
Qui định Field làm Row Heading (nhiều), Column Heading (một) Value (một)
hàng Crosstab
Chọn cách xếp hàng Sort
Nhập biểu thức điều kiện hàng Criteria, Or Xong chọn menu File, Close, xuất hộp
thoại Save As, đặt tên cho Query, OK Query tạo
Chú ý : - Có thể sử dụng tham số Select Query
- Có thể tạo Field Select Query
Mở Crosstab Query: Chọn Crosstab Query cần mở, click nút Open, bảng động ra,
xem xong click nút Close để đóng lại
Ví dụ: Lấy lại kết select query tính tổng số nhân viên câu 8 phần Select query sau:
Với kết ta thiết kế Cosstab query sau:
(24)PHONGBAN:
IIf(LEFT([MANV];2)="HC";"HANH CHANH";IIf(LEFT([MANV];2)="TH";"TIN HOC";"KY THUAT"))
NAMNU: IIf([PHAINU]= 0;"SONU";"SONAM") SONV: MANV
TONGSONV:MANV
Sau vào Menu Query chọn Crosstab Query Xuất thêm dòng Crosstab cửa sổ thiết kế Query chọn Row Heading, Column Heading Value theo yêu cầu
Lưu lại với tên ViducrosstabQuery
Chú ý: Trong Crosstab Query phải có đủ thành phần: Row heading, Column heading và Value
BÀI TẬP
1 Hãy tạo crosstab query tên SO NHAN VIEN CO VA CHUA CO GD để tính tổng số nhân viên phịng ban có gia đình chưa có gia đình bao nhieu?
Gồm field : PHONG BAN, GIADINH, SONV, TONGSONV
Với: PHONGBAN dựa vào ký tự đầu mã nhân viên:
Nếu HC HANH CHANH
Nếu TH TIN HOC
Neu laø KT KY THUAT
GIADINH: Nếu CHUALAPGĐ= -1 “CHUA CO GD”, ngược lại “CO GD” PHONGBAN,TONGSONV làm Row Heading
SONV: Laøm Value
GIADINH: Laøm Column Heading
2 Hãy tạo Query tên SOLANKHACHHANG để tính tổng số lần khách hàng mua, bán sản phẩm cho biết loại xuất loại nhập khách hàng lần
Gồm fields: MAKH, TENKH, TONGSOLAN , LVT, SOLAN Với Makh,Tenkh,Tongsolan làm Row heading
LVT: Laøm Column Heading SOLAN: laøm Value
Dùng hàm Count để đếm số lần tổng số lần khách hàng mua bán
3 Hãy tạo query tên “MAT HANG XUAT THEO THANG” để tính số lượng mặt hàng xuất cho tháng bao nhiêu?
Gồm field : LOAIVT, MAKH, THANG, SOLUONG.(HD: SOLUONG: Haøm Sum, laøm: value, THANG: Column)
4 Tạo Query tên “QUY HIEN HANH” hiển thị danh sách khach hàng mua sản phẩm tương ứng với thành tiền quý hành
(25)3. MAKE TABLE QUERY
Là truy vấn cho phép ta tổng hợp liệu từ nhiều bảng để tạo thành bảng mới, bảng thuộc File hành File.MDB khác
Từ khung Database, chọn nút New, xuất hộp thoại New Query, chọn Design View,
OK
Xuất khung Show Table, ta chọn tên bảng nguồn đưa vào truy vấn, lần chọn
click nút Add, chọn nguồn từ truy vấn khác thẻ Queries thẻ Both, xong click nút Close
Chọn menu Query, chọn mục Make – Table Query (để chuyển sang chế độ Make Table
Query), xuất hộp thoại Make Table
Nhập tên bảng cần tạo hộp Table Name, chọn muïc:
- Current Database: Tạo bảng mớt Filename.MDB hành
- Another Database: Tạo bảng FileName.MDB khác phải nhập đường dẫn\Filename.MDB vào hộp File Name, chọn OK
Rê tên Field từ bảng, kéo vào hàng Field, hàng Table tên bảng chứa Field Chọn cách xếp cho Field hàng Sort (Ascending: tăng dần;, Descending: giảm
daàn)
Đánh dấu Show để tạo (cho xem) Field này, khơng đánh dấu Field khơng
tạo
Lặp lại bước cho Field khác
Nhập biểu thức điều kiện cho Field (theo cột) hàng Criteria, kết hợp
hoặc với biểu thức khác hàng Or
Xong chọn menu File, Close xuất hộp thoại Save As, đặt tên cho Query, OK Query
mới tạo
Có thể sử dụng tham số Select Query
Ví dụ: Hãy tạo Query tên TaoKhachhang1 để tạo table Khachhang1 từ table
Khachhang với điều kiện tạo khách hàng BT PV Gồm fields: Makh, Tenkh, Điachi, Phone
Choïn Tab Table, choïn New, choïn Design view, choïn Ok Xuất khung Show Table,
(26)Chọn Menu Query, chọn Make Table Query, đăït tên cho Table Table Name: Khachhang1, chọn Ok Sau rê fields liên quan đến yêu cầu xuống vùng Field lưới QBE
Chọn menu Query chọn “Run” để chạy query
BÀI TẬP
1 Hãy tạo Query tên TaoCCNVKT để tạo bảng tên CCNVKT từ bảng Chamcong lấy Manv kỹ thuật “KT*”
2 Hãy tạo Query tên Taohoadon1 để tạo bảng HOADON1 từ tên bảng Hoadon lấy Makh “BT” Masp “COM46”
3 Hãy tạo Query tên Taohoadon2 để tạo bảng tên HOADON2 từ bảng Hoadon lấy Loaivt “X” có số lượng >10
4 Hãy tạo Query tên TaoHsnv1 để tạo bảng tên HSNV1 từ bảng HSNV lấy nhân viên có năm sinh sau 1970
5 Hãy tạo Query tên TaoHsnv2 để tạo bảng tên HSNV2 từ bảng HSNV lấy nhân viên có ký tự đầu Holot “T*” MANV “TH*”
4 DELETE QUERY
Là truy vấn cho phép ta xoá liệu cho nhiều bảng
Từ khung Database, chọn nút New, xuất hộp thoại New Query, chọn Design View, OK
Xuất khung Show Table, ta chọn tên bảng nguồn đưa vào truy vấn, lần chọn
click nút Add, chọn nguồn từ truy vấn khác thẻ Queries thẻ Both, xong click nút Close
Chọn menu Query, chọn mục Delete Query (để chuyển sang chế độ Delete Query)
Rê tên Field làm điều kiện xoá từ bảng, kéo vào hàng Field, hàng Table
tên bảng chứa Field
(27) Nhập biểu thức điều kiện cho Field (theo cột) hàng Criteria, kết hợp
hoặc với biểu thức khác hàng Or
Xong chọn menu File, Close xuất hộp thoại Save As, đặt tên cho Query, OK Query
mới tạo
Có thể sử dụng tham số Select Query
Chú ý: Delete Query truy vấn nguy hiểm, chạy thực việc xóa liệu mà khơng thể phục hồi, xóa liệu “đồng thời bảng quan hệ”.
Chạy Delete Query: Chọn tên Query, click nút Open, xuất khung thông báo (hỏi bạn
có muốn chạy Delete Query khơng ?), chọn Yes, xuất khung thơng báo (cho biết có Record xác nhận xóa), chọn Yes để thực xóa
Ví dụ: Hãy tạo query tên XoaHoadon1 dùng để xoá mẫu tin (Record) bảng
Hoadon1 với điều kiện xoá MASP “BT”
Chọn Tab Table, chọn New, chọn Design view, chọn Ok Xuất khung Show Table, Chọn Table Hoadon1, chọn Add, chọn Close Xuất cửa sổ thiết kế query Chọn Menu Query, chọn Delete Query Sau rê field Masp xuống cột Fields vùng lưới QBE, nhập điều kiện xố dịng Critera “BT” Sau lưu lại, chọn “Run” để chạy query
BÀI TẬP
1 Hãy tạo Query tên XoaCCNVKT để xoá Record table CCNVKT xoá Manv “KT*”
2 Hãy tạo Query tên XoaHsnv1 để xoá Record table HSNV1
3 Hãy tạo Query tên XoaHsnv2 để xoá Record table HSNV2 xố nhân viên có ký tự HOLOT “T*” MANV “TH*”
5 APPEND QUERY
Là truy vấn dùng tổng hợp liệu từ nhiều bảng (nguồn), để nối thêm vào bảng có truớc (đích), bảng thuộc File hành File MDB khác Ví du : để bảo tồn liệu làm việc hàng ngày, ta thường thực nối liệu phát sinh ngày vào
(28)bảng “phòng hờ”, cần lấy lại… nối liệu cũ vào bảng “lưu trữ” trước xoá
Số lượng Field nguồn đích phải nhau, kiểu liệu chúng phải tương đồng, nhiên tên Field khác
Từ khung Database, chọn nút New, xuất hộp thoại New Query, chọn Design View,
OK
Xuất khung Show Table, ta chọn tên bảng cần tổng hợp liệu, lần chọn
click nuùt Add, Close
Chọn menu Query, chọn mục Append Query (để chuyển sang chế độ Append Query) xuất
hiện hộp thoại Append
Chọn nhập tên bảng cần nối thêm liệu
tại hộp Table Name, chọn từ sau:
- Current Database: bảng nối thêm (đích)
liệu thuộc File MDB hành
- Another Databsae: bảng nối thêm thuộc
File MDB khác nhập đường dẫn FileName.MDB hộp File Name, click OK
Chọn rê tên Field từ bảng mang vào hàng Field (hàng Table tên bảng nguồn,
hàng Append To tên bảng đích tương ứng, ta kiểm tra chọn lại)
Chọn cách xếp hàng Sort
Nhập biểu thức làm điều kiện nối thêm liệu cho Field hàng Criteria,
kết hợp với điều kiện khác hàng Or
Xong chọn menu File, Close xuất hộp thoại Save As, đặt tên cho Query, OK Query
mới tạo
Chú ý: - Có thể sử dụng tham số Select Query - Có thể tạo Field Select Query
Chạy Append Query: Chọn tên Query, click nút Open, xuất khung thông báo (hỏi bạn
có muốn chạy Append Query khơng ?), chọn Yes, xuất khung thơng báo (cho biết có record xác nhận nối), chọn Yes để thực
BÀI TẬP
1 Tạo Query tên NK_Hoadon1 thực nối kết Record từ bảng HOADON đến bảng HOADON1
2 Tạo Query tên NK_HSNV2 thực nối kết Record từ bảng HSNV đến bảng HSNV2
3 Tạo Query tên NK_HSNV1 thực nối kết Record từ bảng HSNV đến bảng
HSNV1 lấy người có TĐVH “TH”
6 CAÄP NHAÄT QUERY (UPDATE QUERY)
(29) Từ khung Database, chọn nút New, xuất hộp thoại New Query, chọn Design View,
OK
Xuất khung Show Table, ta chọn tên bảng cần cập nhật liệu, click nút Add,
Close
Chọn menu Query, chọn Update Query để chuyển sang chế độ Update Query
Rê tên tất Field từ bảng mang vào hàng Field, Double click tên bảng để
kéo lần vào hàng Field (hàng Table chứa tên bảng)
Nhập biểu thức cập nhật cho Field hàng Update to
Nhập biểu thức làm điều kiện cập nhật liệu cho Feld hàng Criteria, Or
Xong chọn menu File, Close, xuất hộp thoại Save As, đặt tên cho query, Close, OK
Query tạo
Chú ý :
- Có thể sử dụng tham số Select Query
- Update Query truy vấn nguy hiểm, chạy cập nhật liệu “đồng
thời bảng quan hệ”
Chạy Update Query: Chọn tên Query, click nút Open, xuất khung thông báo (hỏi bạn
có muốn chạy Update Query không ?), chọn Yes, xuất khung thơng báo (cho biết có Record xác nhận cập nhật), chọn Yes để thực
BÀI TẬP
1 Tạo Query tên CN_Hoadon1 thực cập nhật Record từ bảng HOADON1 có số lượng cộng thêm
(30)ngày cơng lớn hay 25 số ngày dư tăng lên gấp đôi, ngược lại không thay đổi
(31)BAØI :
TẠO TRUY VẤN BẰNG NGÔN NGỮ SQL (STRUCTURED QUERY LANGUAGE
NGÔN NGỮ CỦA CÁC HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU)
I. GIỚI THIỆU
Để đảm bảo cho CSDL thực “vật có ích” cần phải bổ sung liệu mới, thay đổi số giá trị thời, phải xoá bỏ phần trở nên dư thừa, khơng cần thiết Chúng ta cần biết thông tin từ CSDL ấy, ví dụ : Cần biết khách hàng nợ lâu Những yêu cầu tình hình quản lý ln địi hỏi hệ thống thông tin cần phải tổ chức khéo léo loại liệu, nhằm cung cấp thông tin ngày nhiều, chuẩn xác, nhanh chóng
Các hệ quản trị CSDL với cách tiếp cận khác thơng qua giao diện đặc trưng, trợ giúp người sử dụng thực nhiều liệu thơng tin quản lý Nhưng có ngôn ngữ trở thành giao điểm hệ quản trị CSDL phương tiện dùng để giao tiếp lẫn nhiều MIS, SQL
Vì học tập bạn có giới hạn Ở xin giới thiệu đến bạn học viên số lệnh ngôn ngữ SQL từ đóù bạn tìm hiểu thêm thực vấn đề chuyên sâu Các bạn tham khảo thêm số tài liệu SQL khác để bổ sung kiến thức
II MỘT SỐ QUY ƯỚC VỀ CÚ PHÁP CỦA SQL
%, _
Dấu phần trăm, dấu gạch
dưới Đại diện cho nhiều ký tự, đại diện cho ký tựtương ứng với dấu *,? Của Dos
; Dấu chấm phẩy Dứt lệnh SQL chuẩn
, Dấu phẩy Dấu phân cách chi tiết chuỗi
Vd: SELECT col1, col2, …
Các từ khoá, tên table, tên field, tên row … không phân biệt chữ hoa, chữ thường Trong chuỗi dạng ký tự phải định xác giá trị “Manager” khác với “manager”
III MỘT SỐ LỆNH CHUẨN CỦA SQL:
Xét cơng dụng, lệnh SQL chia làm loại:
(32) Loại lệnh định nghĩa liệu ( Data Define language – DLL):
CREATE: Định nghĩa khởi tạo Table/View/Index ALTER: Hiệu chỉnh Table tồn trước
DROP: Huỷ bỏ xét thấy không cần sử dụng
Những lệnh thuộc loại DLL dùng để định nghĩa Table (file lưu trữ liệu), View (File ảo, file logic), Index (chỉ mục) Loại lệnh DDL giúp cho người sử dụng can thiệp vào cách thức lưu trữ, tổ chức mặt vật lý sở liệu, làm biến đổi cấu trúc hệ thơng liệu Do loại lệnh thường dành cho chuyên viên hệ thống thông tin
Loại lệnh cập nhật liệu (Data manipulation Language – DML):
INSERT : Bổ sung thêm nhiều Row vào CSDL UPDATE: Thay đổi trường giá trị CSDL
DELETE: Huỷ bỏ row
Loại lệnh kiểm soát liệu (Data Control Language – DCL):
GRANT: Giao quyền khai thác liệu cho người sử dụng REVOKE: Thu hồi quyền khai thác liệu
Loại lệnh nhằm đảm bảo an toàn CSDL dùng chung
1. MỘT SỐ LỆNH TRUY VẤN ĐỊNH NGHĨA DỮ LIỆU
SQL ngôn ngữ định nghĩa liệu, cho phép tạo hệ thống file liệu, hiệu chỉnh phần cấu trúc liệu có lệnh khởi tạo, thay đổi hủy bỏ table …
Với SQL thực dễ dàng cơng việc như:
Định nghĩa table
Thay đổi cấu trúc Table có máy Xoá bỏ field Table/View/Index tồn
Định nghĩa Table logic để tăng cường khả an toàn liệu Định nghĩa Index để hệ thống hoạt động nhanh
Thay đổi thuộc tính khố (Primary hay Foreign key)
Hầu hết lệnh định nghĩa liệu SQL thông qua lệnh CREATE, ALTER DROP Sau ta lần lược làm quen với lệnh trên:
Để tạo câu lệnh SQL Microsoft Access thực theo bước
sau:
Bước 1: Trong cửa sổ CSDL, chọn phiếu QueryNewDesign View nhấn chọn Ok Bước 2: Không cần chọn Table hay Query làm nguồn liệu (vì ghi tên
câu lệnh), nhấn chọn nút Close
Bước 3: Nhấn chọn nút SQL, xuất cửa sổ soạn thảo câu lệnh SQL
(33) Khởi tạo Table :
CREATE TABLE <Tên Table> (<tên field-1><kiểu liệu> [NOT NULL], <tên field-2><kiểu liệu> [NOT NULL], <tên field-3><kiểu liệu> [NOT NULL],
<tên field-n><kiểu liệu> [NOT NULL], CONSTRAINT <tên constraint> PRIMARY KEY (tên field),
CONSTRAINT <teân constraint> FOREIGN KEY (teân field)REFERENCES(Tên Table 2));
Giải Thích:
Từ khố CREATE TABLE : Dùng để tạo lập Table
<Tên table> : Đặc table tên
<Tên field> <kiểu liệu> : Trong table có Field (Column, cột)
kiểu liệu
[NOT NULL] : Có mang giá trị NULL khoâng
PRIMARY KEY : Tên Column (field) đặc làm khố
FOREIGN KEY (tên field) REFERENCES (Tên Table 2) : Tên field
làm khố ngoại khố table
Ví du ï: Dùng SQL để tạo Table Nhân có Fields sau: Manv, Hoten, Diachi, Ngaysinh, Phai, Mucluong, Ngaycong, Ghichu, Hinh Có Manv khố
CREATE TABLE NHANSU (Manv Text(4), Hoten Text(20), Diachi Text(30), Ngaysinh
Datetime, Phai YesNo, Mucluong Integer, Ngaycong Byte, Ghichu Memo, HINH OleObject,
CONSTRAINT PK_MANV PRIMARY KEY (Manv));
Sau bạn nhập khoảng 10 Record (mẫu tin) vào
Hiệu chỉnh Table: Việc hiệu chỉnh cấu trúc liệu công việc quan trọng, nên làm thật cần thiết
Thêm Column (Filed)
ALTER TABLE <tên table> ADD <tên field><kiểu liệu>;
Ví dụ: Thêm Field Luongthang Table Nhansu ALTER TABLE Nhansu ADD Luongthang Double;
Hủy bỏ field
ALTER TABLE <teân Table> DROP <teân field>;
(34) Khởi tạo Index (chỉ mục)
ALTER TABLE <Tên Table> ADD CONSTRAINT <Tên Index> UNIQUE (<Tên Field>)
CREATE [UNIQUE] INDEX <Teân INDEX> ON <tên table> (tên field> [ASC/DESC]);
Ví dụ: Tạo mục cho Field Mucluong, Hoten Table Nhansu ALTER TABLE Nhansu ADD CONSTRAINT HT UNIQUE (Hoten); CREATE UNIQUE INDEX ML ON Nhansu (Mucluong);
Xoá Index (chỉ mục)
ALTER TABLE <tên table> DROP CONSTRAINT <tên Index>;
DROP INDEX <Teân Index> ON <Teân Table>
Ví dụ: Xố mục cho Field Mucluong, Hoten Table Nhansu ALTER TABLE Nhansu DROP CONSTRAINT HT;
Hủy bỏ Table
DROP TABLE <tên table>
Ví dụ: Hủy bỏ Table Nhansu DROP TABLE NHANSU;
BÀI TẬP:
Dùng ngơn ngữ SQL tạo bảng KHO với yêu cầu sau:
KHO (MAKHO Text(2), TENKHO Text(30), DCKHO Text(50)) (Makho khóa chính) Sau nhập liệu cho bảng kho sau:
MAKHO TENKHO DCKHO
CH CHÁNH HƯNG 116 BÀ HUYỆN THANH QUAN
LB LONG BÌNH 333 LÝ THÁI TỔ
PX PHÚ XUÂN 123 LÝ CHÍNH THẮNG
TD THỦ ĐỨC 20/10 ĐỒNG NAI
Chèn thêm cột field MAKHO vào bảng (table) HOADON
Tạo thêm mối quan hệ cho bảng KHO bảng HOADON Sau nhập liệu cho cột (filed) MAKHO bảng HOADON tùy ý tương ứng với mã kho có bảng KHO
Chú ý: Mối quan hệ giữ bảng kho bảng hoadon quan hệ 1-nhiều
2. MỘT SỐ CÂU TRUY VẤN HAØNH ĐỘNG DÙNG SQL
(35)Cú pháp:
SELECT field1[,field2[,…]]INTO table [IN MDB khác] FROM table nguồn
[WHERE điều kiện]
[ ORDER BY… field [DESC]];
Giải thích:
field1,field2 :Tên cột( table nguồn) muốn chép
liệu sang table
Table : Tên bảng muốn tạo
Table nguồn : Tên bảng chứa liệu nguồn mà truy vấn lấy
liệu chép qua table
Điều kiện : Là điều kiện chép
Ví dụ: Tạo table LUUTRU lưu chứng từ xuất table HOADON SELECT * INTO LUUTRU
FROM HOADON WHERE LOAIVT="X";
Truy vấn cập nhật ( UPDATE QUERY):
Công dụng: Dùng để sửa đổi liệu thuộc cột nhiều dòng khác table , sửa liệu thuộc dòng ( record) thoả mãn điều kiện cho
Cú pháp: UPDATE table
SET field1= giá trị 1, field2= giá trị 2, … [WHERE điều kiện]
Giải thích:
Table : Là tên table muốn sửa đổi liệu
field1 , field2 : Tên cột table muốn thay đổi giá trị giá trị , giá trị : Các giá trị field1 ,field2
Ví dụ: Tăng tiền lên thêm 50 đồng cho chứng từ xuất Table LUUTRU UPDATE LUUTRU
SET DONGIA = DONGIA+50 WHERE LOAIVT="X";
Truy vấn thêm (NỐI KẾT - APPEND QUERY)
Cơng dụng: Dùng để thêm liệu từ table khác vào cuối table , hay thêm dịng liệu vào cuối table
Cú pháp thêm dòng:
(36)VALUES( giá trị 1[,giá trị 2[,…]])
Cú pháp thêm nhiều dòng:
INSERT INTO table đích [IN MDB khác] SELECT field1,[, field2[,…]]
FROM table nguồn; [WHERE điều kiện];
Ví dụ: Tạo nối kết chứng từ nhập từ Table NHAPXUAT vào Table LUUTRU INSERT INTO LUUTRU
SELECT *
FROM HOADON WHERE LOAIVT="N";
Truy vấn xoá ( DELETE QUERY)
Cơng dụng: dùng để xố liệu table
Cú pháp:
DELETE FROM table [WHERE điều kiện];
Ví dụ: Xố hết chứng từ nhập Table LUUTRU DELETE *
FROM LUUTRU
WHERE LOAIVT ="N";
Truy vấn chọn (Select query)
Cú pháp:
SELECT [Tính chất] {* |Table.*| [table.]field [, [table.]field [, […]]} [biểu thức As tên cột mới]
FROM table [ kiểu kết nối] [, table [on điều kiện]] [WHERE điều kiện]
[GROUP BY tên cột] [HAVING điều kiện]
[ORDER BY tên cột [DESC]]
Giải thích thành phần câu lệnh SQL:
Tính chất : Dùng từ khóa sau: ALL, DISTINCT, DISTINCT ROW,
(37) ALL : Chọn tất dòng bảng
DISTINCT : Chọn có lọai bỏ cột trùng lắp thơng tin DISTINCT ROW : Chọn có lọai bỏ dịng trùng lắp thông tin TOP <n> : Chọn n dòng bảng
Table.field : Tên cột thuộc bảng muốn lấy liệu
Biễu thức : Ghi biểu thức sinh trị cho cột
Tên cột mới : Ghi tên cột mới, tên cột có chứa ký tự trắng phải bao
tên cột cặp ngoặc vuông [ ]
Table 1, table 2:Tên bảng, table tên bảng trái, table tên bảng phải Kiểukết nối : Dùng kiểu sau: (Thường dùng INNER JOIN) INNERJOIN : Là kiểu kết nối lấy dòng mà liệu thuộc cột quan hệ
hai bảng
LEFT JOIN : Là kiểu kết nối ưu tiên cho bảng bên trái (Table 1), lấy tất
các dịng bảng bên trái với bảng bên phải (table 2) lấy dịng có liệu cột quan hệ liệu cột quan hệ bảng bên trái
RIGHT JOIN : Laø kiểu kết nối ưu tiên cho cho bảng bên phải (Table 2), lấy tất
cả dịng bảng bên phải với bảng bên trái (table 1) lấy dịng có liệu cột quan hệ liệu cột quan hệ bảng bên phải
On điều kiện : Ghi điều kiện kết nối
WHERE điều kiện : Điều kiện lọc liệu
GROUP By tên cột : Nhóm liệu theo cột
HAVING điều kiện : Điều kiện lọc lại liệu có nhóm liệu ORDER BY tên cột [DESC] : Sắp xếp theo cột nào, thứ tự tăng dần hay giảm dần,
ghi DESC: Sắp giảm dần
Tạo truy vấn chéo (Crosstab query Cú pháp:
TRANSFORM <Value > // Hàm tính tốn thống kê mà ta muốn tính tốn thống kê SELECT <Tên fields> // Tên cột làm tiêu đề dòng (Tối đa cột)
FROM <Tên table> // Tên Table liên quan WHERE <Điều kiện> // điều kiện thực GROUP BY <tên Field> // Tên cột nhóm
PIVOT <tên field> // tên cột mà ta muốn làm tiêu đề cột
Ví dụ: Thực câu truy vấn sau:
(38)FROM HOADON
WHERE LOAIVT = "X" AND MAKHO = "TD";
Tạo select query gồm chứng từ nhập ngày gần
SELECT TOP 4, * FROM HOADON WHERE LOAIVT = "N" ORDER BY NGAY DESC;
Tạo Totalselectquery thống kê tổng số lượng vật tư Nhập theo Kho:
SELECT MAKHO, Sum(SOLUONG) AS [TONG SO LUONG] FROM HOADON
WHERE LOAIVT="N" GROUP BY MAKHO
ORDER BY MAKHO DESC;
Tạo total select query thống kê kho có số lượng vật tư nhập 25
SELECT MAKHO, Sum(SOLUONG) AS [TONG SO LUONG] FROM HOADON
WHERE LOAIVT="N" GROUP BY MAKHO
HAVING SUM(SOLUONG)>25;
Tạo Crosstab query tính tổng số lượng vật tư nhập theo kho
TRANSFORM Sum(HOADON.SOLUONG) AS TSL
SELECT HOADON.makho, Sum(HOADON.SOLUONG) AS [TONG SO LUONG] FROM HOADON
WHERE (((HOADON.LOAIVT)="N")) GROUP BY HOADON.makho
PIVOT HOADON.MASP;
Tạo query lấy liệu từ HOADON KHO
SELECT HOADON.NGAY, HOADON.LOAIVT, HOADON.SOHD, KHO.TENKHO FROM KHO INNER JOIN HOADON ON KHO.MAKHO = HOADON.MAKHO;
Tạo select query từ table HOADON, KHO SANPHAM
SELECT HOADON.NGAY, HOADON.LOAIVT, KHO.TENKHO, SANPHAM.TENSP, HOADON.SOLUONG, SANPHAM.DONGIA
(39)