ng III: Query ng III: Query

ươCh ươ Ch

NG III: QUERY NG III: QUERY

ƯƠCH ƯƠ CH Khái niệm query. I.I. Khái niệm query. Dùng để trả lời các câu hỏi có tính  Dùng để trả lời các câu hỏi có tính  chất tức thời. chất tức thời. Bộ hỏi được dùng để lựa chọn các  ­ Bộ hỏi được dùng để lựa chọn các  bản ghi (record), cập nhật các bảng  bản ghi (record), cập nhật các bảng  và bổ sung các bản ghi mới vào bảng. và bổ sung các bản ghi mới vào bảng. Dùng làm nguồn dữ liệu cho các biểu  ­ Dùng làm nguồn dữ liệu cho các biểu  mẫu, báo cáo. mẫu, báo cáo. Tạo lập, cập nhật CSDL. ­ Tạo lập, cập nhật CSDL.

Cách m c a s query Cách m c a s query

ở ử ở ử

ổ ổ

 Từ cửa sổ Database chọn

Queries Từ cửa sổ Database chọn Queries

 Chọn vào dòng:  Chọn vào dòng:

II. Các loại Query. II. Các loại Query. ­  Truy vấn chọn (Select Query): Thực hiện việc  ­  Truy vấn chọn (Select Query): Thực hiện việc

tìm kiếm (kể cả tính toán). tìm kiếm (kể cả tính toán). Truy vấn Crosstab: Thực hiện thống kê   trên  ­ Truy vấn Crosstab: Thực hiện thống kê   trên  CSDL. CSDL. Truy vấn hành động (Action Query): Cho phép  ­ Truy vấn hành động (Action Query): Cho phép  cập nhật CSDL gồm bổ sung, loại bỏ hay thay  cập nhật CSDL gồm bổ sung, loại bỏ hay thay  đổi.đổi. Truy vấn định nghĩa dữ liệu, truy vấn hợp. ­ Truy vấn định nghĩa dữ liệu, truy vấn hợp. Truy vấn Pass Through: Gửi lệnh SQL tới CSDL  ­ Truy vấn Pass Through: Gửi lệnh SQL tới CSDL  qua ODBC (ví dụ như CSDL SQL server) trên  qua ODBC (ví dụ như CSDL SQL server) trên  server để thao tác dữ liệu trên đó. server để thao tác dữ liệu trên đó.

III. Các hằng, biến, biểu thức, toán tử và  III. Các hằng, biến, biểu thức, toán tử và

hàm. hàm. 3.1. Hằng. 3.1. Hằng. Là đại lượng không đổi trong quá trình tính  ­ Là đại lượng không đổi trong quá trình tính  toán bao gồm: toán bao gồm: Hằng số: gồm các số (500, 400). ­ Hằng số: gồm các số (500, 400). Hằng ký tự, chuỗi: chuỗi ký tự được đặt trong  ­ Hằng ký tự, chuỗi: chuỗi ký tự được đặt trong  dấu nháy kép (“0001”, “CT2424”, “Hello”). dấu nháy kép (“0001”, “CT2424”, “Hello”). Hằng ngày: dữ liệu kiểu ngày đặt trong cặp  ­ Hằng ngày: dữ liệu kiểu ngày đặt trong cặp  dấu # (#20/07/2007#). dấu # (#20/07/2007#). Hằng đặt biệt: Null, True, False, Yes,No. ­ Hằng đặt biệt: Null, True, False, Yes,No.

3.2. Biến. 3.2. Biến. Được xác định thông qua tên biến, kiểu dữ  ­ Được xác định thông qua tên biến, kiểu dữ  liệu và đặt trong dấu [ ] gồm: liệu và đặt trong dấu [ ] gồm: Biến trường: biến có tên giống như tên  ­ Biến trường: biến có tên giống như tên  trường, giá trị của biến là giá trị của  trường, giá trị của biến là giá trị của  trường. Hai Table có cùng trường viết  trường. Hai Table có cùng trường viết  theo cú pháp: [Table]![tên biến trường]. theo cú pháp: [Table]![tên biến trường]. Biến tham số: tên biến không giống bất  ­ Biến tham số: tên biến không giống bất  cứ tên trường nào, giá trị được nhập từ  cứ tên trường nào, giá trị được nhập từ  bàn phím. bàn phím.

3.3. Biểu thức. 3.3. Biểu thức. Là tập hợp các toán tử và toán hạn có hai  ­ Là tập hợp các toán tử và toán hạn có hai  dạng: dạng: Biểu thức logic: trả về True/False được  ­ Biểu thức logic: trả về True/False được  dùng làm điều kiện trong dòng Criteria. dùng làm điều kiện trong dòng Criteria. Biểu thức tính toán được: tính toán giá trị  ­ Biểu thức tính toán được: tính toán giá trị  cho một trường mới từ các trường đã có. cho một trường mới từ các trường đã có.

3.4. Toán t

s h c.

ử ố ọ

Mô tả

Ví dụ ng]+[ph c p]

Toán tử +

C ng hai toán h ng

ụ ấ

Tr hai toán h ng

[l ươ Date-30

-12345

ng cb n]

- -(tt đ n) ơ *

