Bài 4: Truy vấn Select (Select Query)

0

I/ SELECT QUERY

1/ Chức năng:

  • Truy cập dữ liệu (DL) từ một hoặc nhiều bảng, nhằm thể hiện một bảng DL có đầy đủ thông tin và thoả mãn những điều kiện đặt ra.
  • Thống kê DL từ các bảng trong CSDL nguồn bằng các hàm thống kê.
  • Tạo ra các truy vấn hỏi đáp tại thời điểm chạy Query.
  • Có khả năng tạo ra trường mới tại thời điểm chạy truy vấn .

2/ Các bước tạo truy vấn :

  • Tạo mới (mở) CSDL cần tạo truy vấn.
  • Tạo và định dạng bảng DL cần làm nguồn truy vấn.
  • Thiết lập mối quan hệ giữa các bảng nếu chúng có quan hệ với nhau thông qua một trường nào đó.
  • Chọn thành phần Query trên thanh Objects tại cửa sổ Database.
  • Tuỳ từng loại truy vấn mà ta thực tiếp các công việc.

3/Tạo truy vấn chọn bằng Design View:

Design View cho phép ta có thể tạo mới hoặc chỉnh sửa cấu trúc của bảng hoặc Query. Cách tạo truy vấn bằng Design View cũng khá đơn giản tuỳ theo từng ứng dụng cụ thể.

3.1/ Các bước chung để tạo một truy vấn chọn bằng Design View

a) Cách tạo:

– B1: Database \ Query\ New, xuất hiện hộp thoại Show Table.

+ Dùng nút Add để chọn các bảng cần lấy trường cho truy vấn.

+ Dùng nút Close để đóng hộp thoại ShowTable.

– B2: Trên cửa sổ thiết kế Query, thấy các bảng với các liên kết tương ứng. Dùng chuột kéo thả (hoặc kích đúp) vào trường cần đưa xuống truy vấn

Các lựa chọn trên lưới thiết kế của cửa sổ Query gồm 6 thành phần sau:

  • Field: Là nơi chọn trường cần hiển thị hoặc đặt điều kiện .
  • Table: Là nơi hiện bảng chứa trường được chọn ở Field.
  • Sort: Sắp xếp các bản ghi .
  • Show: cho hiện hay không cho hiện trường trên truy vấn .
  • Criteria và or: Là dòng dùng để thành lập biểu thức điều kiện .

–  B3: Chạy thử truy vấn bằng một trong các cách:

+ C1: Query \ Run.

+ C2: Kích chọn biểu tượng run (!) trên thanh công cụ

+ C3: View \ Datasheet view (hoặc biểu tượng View).

– B4: Sau khi tạo xong ghi truy vấn  lên đĩa bằng cách :

+ C1: Vào File chọn Save.

+ C2: Chọn biểu tượng Save

* Chú ý:

  • Nếu tên trường trùng nhau trên nhiều bảng, khi sử dụng phải chỉ rõ theo cú pháp như sau: [tên bảng]. [tên trường].
  • Để sử dụng tên trường trong điều kiện , tên trường phải đặt trong dấu [ ].

b) Các cách chạy truy vấn khác:

+ C1: Database \ Query \ chọn Query cần “chạy” \ Open

+ C2: Database \ Query \ Kích đúp vào Query cần “chạy”

+ C3: Database \ Query \ Kích chuột phải tại Query cần “chạy”, chọn open.

c) Sửa cấu trúc:

Để sửa cấu trúc ta thực hiện một trong các cách:

– Tại cửa sổ chạy Query:

+C1: Vào View chọn Design View.

+C2: Chọn biểu tượng View

– Tại cửa sổ Database \ Query \ Chọn Query cần sửa cấu trúc \ Design.

3.2/ Select Query ứng dụng để hiển thị thông tin theo điều kiện:

– B1: Tạo một truy vấn lựa chọn thông thường như ý trên (3.1)

– B2: Tại các dòng dùng để đặt điều kiện, nhập vào điều kiện cần rút trích:

+ Dòng Criteria: Thành lập biểu thức điều kiện

