1. Trang chủ
  2. » Giáo án - Bài giảng

Bài Giảng Query Eccess 2003

54 268 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 54
Dung lượng 14,34 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

 Trước khi tạo truy vấn cần trả lời các câu hỏi: Dữ liệu cần hiển thị là của: Field nào?.  Dữ liệu cần hiển thị có là kết quả của phép tính trên các Field không?.  Dữ liệu cần hiển

Trang 1

Gv Trần Văn Nghi

Trang 2

Cơ sơ dữ liệu mức Logic: Lược đồ CSDL :

HoSoSV (MaSV,HotenSV,MaLop,Nu,NgaySinh,HoKhau) MonHoc (MaMH, TenMh, SoTiet)

Trang 4

BT

Trang 5

Cho phép nối kết dữ liệu tại nhiều bảng theo đúng

yêu cầu mà ta quan tâm.

Cho phép lọc ra các dữ liệu thỏa mãn đúng các

điều kiện mà ta cần xem xét.

Tạo được phép tính trên các Field và phép thống

kê trên các Record

Cho phép lọc ra các dữ liệu thật sự có mặt tại thời

điểm đang xét

Cho phép thực hiện tự động cập nhật dữ liệu lên

bảng đúng như yêu cầu.

BT

Trang 7

1 Truy vấn chọn lựa dữ liệu (Select Query)

Chọn lựa Không điều kiện (chọn lựa cột)

Chọn lựa Có điều kiện (chọn lựa dòng)

2 Truy vấn thống kê dữ liệu (Total Query)

Thống kê dữ liệu toàn phần

Thống kê dữ liệu theo nhóm

theodòng/cột)

4 Truy vấn con (Sub Query)

5 Truy vấn DL đồng thời (Duplicate Query)

6 Truy vấn DL không có liên kết (Unmatch Q.)

7 Truy vấn nối kết bảng (Union Query)

8 Truy vấn hành động (Action Query)

9 Truy vấn có tham số (Parameter Query)

Trang 8

Trước khi tạo truy vấn cần trả lời các câu hỏi:

Dữ liệu cần hiển thị là của: Field nào? Bảng nào?

Để chọn bảng và Add Field khi tạo Query.

Dữ liệu cần hiển thị có là kết quả của phép tính trên

các Field không? Nếu có thì phép tính đó là gì? Sử dụng hàm nào? Để thực hiện thiết kế cột dữ liệu.

Dữ liệu cần hiển thị tại thời điểm đang xét đã có

hay chưa? Nếu chưa có thì phải tạo Query để làm nguồn cung cấp dữ liệu chưa biết này.

Dữ liệu cần hiển thị có là kết quả của phép thống

kê hay không? Nếu có thì phải sử dụng hàm gì để tạo ra dữ liệu thống kê này Có thực hiện nhóm dữ liệu không ? Nếu có thì nhóm ở Field nào?

Trang 9

Trước khi tạo truy vấn cần trả lời các câu hỏi:

Dữ liệu cần hiển thị là của: Field nào? Bảng nào?

Để chọn bảng và Add Field khi tạo Query.

Dữ liệu cần hiển thị có là kết quả của phép tính trên

các Field không? Nếu có thì phép tính đó là gì? Sử dụng hàm nào? Để thực hiện thiết kế cột dữ liệu.

Dữ liệu cần hiển thị tại thời điểm đang xét đã có

hay chưa? Nếu chưa có thì phải tạo Query để làm nguồn cung cấp dữ liệu chưa biết này.

Dữ liệu cần hiển thị có là kết quả của phép thống

kê hay không? Nếu có thì phải sử dụng hàm gì để tạo ra dữ liệu thống kê này Có thực hiện nhóm dữ liệu không ? Nếu có thì nhóm ở Field nào?

Hiển thị các sinh viên có điểm CSDL lớn nhất: QBE

Thông tin cần hiển thị: MaSV, HoTenSV, DienCSDLMax

