Professional Documents
Culture Documents
Hàm Mô tả Ví dụ Trả về
Format(exp) Định dạng biểu thức theo các dạng Format(Date(), 23-Jul-
thức thích hợp. “dd-mm-yyyy” ) 2005
LCase(exp) Trả về phiên bản chữ thường của LCase(“Lan”) lan
một chuỗi.
UCase(exp) Trả về phiên bản chữ hoa của một UCase(“Lan”) LAN
chuỗi.
LTrim(exp) Xóa tất cả các dấu cách ở đầu LTrim (“ Lan”) Lan
chuỗi.
RTrim(exp) Xóa tất cả các dấu cách ở cuối RTrim(“Lan ”) Lan
chuỗi.
Trim(exp) Xóa tất cả các dấu cách ở đầu và Trim (“ Lan ”) Lan
cuối chuỗi.
Str(exp) Chuyển một số thành một chuỗi. Str(123.45) 123.45
Val(exp) Chuyển một chuỗi thành một số Val(“123.45”) 123.45
Hàm Mô tả Ví dụ Trả về
Abs(exp) Trả về giá trị tuyệt đối của một Abs(-1234.5) 1234.5
số
Atn(exp) Hàm arctang, tính theo radian. Atn(1) 0.7853982
Cos(exp) Hàm cosin, tính theo radian. Cos(pi/4) 0.707106719949
Exp(exp Hàm ex Exp(2.302585) 9.9999990700
)
Int(exp) Trả về phần nguyên của giá trị Int(13.5) 13.5
số Int(-13.5) -13.5
Log(exp Hàm logarit cơ số e. Log(10) 2.302585
)
Sgn(exp) Hàm dấu Sgn(-13.5) -1
Sgn(13.5) 0
Sin(exp) Hàm sin, tính theo radian. Sin(pi/4) 0.707106842423
Sqr(exp) Hàm căn bậc hai. Sqr(144) 12
Tan(exp) Hàm tang, tính theo radian. Tan(pi/4) 1.0000001723
Toán Mô tả Ví dụ
tử
Is Được dùng với Null để xác định một giá trị Is Null
nào đó có phải là Null hay Not Null Is Not Null
Like Xác định một giá trị chuỗi có bắt đầu bằng một Like “Jon*”
hay nhiều ký tự. (Để Like làm việc đúng đắn, Like “FILE????”
ta phải bổ sung một dấu đại diện *, hoặc một
hay nhiều dấu ?)
In Xác định một giá trị chuỗi có thuộc một thành In (“CA”, “OR”,
phần của danh sách các giá trị hay không. “WA”)
Between Xác định một số có nằm trong một miền giá trị Between 1 And 5
đã chỉ định hay không.
3. Thiết kế truy vấn QBE
3.1 Các bước để tạo truy vấn QBE:
Bước 1: Từ cửa sổ Database ta làm theo một trong hai cách sau:
Cách 1: Từ cửa sổ Database, trong mục Object chọn Query -> New -> Design View
-> OK
Cách 2: Từ cửa sổ Database, trong mục Object chọn Query -> Create Query in
Design View -> Sau bước một ta có cửa sổ thao tác như sau:
Bước 2: Từ cửa sổ Show Table chọn các bảng dữ liệu hoặc các truy vấn liên quan
đến câu hỏi, bằng cách Chọn tên bảng (hoặc tên truy vấn) -> Add. Kết thúc
quá trình chọn bảng, truy vấn chọn Close.
Ví dụ, câu hỏi liên quan đến 2 bảng PHONG, NHANVIEN chúng ta có cửa
sổ:
Field: Các trường liên quan đến truy vấn. Có thể xuất hiện ở kết quả hoặc
điều kiện tìm kiếm.
Trường kết xuất có dạng <Tên trường kết xuất>:<Biểu thức>
Table: Bảng chứa trường được lựa chọn.
Sort: Sắp thứ tự kết quả theo thứ tự tăng hoặc giảm.
Show: Trường xuất hiện ở kết quả.
Criteria: Điều kiện chọn có dạng: <Phép toán quan hệ><Biểu thức>
Hoặc <toán tử thao tác dữ liệu><Biểu thức
Hai biểu thức trên có thể viết trên một dòng sẽ tổ hợp thành điều kiện and.
Or: Tìm kiếm theo điều kiện Or. Có thể thêm dòng.
Buớc 3: Lựa chọn các trường cần hiển thị trong kết quả của truy vấn hoặc liên quan
đến các điều kiện tìm kiếm. Sau đó, soạn thảo các điều kiện tìm kiếm
trong phần Criteria.
Bước 4: Thực hiện truy vấn bằng một trong hai cách sau
Cách 1: Chọn biểu tượng ! trên thanh công cụ.
Cách 2: Trên thanh menu chọn Query\Run
Bước 5: Ghi lại kết quả truy vấn (nếu muốn) bằng cách
Cách 1: Chọn biểu tượng đĩa mềm trên thanh công cụ.
Cách 2: Trên thanh menu chọn File\Save
3.2 Một số truy vấn QBE
a. Truy vấn lựa chọn
Ví dụ 1: Cho biết họ tên, tên phòng làm việc của các nhân viên có đủ tiêu chuẩn về
hưu trong năm nay: nam từ 60 tuổi trở nên, nữ từ 55 tuổi trở nên.
Ví dụ 2: Đưa ra danh sách nhân viên nữ trong cơ quan
b. Truy vấn tính toán
Các bước thiết kế một truy vấn tính toán:
- Tạo một truy vấn mới như trong phần 3.1
- Chuyển từ truy vấn chọn thông thường trong phần a (truy vấn chọn) sang truy vấn
tính toán bằng cách chọn biểu tượng totals trên thanh công cụ hoặc trên thanh menu
chọn View -> Totals
Sau khi thực hiện các bước trên, cửa sổ của truy vấn tính toán có dạng như sau:
Trong mục Total của mỗi cột có những lựa chọn sau:
- Group by: Dùng để chỉ ra trường nào là trường phân nhóm.
- Sum: Tính tổng.
- Avg: Tính trung bình.
- Min: Tìm giá trị nhỏ nhất.
- Max: Tìm giá trị lớn nhất.
- Count: Đếm.
- StDev: Tìm độ lệch chuẩn.
- Var: Tìm phương sai.
- First: Tìm bản ghi đầu tiên.
- Last: Tìm bản ghi cuối cùng.
- Expression: Một biểu thức trong tính toán, đi kèm với một tính toán
bằng hàm thư viện khác.
- Where: Điều kiện lọc các bản ghi tham gia vào tính toán
Ví dụ 1: Tính tiền thưởng cho nhân viên phòng “Kỹ thuật” bằng 2,5 lương trung bình
Ví dụ 2: Thiết kế truy vấn nguồn dữ liệu cho bảng tổng hợp lương trong toàn cơ quan
bao gồm: tên phòng, tổng lương mà phòng đó được nhận
c. Truy vấn tham số
Khi thực hiện truy vấn, màn hình nhập giá trị tham số sẽ xuất hiện
Truy vấn sẽ được thực hiện với giá trị tham số được nhập từ bàn phím
cho kết quả hoặc điều kiện.
Ví dụ 1 Cho biết mã nhân viên, họ tên, đơn vị và lương của những nhân viên có
lương lớn hơn 2300000
SELECT manv, hoten, ma_dv, luong
FROM nhan_vien
WHERE luong>2300000
Ví dụ 2 Tìm tên các nhân viên có mã đơn vị là ‘P4’ và lương thấp hơn 2500000.
SELECT manv, ho_ten, ma_dv, luong
FROM nhan_vien
WHERE ma_dv=’P4’ AND luong < 2500000
4.3 Kết nối các bảng
Trong trường hợp câu hỏi liên quan đến nhiều bảng chúng ta cần kết
nối các bảng với nhau. Có 2 kiểu kết nối là kết nối trong (INNER
JOIN) và kết nối ngoài (LEFT JOIN, RIGHT JOIN). Ví dụ, kết nối bảng
nhanvien va bảng phong dựa trên điều kiện kết nối
nhanvien.maphong=phong.maphong
- Kết nối trong: một bộ trong bảng nhanvien sẽ được kết nối
với một bộ trong bảng phong khi và chỉ khi maphong của hai bộ này
bằng nhau
- Kết nối ngoài: Nếu nhanvien LEFT JOIN phong ON
nhanvien.maphong=phong.maphong thì với một bộ t trong bảng nhanvien
được ghép với một bộ k trong bảng phong nếu hai bộ này có maphong
bằng nhau, nếu không tìm thấy bộ nào trong bảng phong có maphong bằng
maphong của bộ t thì bộ t được ghép với một bộ có giá trị null trong
bảng phong. Kết nối nhanvien RIGHT JOIN phong ON
nhanvien.maphong = phong.maphong cho kết quả bằng kết nối phong LEFT
JOIN nhanvien ON nhanvien.maphong=phong.maphong
Ví dụ 1: Tìm những ngoại ngữ mà chưa có nhân viên nào học?
Ví dụ 2: Cho biết lương cao nhất, lương trung b́nh của mỗi đơn vị? Thông tin
đưa ra gồm: mã phòng, tên phòng, lương cao nhất, lương trung bình của phòng
đó.
SELECT phong.maphong, tenphong, MAX(luong) AS maxluong, AVG(luong) AS
luongtb
FROM nhanvien INNER JOIN phong ON nhanvien.maphong=phong.maphong
GROUP BY phong.maphong, tenphong