[h s ]*[l

/

ệ ố ươ 15.2/12.55

\

5\2

Mod

5 Mod 2

Thay đ i d u ổ ấ Nhân hai toán h ng ạ Chia 1 t/h v i 1 t/h khác ớ Chia 1 sn v i 1 sn khác. ớ Tr v s d phép chia ả ề ố ư v i m t sn. ộ ớ

^

4^3

Nâng lũy th a m t toán ừ h ng (s mũ)

3.5. Toán t 3.5. Toán t

logic. logic.

ử ử

Toán tử Cú pháp And

Ví dụ (2<3)And(5<>7)

Bt1 And Bt2 True n u c hai là True ả

ế

(2<3)Or(5<>7)

Or

Bt1 Or Bt2 False n u c hai False ả

ế

Not

Not(2<3)And(5<> 7): True

Not Bt False n u Bt True ế

Xor

True Xor False=True

ế

Bt1 Xor Bt2 True n u Bt1, Bt2 có giá tr ị khác nhau

ơ ở ữ ệ ơ ở ữ ệ

ạ ạ

ể ể

ệ ệ

ng, b ng, đi u ng, b ng, đi u

ườ ườ

ứ ứ

ề ề

ả ả

ể ể

ả ả

ấ ấ

ặ ặ

i h n ph m vi d li u. i h n ph m vi d li u.

3.5. Các hàm thông d ng.ụ 3.5. Các hàm thông d ng.ụ - Các hàm x lý c s d li u. ữ - Các hàm x lý c s d li u. ữ Cú pháp: (“[bi u th c]”, “ph m ứ Cú pháp: (“[bi u th c]”, “ph m ứ vi”, “đi u ki n”). ề vi”, “đi u ki n”). ề + Tên hàm: tên hàm CSDL. + Tên hàm: tên hàm CSDL. + Bi u th c: 1 tr ể + Bi u th c: 1 tr ể khi n, h ng chàm… ằ khi n, h ng chàm… ằ +Ph m vi: tên b ng, truy v n ho c câu ạ +Ph m vi: tên b ng, truy v n ho c câu ạ SQL. SQL. + Đi u ki n: gi ề + Đi u ki n: gi ề

ớ ạ ớ ạ

ữ ệ ữ ệ

ệ ệ

ạ ạ

IIFIIF

 Cấu trúc: iif(đk,bt1,bt2). Cấu trúc: iif(đk,bt1,bt2).  Nếu đk đúng thực hiện bt1, đk sai thực  Nếu đk đúng thực hiện bt1, đk sai thực  hiện bt2. hiện bt2.  Có thể lồng nhiều hàm iif với nhau: Có thể lồng nhiều hàm iif với nhau:  Ví dụ:  7/100,, IIf([MA]="A",,7/100 [luong]*(IIf([MA]="A" Ví dụ: [luong]*( )))) IIf([MA]="C",4/100,0)))) ((IIf([MA]="C",4/100,0

DavgDavg

 Tính giá trị trung bình của một trường theo  Tính giá trị trung bình của một trường theo  điều kiện cho trước. điều kiện cho trước.  Ví dụ: tính điểm trung bình thi lần 1 của  Ví dụ: tính điểm trung bình thi lần 1 của  sinh viên SV001. sinh viên SV001. =Davg(“[ketqua1]”, “dangky”,  =Davg(“[ketqua1]”, “dangky”,  “[Mssv]=‘SV001’”) “[Mssv]=‘SV001’”)  Tính điểm trung bình lần 1 của tất cả SV Tính điểm trung bình lần 1 của tất cả SV =Davg(“[ketqua1]”, “dangky”)   =Davg(“[ketqua1]”, “dangky”)

Dcount Dcount  Đếm số mẫu tin trong 1 bảng theo ĐK cho  Đếm số mẫu tin trong 1 bảng theo ĐK cho  trước và không đếm các mẫu tin có giá trị  trước và không đếm các mẫu tin có giá trị  Null.Null.  Ví dụ: đếm số mẫu tin trong bảng đăng ký. Ví dụ: đếm số mẫu tin trong bảng đăng ký. =Dcount(“*”, “dangky”). =Dcount(“*”, “dangky”).  Đếm số môn học mà SV sv001 đăng ký. Đếm số môn học mà SV sv001 đăng ký. =Dcount(“*”, “dangky”, “[mssv]=‘sv001’”). =Dcount(“*”, “dangky”, “[mssv]=‘sv001’”).

Dlookup Dlookup

 Tìm giá trị của một trường theo điều kiện  Tìm giá trị của một trường theo điều kiện  cho trước. cho trước.  Ví dụ: tìm kiếm kết quả lần 1 của môn học  Ví dụ: tìm kiếm kết quả lần 1 của môn học  MH001. MH001.  =Dlookup(“[ketqua1]”, “dangky”,  =Dlookup(“[ketqua1]”, “dangky”,  “[msmh]=‘MH001’”). “[msmh]=‘MH001’”).

Dmin, Dmax, Dsum Dmin, Dmax, Dsum

Chú ý:

 Tìm giá trị nhỏ nhất, lớn nhất, tính tổng  Tìm giá trị nhỏ nhất, lớn nhất, tính tổng  của một trường theo điều kiện cho trước. của một trường theo điều kiện cho trước. Chú ý:trong trường hợp điều kiện cho  trong trường hợp điều kiện cho  trước là một giá trị được lấy từ các điều  trước là một giá trị được lấy từ các điều  khiển ta làm như sau: khiển ta làm như sau:  =DLookUp("[ketqua1]",“dangky","[ms =DLookUp("[ketqua1]",“dangky","[ms mh]= ‘ " & [Combo0].[Value] & “ ‘ ") mh]= ‘ " & [Combo0].[Value] & “ ‘ ")

M t s hàm khác M t s hàm khác

ộ ố ộ ố

 Mỗi người tìm 50 hàm. Mỗi người tìm 50 hàm.

IV. Select Queries. IV. Select Queries.

4.1. Tạo query. 4.1. Tạo query. : Từ cửa sổ DataBase của Access  Bước 1: Từ cửa sổ DataBase của Access  Bước 1

chọn Query/New/Design View/Ok. chọn Query/New/Design View/Ok. Hoặc từ cửa sổ Database, trong mục  ­ Hoặc từ cửa sổ Database, trong mục  Object chọn Query ­> Create Query in  Object chọn Query ­> Create Query in  Design View. Design View. Nếu Query mới tạo thì cửa sổ ShowTable  ­ Nếu Query mới tạo thì cửa sổ ShowTable  tự động mở, nếu không ta chọn vào nút       tự động mở, nếu không ta chọn vào nút                      để hiển thị cửa sổ ShowTable.                    để hiển thị cửa sổ ShowTable.

thi

Ch n các Table c n ầ tế

Thêm vào c a sử ổ

 Chú ý: mỗi Query có: Chú ý: mỗi Query có: Tối đa 32 bảng tham gia. – Tối đa 32 bảng tham gia. Tối đa 255 trường. – Tối đa 255 trường. Kích thước tối đa của bảng dữ liệu try vấn tạo  – Kích thước tối đa của bảng dữ liệu try vấn tạo  ra là 1 Gigabyte. ra là 1 Gigabyte. Số trường dùng làm khóa sắp xếp tối đa là 10. – Số trường dùng làm khóa sắp xếp tối đa là 10. Số truy vấn lồng nhau tối đa là 50. – Số truy vấn lồng nhau tối đa là 50. Số ký tự tối đa trong ô của vùng lưới là 1024. – Số ký tự tối đa trong ô của vùng lưới là 1024. Số ký tự tối đa trong dòng lệnh SQL là 64000. – Số ký tự tối đa trong dòng lệnh SQL là 64000. Số ký tự tối đa trong tham số là 255.  – Số ký tự tối đa trong tham số là 255.

4.1. Tạo Query (tt). 4.1. Tạo Query (tt). : Từ cửa sổ Show Table chọn các  Bước2: Từ cửa sổ Show Table chọn các  Bước2 bảng dữ liệu hoặc các truy vấn liên quan  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  Chọn tên bảng  đến câu hỏi, bằng cách  (hoặc tên truy vấn) ­> Add..     (hoặc tên truy vấn) ­> Add Ví dụ câu hỏi liên quan đến sinh viên và  ­ Ví dụ câu hỏi liên quan đến sinh viên và  khoa ta có cửa sổ. khoa ta có cửa sổ.

Các trường liên quan đến truy vấn.   FieldField:: 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  Có thể xuất hiện ở kết quả hoặc điều kiện  tìm kiếm.  tìm kiếm.   Trường kết xuất có dạng : kết xuất>:  Bảng chứa trường được lựa chọn. Table:: Bảng chứa trường được lựa chọn.

 Table

Sắp thứ tự kết quả theo thứ tự tăng   SortSort:: Sắp thứ tự kết quả theo thứ tự tăng

hoặc giảm. hoặc giảm.

Trường xuất hiện ở kết quả hiện   ShowShow:: Trường xuất hiện ở kết quả hiện

hoặc ẩn. hoặc ẩn.

 Criteria

Điều kiện chọn có dạng: 

Tìm kiếm theo điều kiện OrOr. Có thể  . Có thể

Criteria:: Điều kiện chọn có dạng:  toán quan hệ> toán quan hệ>      liệu> Hai biểu thức trên có thể viết trên một  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 andand.. dòng sẽ tổ hợp thành điều kiện  Or:Or: Tìm kiếm theo điều kiện  thêm dòng. thêm dòng.

Ví dụVí dụ

: Lựa chọn các trường cần hiển thị  Bước 3: Lựa chọn các trường cần hiển thị  Bước 3

trong kết quả của truy vấn hoặc liên quan  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  đế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  thảo các điều kiện tìm kiếm trong phần  Criteria.. Criteria

Bước 4: Thực hiện truy vấn bằng một trong   Thực hiện truy vấn bằng một trong  Bước 4:

trên  Chọn biểu tượng !! trên  Chọn biểu tượng

hai cách sau: hai cách sau:                Cách 1:  Cách 1:  thanh công cụ. thanh công cụ.              Cách 2: Trên thanh menu chọn  Cách 2: Trên thanh menu chọn  Query\Run.. Query\Run

 Bước 5:

Bước 5: Ghi lại kết quả truy vấn (nếu   Ghi lại kết quả truy vấn (nếu  muốn) bằng cách: muốn) bằng cách:                Cách 1:  Cách 1:

Chọn biểu tượng đĩa mềm  Chọn biểu tượng đĩa mềm

trên thanh công cụ. trên thanh công cụ.

Cách 2: Trên thanh menu chọn  Cách 2: Trên thanh menu chọn  File\Save.. File\Save

•Ví d tìm nh ng sinh viên h c trong khoa có tên “ANH_VAN” ho c “TU_NHIEN”

K t quế K t quế

ả ả

4.2. một số thao tác cơ bản với các trường  4.2. một số thao tác cơ bản với các trường

trong Query. trong Query. Thay đổi thứ tự, thêm xóa các trường. ­ Thay đổi thứ tự, thêm xóa các trường. Đổi tên tiêu đề cột, tạo trường mới. ­ Đổi tên tiêu đề cột, tạo trường mới. 4.3. định thứ tự sắp xếp. 4.3. định thứ tự sắp xếp. Sắp xếp nhanh dùng các nút lệnh trên  ­ Sắp xếp nhanh dùng các nút lệnh trên  thanh công cụ. thanh công cụ. Tạo sắp xếp sẳn: click vào ô sort và chọn  ­ Tạo sắp xếp sẳn: click vào ô sort và chọn  hướng sứp xếp. hướng sứp xếp.

4.4. Cách lập biểu thức. 4.4. Cách lập biểu thức. 4.4.1. biểu thức dạng hằng. 4.4.1. biểu thức dạng hằng. Hằng chuỗi nhập bình thường không phân  ­ Hằng chuỗi nhập bình thường không phân  biệt hoa thường. biệt hoa thường. Dạng số, tiền tệ, tự động không được đưa  ­ Dạng số, tiền tệ, tự động không được đưa  ký hiệu đại diện vào. ký hiệu đại diện vào. Dạng ngày có hai dấu # bao quanh. ­ Dạng ngày có hai dấu # bao quanh.

Ý nghĩa

4.4.2. các phép toán được dùng trong biểu thức. 4.4.2. các phép toán được dùng trong biểu thức. Toán tử toán học. ­ Toán tử toán học. Toán tử logic. ­ Toán tử logic. Toán tử Like: muốn sử dụng các ký tự đại diện (Text/  ­ Toán tử Like: muốn sử dụng các ký tự đại diện (Text/  Date/Time) Date/Time) Ký hi uệ

Thay th m t s ký t

b t kỳ

*

ế ộ ố

ự ấ

Thay th m t ký t

i v trí xu t hi n

t

? Ho c#ặ

ế ộ

ự ạ ị

[ ]

Thay th các ký t ế

ự ằ

n m trong ngo c ặ

!

khác ký t

sau !

Thay th các ký t ế

-

T ký t

đ n ký t

ự ế

. ự

Ví dụVí dụ

 Tìm những nhân viên có mã ký tự đầu tiên  Tìm những nhân viên có mã ký tự đầu tiên  bất kỳ, ký tự thứ 2 khác A,B,C,D. bất kỳ, ký tự thứ 2 khác A,B,C,D.

Kết quả

Tìm nh ng nhân viên sinh vào quý 1 Tìm nh ng nhân viên sinh vào quý 1

ữ ữ

 Tìm những nhân viên sinh vào tháng 12… Tìm những nhân viên sinh vào tháng 12…  Tìm những nhân viên có họ nguyễn. Tìm những nhân viên có họ nguyễn.  Liệt kê các nhân viên có trong phòng tài  Liệt kê các nhân viên có trong phòng tài  vụ…vụ…

4.5. Total Queries. 4.5. Total Queries. Tạo một truy vấn mới  ­ ­   Tạo một truy vấn mới     ­  Chuyển từ truy vấn chọn thông thường  ­  Chuyển từ truy vấn chọn thông thường  sang truy vấn tính toán bằng cách 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ụ    biểu tượng totals     trên thanh công cụ  View ­>  hoặc trên thanh menu chọn View ­>  hoặc trên thanh menu chọn  Totals.. Totals

 Trong mục Total của mỗi cột có những lựa  Trong mục Total của mỗi cột có những lựa  chọn sau: chọn sau:     Group by Group by: Dùng để chỉ ra trường nào  : Dùng để chỉ ra trường nào    ­      ­    là trường phân nhóm. là trường phân nhóm.     SumSum: Tính tổng. : Tính tổng.   ­        ­      AvgAvg: Tính trung bình. : Tính trung bình.   ­      ­        MinMin: Tìm giá trị nhỏ nhất. : Tìm giá trị nhỏ nhất.   ­        ­      MaxMax: Tìm giá trị lớn nhất. : Tìm giá trị lớn nhất.   ­        ­      Count Count: Đếm. : Đếm.   ­        ­      StDev StDev: Tìm độ lệch chuẩn. : Tìm độ lệch chuẩn.   ­        ­

VarVar: Tìm phương sai. : Tìm phương sai. ­        ­        FirstFirst: Tìm bản ghi đầu tiên. : Tìm bản ghi đầu tiên.   ­      ­        Last Last: Tìm bản ghi cuối cùng. : Tìm bản ghi cuối cùng.   ­        ­      Expression Expression: Một biểu thức trong tính  : 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  toán, đi kèm với một tính toán bằng hàm  thư viện khác. thư viện khác.     WhereWhere: Điều kiện lọc các bản ghi tham  : Điều kiện lọc các bản ghi tham  ­        ­    gia vào tính toán. gia vào tính toán.

Ví dụVí dụ

 Tính tổng số nhân viên của từng đơn vị. Tính tổng số nhân viên của từng đơn vị.

ổ ổ

Tính t ng s nam và t ng s n ố ữ ổ ố Tính t ng s nam và t ng s n ổ ố ữ ố c a t ng đ n v ị ủ ừ c a t ng đ n v ị ủ ừ

ơ ơ

 Tìm hệ số lớn nhất và hs nhỏ nhất của  Tìm hệ số lớn nhất và hs nhỏ nhất của  từng đơn vị. từng đơn vị.  Tìm hs trung bình của từng đv. Tìm hs trung bình của từng đv.

ổ ổ

ổ ổ

ọ ọ

Tính t ng s môn h c và t ng s ố Tính t ng s môn h c và t ng s ố tính ch c a môn h c đó. tính ch c a môn h c đó.

ố ố ỉ ủ ỉ ủ

ọ ọ

Filed Tongsomon: msmh Tongsotc: sotc

Table Monhoc Monhoc

Total Count sum

4.5.2. Tính tổng trên từng nhóm mẫu tin. 4.5.2. Tính tổng trên từng nhóm mẫu tin. ­ Tạo truy vấn mới. ­ Tạo truy vấn mới. Đưa các bảng cần thiết vào truy vấn. ­ Đưa các bảng cần thiết vào truy vấn. Đưa các trường cần thiết vào vùng lưới. ­ Đưa các trường cần thiết vào vùng lưới. Chọn Total. ­ Chọn Total. Trong ô Total: ­ Trong ô Total: Chọn groupBy cho trường làm khóa chính để  ­ Chọn groupBy cho trường làm khóa chính để  nhóm. nhóm. Chọn phép tính tổng cho các trường còn lại. ­ Chọn phép tính tổng cho các trường còn lại. Chuyển ang Datasheet View để xem kết quả. ­ Chuyển ang Datasheet View để xem kết quả.

Ví dụVí dụ

 Tính tổng số giáo viên của từng khoa. Tính tổng số giáo viên của từng khoa.

Filed Khoa: tenkhoa Sogiaovien:msgv

Table Khoa Giaovien

Total Group by count

4.5.3. Tính tổng trên nhiều nhóm mẫu tin. 4.5.3. Tính tổng trên nhiều nhóm mẫu tin. Chọn Group By trên nhiều trường. ­ Chọn Group By trên nhiều trường. Ưu tiên từ trái qua phải. ­ Ưu tiên từ trái qua phải. Ví dụ: tính tổng số sv của từng lớp theo  ­ Ví dụ: tính tổng số sv của từng lớp theo  từng khoa. từng khoa. Tenkhoa

Sosinhvien:mssv tenlop Filed

Table Khoa lop sinhvien

Total Group by Group by count

ng sau ng sau

ặ ặ

ề ề

ườ ườ

Đ t đi u ki n cho các tr ệ Đ t đi u ki n cho các tr ệ khi tính t ngổ khi tính t ngổ

 Tìm những người có  Tìm những người có  đăng ký 3 môn học  đăng ký 3 môn học  trở lên. trở lên.

Filed Mssv Hotensv Tongsomon:msmh

Table Sinhvien Sinhvien Dangky

Total Group by Group by count

Criterial >=3

4.5.4. Lập biểu thức chọn giới hạn những  4.5.4. Lập biểu thức chọn giới hạn những

mẫu tin trước khi tính tổng. mẫu tin trước khi tính tổng. Tạo truy vấn. ­ Tạo truy vấn. Đưa các bảng vào truy vấn. ­ Đưa các bảng vào truy vấn. Đưa các trường vào vùng lưới. ­ Đưa các trường vào vùng lưới. Chọn Total ­ Chọn Total Thiết lập ô Total thành Where đối với  ­ Thiết lập ô Total thành Where đối với  trường muốn đặt biểu thức giới hạn. trường muốn đặt biểu thức giới hạn. Gõ biểu thức tại ô Criteria ­ Gõ biểu thức tại ô Criteria

Ví d :ụVí d :ụ

 Liệt kê sv đăng ký 3 môn trở lên trong niên  Liệt kê sv đăng ký 3 môn trở lên trong niên  khóa 2003­2004. khóa 2003­2004.

Filed Mssv Hotensv Tong:msmh nienkhoa

Table Sinhvien Sinhvien Dangky dangky

Total Group by Group by count Where

Criterial >=3 “2003-2004”

 Chú ý:  Chú ý:

Trường có chọn Where thì không thể  – Trường có chọn Where thì không thể  hiển thị kết quả được. hiển thị kết quả được. Trong đa số trường hợp đặt điều kiện lọc  – Trong đa số trường hợp đặt điều kiện lọc  trước và sau khi tính tổng sẽ cho kết quả  trước và sau khi tính tổng sẽ cho kết quả  khác nhau. khác nhau.

ủ ủ

ể ể

Ví d : tìm đi m trung bình c a SV có mã s ố ụ Ví d : tìm đi m trung bình c a SV có mã s ố ụ “001” “001”

Đi m s sinh viên n trong l p. Đi m s sinh viên n trong l p.

ữ ữ

ế ế

ố ố

ớ ớ

4.6. Truy v n tham s (Parameter Queries) ố 4.6. Truy v n tham s (Parameter Queries) ố

ấ ấ

 Cho phép thực hiện một truy vấn nhiều lần  Cho phép thực hiện một truy vấn nhiều lần  nhưng mỗi lần thực hiện với một tiêu  nhưng mỗi lần thực hiện với một tiêu  chuẩn lựa chọn khác nhau. chuẩn lựa chọn khác nhau. Tạo truy vấn mới. ­ Tạo truy vấn mới. Đưa các bảng cần thiết vào truy vấn. ­ Đưa các bảng cần thiết vào truy vấn. Đưa các trường cần thiết vào vùng lưới. ­ Đưa các trường cần thiết vào vùng lưới. Tại ô Field – Criteria gõ vào biểu thức có  ­ Tại ô Field – Criteria gõ vào biểu thức có  chứa tham số. chứa tham số.

 Lưu ý: Lưu ý: Tên tham số nằm giữa hai dấu ngoặc  ­ Tên tham số nằm giữa hai dấu ngoặc  vuông. vuông. Tên tham số cũng chính là chuỗi nhắc  ­ Tên tham số cũng chính là chuỗi nhắc  nhở: tên tham số có khoảng trắng chiều  nhở: tên tham số có khoảng trắng chiều  dài không quá 255 ký tự. dài không quá 255 ký tự.

Tìm nh ng sinh viên thu c khoa “AV” Tìm nh ng sinh viên thu c khoa “AV”

ữ ữ

ộ ộ

 Khi Run ta thấy xuất hiện bảng: Khi Run ta thấy xuất hiện bảng:

Nh ng SV có đi m >7 đ Nh ng SV có đi m >7 đ

c 10 đi m c 10 đi m

ữ ữ

ể ể

ượ ượ

ể ể

 Khi Run Khi Run

 Kết quả Kết quả

 Liệt kê thông tin về năm sinh của sv với  Liệt kê thông tin về năm sinh của sv với  năm sinh nhập từ bàn phím. năm sinh nhập từ bàn phím.

Filed Mssv Hotensv phai ngaysinh

Table Sinhvien Sinhvien Sinhvien Sinhvien

Namsinh=year([n gaysinh])

Criterial

 Tìm những sinh viên sinh nam n1 có đăng  Tìm những sinh viên sinh nam n1 có đăng  ký m2 môn học trở lên. ký m2 môn học trở lên.

Filed Mssv Hotensv phai msmh ngaysinh

Table Sinhvien Sinhvien Sinhvien Dangky Sinhvien

Total Group by Group by Group by Count Group by

>=[somon]

Namsinh= year([ngay sinh])

Criterial

 Liệt kê số nhân viên trong từng đơn vị, mã  Liệt kê số nhân viên trong từng đơn vị, mã  đv nhập từ bàn phím đv nhập từ bàn phím

bàn bàn

ườ ườ ộ ố ộ ố

i có s năm công ố i có s năm công ố ậ ừ ậ ừ

ơ ơ

Tìm nh ng ng ữ Tìm nh ng ng ữ tác l n h n m t s nh p t ớ tác l n h n m t s nh p t ớ phímphím

 Tìm các nhân viên có mã nv bắt đầu bằng  Tìm các nhân viên có mã nv bắt đầu bằng  ký tự nhập vào từ bàn phím ký tự nhập vào từ bàn phím

 Sinh viên thi môn m1 có số điểm từ d1 đến  Sinh viên thi môn m1 có số điểm từ d1 đến  d2 điểm. d2 điểm.  Thông tin về môn m1 do giáo viên thuộc  Thông tin về môn m1 do giáo viên thuộc  khoa KTCN dạy. khoa KTCN dạy.  Liệt kê thông tin về các sinh viên thuộc  Liệt kê thông tin về các sinh viên thuộc  khoa K1, học môn học M2, với số điểm lớn  khoa K1, học môn học M2, với số điểm lớn  nhất của hai lần thi từ D3 trở lên. nhất của hai lần thi từ D3 trở lên.

 Chú ý: ta có thể tạo truy vấn tham số với  Chú ý: ta có thể tạo truy vấn tham số với  nhiều điều kiện chọn. nhiều điều kiện chọn.  Nội dung các tham số nhập vào chỉ có thể  Nội dung các tham số nhập vào chỉ có thể  là hằng, không thể là biểu thức. là hằng, không thể là biểu thức.  Bạn có thể quy định kiểu dữ liệu cho từng  Bạn có thể quy định kiểu dữ liệu cho từng  tham số: trong Design View chọn Query­ tham số: trong Design View chọn Query­ parameter parameter  Ví dụ: tìm nhân viên có năm sinh và ký tự  Ví dụ: tìm nhân viên có năm sinh và ký tự  đầu của Manv nhập tự bàn phím đầu của Manv nhập tự bàn phím

4.7. CrossTab Queries. 4.7. CrossTab Queries.

 Dùng để tổng hợp dữ liệu và trình bàytheo  Dùng để tổng hợp dữ liệu và trình bàytheo  dạng cô động. dạng cô động.  Cách tạo truy vấn CrossTab Cách tạo truy vấn CrossTab

Tạo truy vấn mới. – Tạo truy vấn mới. Đưa các bảng tham gia truy vấn vào. – Đưa các bảng tham gia truy vấn vào. Đưa các trường cần thiết vào vùng lưới. – Đưa các trường cần thiết vào vùng lưới. Chọn Query/ CrossTab trên vùng lưới xuất  – Chọn Query/ CrossTab trên vùng lưới xuất  hện dòng Total và Crosstab hện dòng Total và Crosstab

 Tại trường dùng làm tiêu đề cột chọn  Tại trường dùng làm tiêu đề cột chọn  Group By cho ô Total, Column heading  Group By cho ô Total, Column heading  cho ô Crosstab. cho ô Crosstab.  Tại trường dùng làm tiêu đề dòng chọn  Tại trường dùng làm tiêu đề dòng chọn  Group By cho ô Total, Row Heading cho ô  Group By cho ô Total, Row Heading cho ô  Crosstab. Crosstab.  Tại trường dùng tính giá trị chọn phép toán  Tại trường dùng tính giá trị chọn phép toán  tương ứng cho ô Total, Value cho ô  tương ứng cho ô Total, Value cho ô  Crosstab. Crosstab.

 Ví dụ: tính tổng số nam và nữ trong từng  Ví dụ: tính tổng số nam và nữ trong từng  khoa. khoa.

 Kết quả Kết quả

 Chú ý: Chú ý:

Trong truy vấn Crosstab chỉ có một  – Trong truy vấn Crosstab chỉ có một  trường dùng làm tiêu đề cột. trường dùng làm tiêu đề cột. Có thể có nhiều tiêu đề dòng. – Có thể có nhiều tiêu đề dòng. Chỉ có một trường giá trị. – Chỉ có một trường giá trị.

Coulumn Heading Coulumn Heading

Value Value

Row Heading      Row Heading

Vi du: Vi du:

 Tạo query để tính kết quả trung bình điểm  Tạo query để tính kết quả trung bình điểm  thi lần 1 của môn tin học theo sinh viên  thi lần 1 của môn tin học theo sinh viên  từng khoa. từng khoa. Tenkhoa

Ketqua1 MSMH tenMH Mskhoa

Where

Value

Group By Group By Group By Avg Row Heading

Row Heading

Column Heading

Like “Tin hoc”

Khoa Khoa monhoc Dangky Monhoc

 Tạo Quyery để thống kê số lượng sinh  Tạo Quyery để thống kê số lượng sinh  Query1.. viên Nam và Nữ theo từng lớp Query1 viên Nam và Nữ theo từng lớp

Mslop Phai phai

lop Sinhvien Sinhvien

Group By Group By Count

Row Heading Column Heading Value

 Tuy nhiên nếu ta  Tuy nhiên nếu ta  dùng Query trên kq  dùng Query trên kq  là:  là:   Để hiển thị được Nam  Để hiển thị được Nam  và Nữ ta phải dùng  và Nữ ta phải dùng  thêm một query thứ  thêm một query thứ  hai với nguồn là query  hai với nguồn là query  vừa tạo đặt (Nam: ­1,  vừa tạo đặt (Nam: ­1,  Nu: 0) cho tiêu đề cột. Nu: 0) cho tiêu đề cột.

 Ví dụ Query trên ta lưu là Query1 ta có: Ví dụ Query trên ta lưu là Query1 ta có:

Mslop Nam: -1 N : 0ữ

Query1 Query1 Query1

M t s ví d ộ ố M t s ví d ộ ố

ụ ụ

 Thống kê kết quả học tập lần 1 của các  Thống kê kết quả học tập lần 1 của các  sinh viên theo từng niên khóa. sinh viên theo từng niên khóa.  Thống kê số lượng sinh viên trong các lớp  Thống kê số lượng sinh viên trong các lớp  thuộc khoa “kinh tế và quản trị kinh doanh” thuộc khoa “kinh tế và quản trị kinh doanh”  Thống kê số lượng sinh viên học các môn  Thống kê số lượng sinh viên học các môn  tin học theo từng khoa tin học theo từng khoa

4.7. Action Queries. 4.7. Action Queries.

 Khi thực hiện truy vấn chọn, muốn thay đổi giá trị  Khi thực hiện truy vấn chọn, muốn thay đổi giá trị  của mẫu tin nào đó, chuyển sang Datashet View  của mẫu tin nào đó, chuyển sang Datashet View  sửa đổi trên kết quả. sửa đổi trên kết quả.

 Trong trường hợp muốn thay đổi hàng loạt mẫu  Trong trường hợp muốn thay đổi hàng loạt mẫu  tin ta dùng truy vấn hành động. tin ta dùng truy vấn hành động.

 Do tính chất nguy hiểm của truy vấn này nên  Do tính chất nguy hiểm của truy vấn này nên  Access thường đưa ra thông báo. Để tắt chứ  Access thường đưa ra thông báo. Để tắt chứ  năng này: tool/Option/Tab Edit/Find tắt Action  năng này: tool/Option/Tab Edit/Find tắt Action  QueryQuery

4.7.1. Make Table Queries. 4.7.1. Make Table Queries.

 Select và total Queries cho ta một bảng  Select và total Queries cho ta một bảng  giá trị tức thời. Mà tại thời điểm khác có thể  giá trị tức thời. Mà tại thời điểm khác có thể  không thu được kết quả như trước. không thu được kết quả như trước.  Muốn lưu lại bảng kết quả của một Query  Muốn lưu lại bảng kết quả của một Query  tại một thời điểm ta dùng Make Table  tại một thời điểm ta dùng Make Table  Query. Query.  Các bước tạo: Các bước tạo:

 Tạo truy vấn mới. Tạo truy vấn mới.  Đưa các bảng cần thiết vào truy vấn. Đưa các bảng cần thiết vào truy vấn.  Chọn Query/ Make Table. Chọn Query/ Make Table.  Đặt tên bảng mới. Đặt tên bảng mới.  Nếu muốn tạo bảng trong một CSDL mới  Nếu muốn tạo bảng trong một CSDL mới  chọn Another Database. chọn Another Database.  Thực hiện các lựa chọn cần thiết để tạo  Thực hiện các lựa chọn cần thiết để tạo  bảng  mới. bảng  mới.  Chọn lệnh Run hoặc chọn biểu tượng Run  Chọn lệnh Run hoặc chọn biểu tượng Run  trên thanh công cụ. trên thanh công cụ.

Đặt tên cho  Table mới

Table mới đặt ở CSDL  hiện hành

Table mới đặt ở CSDL  khác

 Chú ý: Chú ý:

Khi chọn lệnh Run một hộp thoại cảnh  – Khi chọn lệnh Run một hộp thoại cảnh  báo xuất hiện. báo xuất hiện.

Nhấn Yes để thực hiện, NO để hủy bỏ. – Nhấn Yes để thực hiện, NO để hủy bỏ.

 Nếu đã tồn tại bảng cùng tên Access  Nếu đã tồn tại bảng cùng tên Access  sẽ thông báo. sẽ thông báo.

 Nếu chọn Yes Access sẽ lưu nội dung  Nếu chọn Yes Access sẽ lưu nội dung  mới vào bảng cũ bị xóa . mới vào bảng cũ bị xóa .

 Một hộp thoại sẽ xuất hiện một lần  Một hộp thoại sẽ xuất hiện một lần  nửa xem bạn có đồng ý hay không. nửa xem bạn có đồng ý hay không.

 Nếu chọn Yes bảng sẽ được tạo thật  Nếu chọn Yes bảng sẽ được tạo thật  sự.sự.

 Ví dụ: tạo bảng mới gồm những SV thuộc  Ví dụ: tạo bảng mới gồm những SV thuộc  khoa “av” khoa “av”

4.7.2. Delete Queries 4.7.2. Delete Queries

 Là một Action Query. Là một Action Query.  Xóa một loạt các mẫu tin trong bảng thỏa  Xóa một loạt các mẫu tin trong bảng thỏa  điều kiện nào đó. điều kiện nào đó.  Tránh được các sai xót khi đi tìm xóa các  Tránh được các sai xót khi đi tìm xóa các  mẫu tin. mẫu tin.  Hầu hết các truy vấn xóa chỉ xóa trên một  Hầu hết các truy vấn xóa chỉ xóa trên một  bảng dù các nhiều bảng tham gia truy vấn.  bảng dù các nhiều bảng tham gia truy vấn.  (có hai bảng có quan hệ “một – nhiều” chỉ  (có hai bảng có quan hệ “một – nhiều” chỉ  có các mẫu tin bên nhiều bị xóa). có các mẫu tin bên nhiều bị xóa).

 Lưu ý:Trong một số trường hợp truy vấn  Lưu ý:Trong một số trường hợp truy vấn  xóa có thể xóa các mẫu tin trong bảng  xóa có thể xóa các mẫu tin trong bảng  không tham gia vào truy vấn. không tham gia vào truy vấn.  Cách tạo: Cách tạo:

Tạo truy vấn mới. – Tạo truy vấn mới. Đưa các bảng vào. – Đưa các bảng vào. Chọn Query/ Delete Query. – Chọn Query/ Delete Query. Đưa các trường vào vùng lưới – Đưa các trường vào vùng lưới Trường dấu * xuất hiện từ From tại ô  Trường dấu * xuất hiện từ From tại ô  Delete Delete Trường khác xuất hiện từ Where tại ô  Trường khác xuất hiện từ Where tại ô  Delete. Delete.

 Định các điều kiện lọc Định các điều kiện lọc  Chuyển sang Datasheet View để xem  Chuyển sang Datasheet View để xem  trước các mẫu tin sẽ bị xóa. trước các mẫu tin sẽ bị xóa.  Chọn lện Run để thực hiện truy vấn. Chọn lện Run để thực hiện truy vấn.  Xuất hiện hộp thoại cảnh báo: Chọn Yes  Xuất hiện hộp thoại cảnh báo: Chọn Yes  để chấp nhận, No hủy. để chấp nhận, No hủy.

 Ví dụ: xóa khoa tự nhiên. Ví dụ: xóa khoa tự nhiên.

4.7.3. Append Queries. 4.7.3. Append Queries.

 Thêm các mẫu tin thỏa điều kiện nào đó từ bảng  Thêm các mẫu tin thỏa điều kiện nào đó từ bảng  này sang bảng khác. này sang bảng khác.  Tạo truy vấn: Tạo truy vấn: Tạo truy vấn mới . – Tạo truy vấn mới . Đưa các bảng cần thiết vào truy vấn. – Đưa các bảng cần thiết vào truy vấn. Chọn Query/ Append. – Chọn Query/ Append. Drag các trường muốn nối vào vùng lưới. – Drag các trường muốn nối vào vùng lưới. Chọn các trường dùng để làm điều kiện lọc. – Chọn các trường dùng để làm điều kiện lọc. Định các điều kiện lọc. – Định các điều kiện lọc.

4.7.4. Update Queries. 4.7.4. Update Queries.

 Là một Action Query. Là một Action Query.  Cập nhật dữ liệu cho một loạt các mẫu tin  Cập nhật dữ liệu cho một loạt các mẫu tin  một cách nhanh chóng. một cách nhanh chóng.  Cách tạo: Cách tạo:

Tạo truy vấn mới. – Tạo truy vấn mới. Đưa các bảng vào truy vấn. – Đưa các bảng vào truy vấn. Chọn Query/ Update Query. – Chọn Query/ Update Query. Đưa các trường muốn cập nhật vào  – Đưa các trường muốn cập nhật vào  vùng lưới. vùng lưới.

 Đưa các trường dùng để làm điều kiện lọc. Đưa các trường dùng để làm điều kiện lọc.  Trong ô Update To của trường muốn cập  Trong ô Update To của trường muốn cập  nhật nhập vào giá trị mới hay biểu thức  nhật nhập vào giá trị mới hay biểu thức  tính toán cho trường đó. tính toán cho trường đó.  Thực hiẹn truy vấn. Thực hiẹn truy vấn.

 Ví dụ: những sinh viên thi lại lần hai có số  Ví dụ: những sinh viên thi lại lần hai có số  điểm từ 4 đến 4.5 sẽ được cho đậu. điểm từ 4 đến 4.5 sẽ được cho đậu.

V. Truy v n SQL. ấ V. Truy v n SQL. ấ

5.1. Cách mở cửa sổ thiết kế truy vấn SQL . 5.1. Cách mở cửa sổ thiết kế truy vấn SQL . Bước 1: Từ cửa sổ Database, trong mục  : Từ cửa sổ Database, trong mục  Bước 1 Objects chọn đối tượng Querys ­> Create  Objects chọn đối tượng Querys ­> Create  query in Design view. Sau bước này cửa  query in Design view. Sau bước này cửa  sổ Show tables xuất hiện (như trong phần  sổ Show tables xuất hiện (như trong phần  thiết kế truy vấn QBE). thiết kế truy vấn QBE).

 Bước 2

Bước 2: Đóng cửa sổ Show table này lại,  : Đóng cửa sổ Show table này lại,  trên menu chọn View ­> SQL View. Cửa  trên menu chọn View ­> SQL View. Cửa  sổ thiết kế SQL xuất hiện, và chúng ta  sổ thiết kế SQL xuất hiện, và chúng ta  soạn câu lệnh SQL trong cửa sổ này. soạn câu lệnh SQL trong cửa sổ này.

 Bước 3

Bước 3: Để thực hiện câu lệnh SQL chọn  : Để thực hiện câu lệnh SQL chọn   trên thanh công cụ. biểu tượng !! trên thanh công cụ. biểu tượng

4.2 Cú pháp của câu lệnh SQL. 4.2 Cú pháp của câu lệnh SQL. SELECT [DISTINCT|ALL]{*| 

thuộc tính>| [AS ]} thuộc tính>| [AS ]}

FROM [] [, …] FROM [] [, …]

[WHERE <điều kiện lựa chọn các bản ghi>] [WHERE <điều kiện lựa chọn các bản ghi>] [GROUP BY ]  nhóm>]  [HAVING <điều kiện lựa chọn nhóm>] [HAVING <điều kiện lựa chọn nhóm>] [ORDER BY ] xếp>]

 Trong đó:  Trong đó:  Biểu thức cột: là tên của cột hoặc  biểu  : là tên của cột hoặc  biểu  ­­Biểu thức cột thức. thức. ­Tên bảng:là tên của bảng hoặc khung  :là tên của bảng hoặc khung  ­Tên bảng nhìn. nhìn. ­ Bí danh: là tên viết tắt của tên bảng. : là tên viết tắt của tên bảng. ­ Bí danh ­GROUP BY dùng để nhóm các bản ghi  ­GROUP BY dùng để nhóm các bản ghi  có cùng giá trị trong danh sách tên cột  có cùng giá trị trong danh sách tên cột  thành một nhóm. thành một nhóm. ­ HAVING dùng để lọc các nhóm thỏa mãn  ­ HAVING dùng để lọc các nhóm thỏa mãn  điều kiện lựa chọn. điều kiện lựa chọn. ­ORDER BY: qui định thứ tự các bản ghi  ­ORDER BY: qui định thứ tự các bản ghi  trong kết quả trả ra.  trong kết quả trả ra.