Hiện tại chưa có điểm lớn nhất của môn CSDL

=>Tìm điểm lớn nhất của môn CSDL : Q1

Q1 Bảng: DiemMH

Field: MaMH , DiemCSDLMax: Diem

Điều kiện: MaMH=CSDL, hàm thống kê = Max

Chỉ định nhóm DL : MaMH = Group By, Diem=Max

Q2 Bảng: HoSoSV, DiemMH, Q1 (liên kết = Diem)

Field: MaSV, HoTenSV, MaMH, DiemCSDLMax

Điều kiện: DiemMH.MaMH=CSDL

Hiển thị các sinh viên có điểm CSDL lớn nhất: SubQuery Thông tin cần hiển thị: MaSV, HoTenSV, DienCSDLMax

Bảng: HoSoSV, DiemMH

Field: MaSV, HoTenSV, DiemCSDLMax: Diem

Điều kiện:

MaMH=CSDL, Diem= (điểm max môn CSDL cho bởi Sub Query)

Trang 10

Thao tác tạo nguồn cung cấp dữ liệu cho Query:

1 Create query in design view

= NewDesign View

2 Xác định dữ liệu cần hiển thị :

Chọn bảng /Query => Add bảng Close

3 Kiểm tra liên kết giữa các bảng:

Nếu thiếu liên kết => thêm bảng

Tạo liên kết bổ sung hoặc chuyển đổi liên kết sang Left Join nếu cần

Ex: Hiển thị danh sách sinh viên của các khoa

Trang 11

Ex: Hiển thị danh sách sinh viên của các khoa

Trang 12

Ex: Hiển thị danh sách sinh viên của các khoa

Thiếu

Trang 13

1 Tạo nguồn cung cấp dữ liệu cho Query.

2 Tạo cột dữ liệu có tên trùng với tên Field:

Double Click tên Field trên bảng

3 Tạo tên mới cho cột:

Click Field name Tên mới: tên Field

4 Tạo dữ liệu là kết quả của phép tính Field:

Tên mới: (biểu thức tính trên các Field)

5 Chỉ định không hiển thị dữ liêu trên cột:

Show = (unckeck)

6 Chỉ định xếp thứ tự các Record theo DLcột:

Sort = Ascending / Descending

Ex: Hiển thị danh sách sinh viên của các khoa

Trang 14

Ex: Hiển thị danh sách sinh viên của các khoa

Trang 15

1 Tạo nguồn cung cấp dữ liệu cho Query.

2 Tạo cột hiển thị DL theo yêu cầu của Query.

3 Thiết kế điều kiện đặt tại dòng Criteria hoặc Or của

cột tương ứng.

Các điều kiện đặt cùng dòng cho KQ = AND

Các điều kiện đặt khác dòng cho KQ = OR

Điều kiện = giá trị

= (toán tử + biểu thức)

= (toán tử + hàm chức năng(tên cột))

= (toán tử + Sub Query) Trị chuỗi ký tự trong đk cần đặt trong “…”

Trị ngày trong đk cần đặt trong # / /….#

Ex: Hiển thị điểm CSDL và ACCB của SV tin học

Trang 16

Ex: Hiển thị điểm CSDL và ACCB của SV tin học

Trang 17

Các hàm thao tác trên DL kiểu TEXT: s = Field char

Hàm IIF(đk, kq nếu đk đúng, kq nếu đk sai)

LIKE “?x”, LIKE “*x”, LIKE “x*”, LIKE “*x*”

(với SQL chuẩn ký tự đại diện: ? = _ ,* = % , & =|| )

ROUND(n,vị trí làm tròn), MOD(n,số chia), INT(n)

MONTH(d), YEAR(d), DAY(d) , NOW(),

DATEPART(“d”, d), DATEPART(“m”, d), DATEPART(“q”, d) ,

DATEPART(“yyyy”, d) Trị ngày đặt trong #mm/dd/yy# (với SQL chuẩn trị ngày đặt trong {mm/dd/yy} )