+ Dòng or: Lập biểu thức điều kiện hoặc (nếu có).

** Chú ý:

– Trên cùng một dòng điều kiện là đồng thời (and), khác dòng điều kiện là không đồng thời (or).

– Khi sử dụng biểu thức điều kiện phức tạp ta nên sử dụng công cụ Expression Builder để sử dụng bằng cách :

+ C1: Kích phải chuột lên vùng cần nhập điều kiện chọn Build.

+ C2: Kích biểu tượng Build trên thanh công cụ.

3.3/Sử dụng Query Select để tạo truy vấn hỏi đáp

– Khi đặt điều kiện cho truy vấn, nhiều tình huống tại thời điểm “chạy” ta mới nhập giá trị cho máy. Để thực hiện điều đó ta thực hiện một truy vấn hỏi đáp như sau:

– B1: Thực hiện tạo một truy vấn chọn như (3.1)

– B2:  + Tại dòng Field ta thêm một cột để đặt điều kiện hỏi đáp

                  [tên cột hỏi đáp]:[câu hỏi đáp]

          + Tại dòng Criteria; gõ điều kiện cần hỏi đáp

* Lưu ý:- Tên cột hỏi đáp có thể bỏ qua.

– Câu hỏi đáp phải đặt trong dấu [], dấu ?

– Tại dòng Show không làm xuất hiện cột hỏi đáp khi chạy truy vấn.

– Nếu cột điều kiện hỏi đáp là tên trường nào đó trong bảng thì tại dòng Criteria của trường này, gõ vào dạng:

                 <phép toán so sánh> [câu hỏi đáp?]

VD: Hỏi đáp theo năm sinh.

Tại  Filed: hỏi năm: [bạn hỏi năm nào ?]

Tại Criteria: Year([ngày sinh])

3.4/ Sử dụng Query Select để tạo thêm trường mới :

– Khi ta cần một trường DL được tính toán bằng một biểu thức nào đó mà không có trong bảng DL nguồn, ta sử dụng Query Select để tạo ra nó theo cú pháp sau:

Tại dòng  Filed: nhập tên trường mới , công thức tạo trường mới :

                   [Tên trường mới]:[Biểu thức tính trường mới]

  • Công thức tạo trường mới bao gồm các trường kết hợp với các toán tử, các hàm.
  • Chạy thử và ghi lại truy vấn.

VD: Tạo Query thêm trường mới Tổng tiền để tính tiền bán hàng trong CSDL QL BANHANG biết: Tổng tiền : [số lượng]*[đơn giá].

3.5/ Sử dụng Select Query để thống kê dữ liệu.

Nhiều khi ta cần thống kê trên các trường dữ liệu của bảng như:

  • Đếm xem mỗi khu vực có bao nhiêu thí sinh.
  • Đưa ra điểm cao nhất của từng khu vực.
  • Tính tổng hay trung bình trên cột lương.
  • Đưa ra lương cao nhất hay thấp nhất .

Để làm được việc đó ta phải thực hiện một Query thống kê Select bằng các hàm thống kê.

a) Các hàm thống kê thường dùng:

– SUM: tính tổng các giá trị trong một trường.

– AVG: tính trung bình cộng trong một trường.

– MAX: tính giá trị lớn nhất trong một trường.

– MIN: tính giá trị bé nhất trong một trường.

– COUNT:đếm các bản ghi của bảng trên trường DL.

– STDEV: tính độ lệch chuẩn các giá trị trong  trường.

– FIRST: tính giá trị của bản ghi đầu trong bảng.

– LAST: tính giá trị của bản ghi cuối trong bảng.

b) Tạo truy vấn thống kê bằng Design view

B1: Tạo một truy vấn mới, chọn bảng và các trường cần thống kê.

B2: Mở View \ Totals hoặc kích nút Totals trên thanh công cụ.