Câu h i tr c nghi m Câu h i tr c nghi m

ỏ ắ ỏ ắ

ệ ệ

1.Hệ quản trị CSDL Access cho phép bạn  1.Hệ quản trị CSDL Access cho phép bạn  xây dựng CSDL dựa trên mô hình dữ liệu  xây dựng CSDL dựa trên mô hình dữ liệu  nào? nào?      a.  a.       b.  b.       c.  c.

Mô hình dữ liệu mạng  Mô hình dữ liệu mạng  Mô hình dữ liệu phân cấp  Mô hình dữ liệu phân cấp  Mô hình dữ liệu quan hệ   Mô hình dữ liệu quan hệ

2.Một CSDL trong hệ quản trị Access bao  2.Một CSDL trong hệ quản trị Access bao

gồm các đối tượng nào? gồm các đối tượng nào?    a.   Bảng, Báo cáo, Truy vấn a.   Bảng, Báo cáo, Truy vấn b. Macro,Trang truy cập dữ liệu, Module,  b. Macro,Trang truy cập dữ liệu, Module,  Bảng, Truy vấn, Báo cáo, Biểu mẫu. Bảng, Truy vấn, Báo cáo, Biểu mẫu.    c.   Mẫu biểu, Bảng, Macro, Truy vấn c.   Mẫu biểu, Bảng, Macro, Truy vấn    d.   Module, Truy vấn, báo cáo, CSDL,  d.   Module, Truy vấn, báo cáo, CSDL,  Macro, Trang truy cập dữ liệu, Mẫu biểu Macro, Trang truy cập dữ liệu, Mẫu biểu

3.Để có kết quả tổng hợp như hình dưới đây  3.Để có kết quả tổng hợp như hình dưới đây  khi thực hiện Query, ta phải thiết kế loại  khi thực hiện Query, ta phải thiết kế loại  Query nào? Query nào?

Hoten Bia Nuoc ngot ruou

Hoang thi Lan 500000 600000 400000

Delete Query – Delete Query Appen Query – Appen Query Parameter Query – Parameter Query Crostab Query   – Crostab Query

Le huynh hoa 750000 250000 300000

 Khi kích vào biểu tượng   trên thanh  Khi kích vào biểu tượng   trên thanh  công cụ, trên khung lưới của Query xuất  công cụ, trên khung lưới của Query xuất  hiện dòng nào? hiện dòng nào? Delete – Delete Append To – Append To Total – Total Update To – Update To

 Khi thực hiện loại Query nào thì xuất hiện  Khi thực hiện loại Query nào thì xuất hiện  hộp thoại yêu cầu nhập liệu: hộp thoại yêu cầu nhập liệu:    Select Query – Select Query Append Query – Append Query Parameter Query – Parameter Query Delete Query   – Delete Query