Toán tử so sánh số và ngày: <, <=, =, >=, >, <>

BETWEEN min AND max, NOT BETWEEN min AND max

IN (giá trị, …), NOT IN (giá trị, …), IS NULL, IS NOT NULL

Trang 18

Hiển thị danh sách

SV khoa Tin Học sinh trong thập

niên 90

Trang 19

1 Tạo nguồn cung cấp dữ liệu cho Query.

2 Tạo cột hiển thị DL theo yêu cầu của Query.

3 Thiết kế chỉ định thống kê:

4 Thiết kế điều kiện trước thống kê nếu có:

Total = Where

Ex: Hiển thị điểm Max, Min và Avg toàn khóa học Hiển thị số SV có điểm đạt môn ACCB

Trang 20

Ex: Hiển thị điểm Max, Min và Avg toàn khóa học Hiển thị số SV có điểm đạt môn ACCB

Trang 21

1 Tạo nguồn cung cấp dữ liệu cho Query.

2 Tạo cột hiển thị DL theo yêu cầu của Query.

3 Thiết kế chỉ định thống kê:

Thực hiện View Total =

Chỉ định Group By cho cột nhóm dữ liệu

Chỉ định hàm thống kê cho cột tính trị TK

4 Thiết kế biểu thức điều kiện tại cột tương ứng:

Cột chứa biểu thức điều kiện trước thống kê cần chỉ định Total = Where

Cột chứa điều kiện sau thống kê cần chỉ

định Total = hàm thống kê

Ex: Hiển thị điểm Max, điểm Min của các môn học

Hiển thị môn học có trên 20 SV có điểm đạt

Trang 22

Ex: Hiển thị điểm Max, điểm Min của các môn học

Hiển thị môn học có trên 20 SV có điểm đạt

Trang 23

1 Thực hiện tạo Q.Total theo 2 thuộc tính nhóm:

Chỉ định 2 cột nhóm dữ liệu:Total=Group By

Chỉ định cột thống kê: Total = hàm thống kê

2 Thực hiện chỉ định Crosstab:

Chọn: Query Crosstab Query

Chọn Crosstab = Row Heading và Column Heading cho cột có chỉ định Group By

Chọn Crosstab = Value cho cột có chỉ định hàm thốngkê

3 Thiết kế cột chứa điều kiện trước thống kê:

Chọn Total = Where cho cột này

Ex: Hiển thị số SV đạt theo lớp và theo môn học

Hiển thị số SV theo lớp, khoa và theo năm sinh

Trang 24

Ex: Hiển thị số SV đạt theo lớp và theo môn học

Hiển thị số SV theo lớp, khoa và theo năm sinh

Trang 25

Thường dùng để tạo tập trị cho biểu thức điều kiện:

<biểu thức điều kiện> = <tên cột> <toán tử lấy giá trị> (Select <tên cột > From <tên bảng> Where <điều kiện>) Các toán tử lấy giá trị:

IN (SELECT …) , NOT IN (SELECT …)

> ALL (SELECT …) , < ALL (SELECT …) EXISTS (SELECT …) , NOT EXISTS (SELECT …) UNIQUE (SELECT …)

EXISTS (Q) = True nếu có ít nhất 1 bộ của Q.

NOT EXISTS (Q) = True nếu Q rỗng.

UNIQUE (Q) = True nếu không có bộ trùng lặp trong

Q

Trang 26

Hiển thị điểm của SV có hộ khẩu tại

Tp HCM

Trang 27

Truy vấn Duplicate:

Dùng để tìm các dòng trên bảng có cùng 1 trị tại cột a nhưng đồng thời có 2 trị khác nhau tại cột

b

(điều kiện cho <bảng 1>.<cột b> ) = m

(điều kiện cho <bảng 2>.<cột b> ) = n

Hiển thị các SV cùng có cả 2 điểm ACCB và CSDL

Trang 28