B3: Đặt các tuỳ chọn thống kê.

  • Trên dòng Field : Đặt các trường cần thống kê.
  • Trên dòng Totals: Sử dụng các lựa chọn thống kê.
  • Group by: Chọn cho cột cần nhóm dữ liệu
  • Hàm thống kê: Chọn cho cột cần tính toán dữ liệu.
  • Expression: Chọn cho việc thành lập trường mới để thống kê.
  • Where: Chọn cho cột cần đặt điều kiện.
  • Criteria: lập biểu thức điều kiện cần nhóm DL.

* CHÚ Ý: Bản chất của truy vấn thống kê là việc tạo ra các trường mới bằng các hàm thống kê.

Các hàm thường dùng:

  • LEFT(ST,N): lấy N ký tự bên trái của chuỗi ST.
  • RIGHT(ST,N): lấy N ký tự bên phải của chuỗi ST.
  • MID(ST,I,N): lấy N ký tự từ vị trí I của chuỗi ST.
  • ISDATE(D)= True nếu D là một giá trị có kiểu Date/ time.
  • ISNULL(X)= True nếu X có giá trị rỗng (ngược lại là False).
  • IIF(btdk, giá trị 1, giá trị 2): nếu biểu thức điều kiện (btdk) đúng cho giá trị 1, sai cho giá trị 2
  • LIKE Mẫu: Tìm các giá trị theo mẫu nào đó ( VD: Like “H*”)
  • BETWEEN…AND…: Biểu thị một khoảng giá trị (VD: between 1 and 10).
  • IN (giá trị 1, giá trị 2…giá trị n): Kiểm tra xem các giá trị của trường có nằm trong 1 tập hợp nào đó hay không (VD: IN(1,2,3) cho các giá trị 1 hoặc 2 hoặc 3).
  • DATE(): cho biết ngày, tháng, năm hiện tại.
  • DAY(dl kiểu Date): Cho giá trị ngày của dữ liệu kiểu Date.

VD: DAY(# 12/2/04#) = 12.

  • MONTH(dl kiểu Date): Cho giá trị tháng của dữ liệu kiểu Date.

VD: MONTH(# 12/2/04#) = 2.

  • YEAR(dl kiểu Date): Cho giá trị tháng của dữ liệu kiểu Date.

VD: YEAR(# 12/2/04#) = 2004.

* Để thống kê:

  • Tại cột Field thứ nhất gõ Nam: year([ngay sinh]).
  • Tại cột Total: chọn Group by.
  • Tại cột Field thứ hai gõ : Tong so: Count(*).
  • Tại cột Total: gõ Expression.

4/ Truy vấn  Simple Query wizard

4.1/ Chức năng:

  • Tạo ra một bảng DL tại thời điểm chạy truy vấn .
  • Bảng dữ liệu đó được Query lấy từ một hoặc nhiều bảng có quan hệ với nhau.
  • Khi sử dụng Query wizard ta chỉ cần chọn bảng và các trường mà wizard hướng dẫn.

4.2/ Cách tạo :

  • Chọn thành phần Query, chọn nút New, xuất hiện hộp thoại.
  • Chọn thành phần Simple Query Wizard và OK. Khi đó hệ thống đưa ra cửa sổ lựa chọn:
  • Table \ Queries: Chọn bảng và các trường cần truy vấn .
  • Available Fields: Chứa các trường của bảng được chọn trong hộp Table \ Queries.
  • Select Fields: Chứa các trường đã được chọn.

Chọn các trường cần thống kê DL nếu cần, đặt tên cho truy vấn và chọn nút Finish.

4.3 Sử dụng Simple Query Wizard để thống kê dữ liệu

B1: Chọn thành phần Create Query Using Wizard.

  • C1: chọn nút Design (hoặc Open).
  • C2: kích đúp chuột.
  • C3: chọn New \ Simple Query Wizard.

B2: Chọn bảng và trường cần thống kê dữ liệu và Next.

B3: Chọn nút Summary\ Summary Options.

Theo các bước mà Wizard hướng dẫn như sau:

  • Chọn trường và các hàm cần thống kê tương ứng
  • Nếu muốn đếm các bản ghi theo một trường nào đó thì không chọn hàm thống kê mà chọn nút Count record in.

Để đặt điều kiện ta phải sửa truy vấn ở chế độ Design View.

Share.

About Author

Leave A Reply