Hiển thị các SV cùng có cả 2 điểm ACCB và CSDL

Trang 29

Truy vấn Unmatch:

Dùng để tìm các dòng trên bảng cung cấp quan

hệ nhưng không có dòng nối kết tương ứng

trên bảng nhận quan hệ

Chọn và ADD bảng cung cấp quan hệ

Tạo cột hiển thị dữ liệu

Tạo điều kiện cho cột cung cấp quan hệ:

NOT IN (Select <tên cột nhận quan hệ>

From <tênbảng nhận quan hệ>

Where <điều kiện chon dòng cho BQH)

Hiển thị SV chưa có điểm môn nào cả

Trang 30

Hiển thị SV chưa có điểm môn nào cả

Trang 31

Truy vấn Action:

Dùng để tạo ra sự thay đổi dữ liệu trên bảng Bao gồm:

nhật dữ liệu trong ô Update To

Cần nhớ lệnh View = xem kết quả, lện Run tạo kết quả

Trang 32

Cần nhớ lệnh View = xem kết quả, lện Run tạo kết quả

Trang 33

Truy vấn Parameter:

Dùng để tạo truy vấn có điều kiện nhập từ bàn phím khi chạy Query Biểu thức điều kiện được thiết kế như là:

<biểu thức điều kiện> = [ Nhập trị cần kiểm tra: ]

<biểu thức điều kiện> = <toán tử> + [ Nhập trị so sánh: ]

Trang 34

[ HAVING <điều kiện sau thống kê>, … ]

[ ORDER BY <tên cột xếp thứ tự> ASC/DESC, …] ;

Có thể chỉ định:

SELECT * …; hiển thị tất cả các cột

SELECT DISTINCT … ; hiển thị các dòng khác nhau SELECT TOP n … ; hiển thị n dòng đầu tiên

Biểu thức = <tên cột> <toán tử> <tên cột>

Biểu thức = <hằng trị> <toán tử> <tên cột> /

Biểu thức = <hàm chức năng>(tên cột)

Trang 35

Ex: Hiển thị danh sách sinh viên của các khoa

SQL: hi n th danh sach SV t i các khoa : hi n th danh sach SV t i các khoa ể ể ị ị ạ ạ SELECT MaSV , HoTenSV, TenKhoa

FROM HOSOSV H, DMLOP L, DMKHOA K WHERE H.MaLop = L.MaLop

AND L.MaKhoa= K.MaKhoa

ORDER BY TenKhoa;

Trang 36

SQL: hi n th các SV Tin H c sinh trong : hi n th các SV Tin H c sinh trong ể ể ị ị ọ ọ

th p niên 90 t i các Khoa ậ ạ

SELECT MaSV , HoTenSV, TenKhoa

FROM HOSOSV H, DMLOP L, DMKHOA K

WHERE H.MaLop = L.MaLop

AND L.MaKhoa= K.MaKhoa

Trang 37

SELECT <hàm thống kê>(tên cột) AS <tên cột>,

<hàm thống kê>(biểu thức) AS <tên cột> … FROM <tên bảng> [<bí danh] , <tên bảng> [BD]

WHERE <điều kiện liên kết bảng>

AND <điều kiện trước thống kê> … ; Điều kiện : <toán tử + Tên cột>

… <toán tử + hàm chức năng(tên cột)>

SQL: hi n th t ng s SV có đi m đ t c a môn : hi n th t ng s SV có đi m đ t c a môn ể ể ị ổ ị ổ ố ố ể ể ạ ạ ủ ủ

ACCB SELECT Count(MaSV) as SoSVDatACCB

SELECT Max(Diem*HeSo) as DiemHSMax

FROM DMMonHoc M, DIEMMH D

WHERE M.MaMH=D.MaMH ;

Trang 38

SELECT <tên cột nhóm dữ liệu>, …

<hàm thống kê>(tên cột) AS <tên cột> … FROM <tên bảng> [<bí danh] , <tên bảng> [BD] WHERE <điều kiện liên kết bảng>

AND <điều kiện trước thống kê> … GROUP BY <tên cột không kèm hàm thống kê>, … HAVING <điều kiện sau thống kê> …;

Điều kiện : <toán tử + Tên cột>

… <toán tử + hàm chức năng(tên cột)>

… <toán tử + (Sub Query)>

Trang 39

SQL: hi n th s SV có đi m đ t môn CSTH c a m i : hi n th s SV có đi m đ t môn CSTH c a m i ể ể ị ố ị ố ể ể ạ ạ ủ ủ ỗ ỗ

khoa SELECT TenKhoa, Count(MaSV) as SoSVDatCSTH

FROM HoSoSV H, DIEMMH D, DMLOP L, DMKHOA K WHERE H.MaSV=D.MaSV

Trang 40

SQL: hi n th các môn h c có s SV có đi m đ t : hi n th các môn h c có s SV có đi m đ t ể ể ị ị ọ ọ ố ố ể ể ạ ạ

t 20 sinh viên tr lên ừ ở

SELECT MaMH, Count(MaSV) as SoSVDat

FROM DIEMMH

WHERE Diem >=5

GROUP BY MaMH

HAVING Count(MaSV)>=20;

Trang 41

TRANSFORM <hàm thống kê>(tên cột TK) as X

SELECT <tên cột nhóm theo dòng>,…

FROM <tên bảng> [BD1], <tên bảng> [BD2] WHERE <BD1.Field Join>=<BD2.Field Join> AND <điều kiện trước thống kê>

GROUP BY <tên cột nhóm theo dòng>

PIVOT <tên cột nhóm theo cột> ;

Ex: Hiển thị số SV đạt theo lớp và theo môn học

Hiển thị số SV theo lớp, khoa và theo năm sinh

Trang 42

SQL: hi n th s SV đ t theo l p và theo môn h c : hi n th s SV đ t theo l p và theo môn h c ể ể ị ố ị ố ạ ạ ớ ớ ọ ọ TRANSFORM Count(H.MaSV) as X

Trang 43

SQL: hi n th s SV theo l p, khoa và theo năm : hi n th s SV theo l p, khoa và theo năm ể ể ị ố ị ố ớ ớ

sinh TRANSFORM Count(H.MaSV)

SELECT L.MaLop, K.TenKhoa

FROM HOSOSV H, DMLOP L, DMKHOA K

WHERE H.MaLop=L.MaLop

AND L.MaKhoa=K.MaKhoa

GROUP BY L.MaLop, L.TenKhoa

PIVOT Year(NgaySinh);

Trang 45

NVIEN (CMND,HoTen,NgaySinh, D aChi, Phai, Luong, HoTen,NgaySinh, D aChi, Phai, Luong, ị ị

MaPB)

THANNHAN(CMNDNV, HoTenTN, DiaChiTN)

PBAN(MaPB, TenPB, CMNDTrP, NgayQDTrP)

Hi n th h tên các tr ể ị ọ ưở ng phòng có ít nh t 1 thân nhân ấ

Select HoTen From NVIEN N

Trang 46

Truy vấn Duplicate:

Dùng để tìm các dòng trên bảng có cùng 1 trị tại cột a nhưng đồng thời có 2 trị khác nhau tại cột b

SELECT X.<cột a>, X.<cột b> as T1,

Y.<cột b> as T2 FROM <tên bảng> X , <tên bảng> Y WHERE X<cột a> = Y<cột a>

AND X.<cột b>=m AND Y.<cột b>=n ;

SQL: hiển thị các SV đều có điểm đạt cả 2 môn

ACCB và CSDL SELECT X.MaSV, X.Diem as DiemACCB,

Y.DIEM as DiemCSDL FROM DIEMMH X, DIEMMH Y WHERE X.MaSV=Y.MaSV

AND X.MaMH="ACCB"

AND Y.MaMH="CSDL"

AND X.Diem>=5 AND Y.Diem>=5;

Trang 47

Truy vấn Unmatch:

Dùng để tìm các dòng trên bảng cung cấp quan hệ nhưng không có dòng nối kết tương ứng trên bảng nhận quan hệ

SELECT X.<tên cột CC quan hệ>,<tên cột>, FROM <tên bảng> X , <tên bảng> Y

WHERE X<Field Join> = Y<Field Join>

AND X.<điều kiện chọn dòng> AND … AND X.<tên cột CC quan hệ> NOT IN

(Select <cột nhận quan hệ với X>

From <bảng Z>

Where <điều kiện>) ;

Trang 48

SQL: hiển thị các SV khoa Quản Trị chưa có

điểm môn ACCB

SELECT H.MaSV, HoTenSV, MaLop

FROM HOSOSV H, DIEMMH D

WHERE H.MaSV=D.MaSV

AND H.MaSV Like “??QT*”

AND H.MaSV NOT IN

(SELECT MaSV FROM DIEMMH WHERE

MaMH=“ACCB”);

Trang 49

SQL: hiển thị các SV chưa có điểm môn nào cả

SELECT MaSV, HoTenSV, MaLop

WHERE MaSV NOT IN

(SELECT MaSV FROM DIEMMH);

Trang 50

Truy vấn Union:

Dùng để tập họp dữ liệu của 2 bảng không có kết nối cùng hiển thị trên 1 Datasheet nhưng đảm bảo dữ liệu không bị lặp

Trang 51

HOSOKH(MaKH, HoTenKH, DiaChi) HOADON(SoHD, NgayHD, SoTienHD, MaKH) PHIEUTHU(SoPT, NgayPT, SoTienPT, MaKH) SQL: hiển thị các hóa đơn và phiểu thu của các

khách hàng SELECT SoHD, “” as SoPT, NgayHD as Ngay, SoTienHD as SoTien, MaKH FROM HOADON UNION

SELECT “” , SoPT, NgayPT,

SoTienPT, MaKH FROM PHIEUTHU;

Trang 52

Truy vấn Action:

Dùng để tạo ra sự thay đổi dữ liệu trên bảng Bao gồm:

1. Cập nhật Record : UPDATE <tên bảng>

SET <tên cột 1>=<giá trị 1>, <tên cột 2> = <giá trị 2>, … [WHERE <điều kiện> … ];

Update DIEMMH Set Diem=Diem+1

Where MaMH=“ACCB” And MaSV Like “??TH*”;

2. Xóa Record : DELETE FROM <tên bảng>

[WHERE <điều kiện> … ];

Delete From DIEMMH

Where MaMH=“ACCB” And MaSV Like “??TH*”;

3. Tạo bảng :

CREATE TABLE <tên bảng> (<tên cột>, <tên cột>,…)

AS SELECT … FROM … WHERE… ;

Create Table DIEMACCB MaSV, DiemACCB As

Select MaSV,Diem From DIEMMH Where MaMH=“ACCB”

Trang 53

4. Thêm dữ liệu vào cuối bảng :

INSER INTO <tên bảng thêm dữ liệu>

( <tên cột 1 thêm vào>, <tên cột 2 thêm vào>, … ) SELECT <tên cột 1 chon dữ liệu>, …

FROM <tên bảng chọn dữ liệu>,….

WHERE <điều kiện chọn dữ liệu> AND … ;

Inser Into SVTPHCM MaSV, HoTenSV, Nu, HoKhau Select MaSV, HoTenSV, Nu, HoKhau

From HoSoSV Where HoKhau Like “*HCM”;

Ngày đăng: 17/02/2015, 10:00

HÌNH ẢNH LIÊN QUAN

Bảng đúng như yêu cầu. - Bài Giảng Query Eccess 2003
ng đúng như yêu cầu (Trang 5)
Bảng bảng Dư  Dư - Bài Giảng Query Eccess 2003
Bảng b ảng Dư Dư (Trang 12)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w