Bài giảng Truy vấn trong Access - Trần Văn Nghi

Đặc điểm

Cửa sổ thao tác

Phân loại

Các bước chuẩn bị

Tạo truy vấn

 

ppt54 trang | Chia sẻ: hienduc166 | Lượt xem: 449 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Truy vấn trong Access - Trần Văn Nghi, để xem tài liệu hoàn chỉnh bạn click vào nút TẢI VỀ ở trên
p thứ tự các Record theo DLcột:	 Sort = Ascending / DescendingEx: Hiển thị danh sách sinh viên của các khoa5.1 qbe – select Q. chọn cộtEx: Hiển thị danh sách sinh viên của các khoa5.1 QBE – select q chọn dòng 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ọc5.1 QBE – select q chọn dòng Ex: Hiển thị điểm CSDL và ACCB của SV tin học5.1 Hàm & toán tử điều kiện Các hàm thao tác trên DL kiểu TEXT: s = Field char	UCASE(s), LCASE(s), LEN(s), LEFT(s,n), RIGHT(s,n), MID(s,n,x)  Hàm IIF(đk, kq nếu đk đúng, kq nếu đk sai)	Toán tử so sánh kiểu CHAR: 	LIKE (so khớp), & (nối chuỗi)	LIKE “?x”, LIKE “*x”, LIKE “x*”, LIKE “*x*”	(với SQL chuẩn ký tự đại diện: ? = _ ,* = % , & =|| )Các hàm thao tác trên kiểu NUMBER: n = Field number	ROUND(n,vị trí làm tròn), MOD(n,số chia), INT(n)Các hàm thao tác trên DL kiểu DATE: d = Field date	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 NULL5.1 QBE – hàm & tt điều kiện Hiển thị danh sách SV khoa Tin Học sinh trong thập niên 90 5.2 QBE – thống kê toàn phần1. 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 Totals = 	 Chỉ định hàm thống kê thích ứng cho cột	 Không dùng Group By cho bất kỳ cột nào 4. Thiết kế điều kiện trước thống kê nếu có:	 Tại cột đặt biểu thức điều kiện cần chỉ định 	 Total = WhereEx: 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 ACCB5.2 QBE – thống kê toàn phầnEx: 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 ACCB5.2 QBE – thống kê nhóm DL 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 đạt5.2 QBE – thống kê nhóm DL 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 đạt5.3 qbe – crosstab query1. 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àyEx: 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 sinh5.3 qbe – crosstab queryEx: 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 sinh5.4 qBE – sub queryThường dùng để tạo tập trị cho biểu thức điều kiện: 	 = 	(Select From Where )	Các toán tử lấy giá trị:	IN (SELECT ) , 	NOT IN (SELECT )	> ALL (SELECT ) ,	.,.,.Tạo điều kiện cho cột b:	(điều kiện cho . ) = m	(điều kiện cho . ) = nHiển thị các SV cùng có cả 2 điểm ACCB và CSDL5.5 qbe – duplicate queryHiển thị các SV cùng có cả 2 điểm ACCB và CSDL5.6 qbe – unmatch queryTruy 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ệuTạo điều kiện cho cột cung cấp quan hệ:	NOT IN (Select 	 From 	 Where = [ Nhập trị cần kiểm tra: ] 	 = + [ Nhập trị so sánh: ] 6. tạo truy vấn bằng sqlCú pháp cơ bản:	SELECT , AS , 	FROM	 [],  	WHERE 	 AND 	[ GROUP BY ,  ]	[ HAVING ,  ]	[ ORDER BY 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 = 	Biểu thức =  / 	Biểu thức = (tên cột)6.1 SqL – select Q. chọn cộtEx: Hiển thị danh sách sinh viên của các khoaSQL: hiển thị danh sach SV tại các khoaSELECT MaSV , HoTenSV, TenKhoaFROM HOSOSV H, DMLOP L, DMKHOA KWHERE H.MaLop = L.MaLopAND L.MaKhoa= K.MaKhoaORDER BY TenKhoa;6.1 SqL – select Q Chọn dòng	SQL: hiển thị các SV Tin Học sinh trong thập niên 90 tại các KhoaSELECT MaSV , HoTenSV, TenKhoaFROM HOSOSV H, DMLOP L, DMKHOA KWHERE H.MaLop = L.MaLopAND L.MaKhoa= K.MaKhoaAND K.TenKhoa=“Tin Học”AND Year(NgaySinh) between 1990 and 1999ORDER BY TenKhoa;6.2 SqL – thống kê toàn phần	SELECT (tên cột) AS ,	 (biểu thức) AS 	FROM	 [ [BD]	WHERE 	 AND  ; 	Điều kiện : 		SQL: hiển thị tổng số SV có điểm đạt của môn ACCBSELECT Count(MaSV) as SoSVDatACCB FROM DIEMMHWHERE MaMH=“ACCB”AND Diem>=5;SQL: hiển thị điểm có hệ số lớn nhất của khóa họcSELECT Max(Diem*HeSo) as DiemHSMax FROM DMMonHoc M, DIEMMH DWHERE M.MaMH=D.MaMH ;6.2 SqL – thống kê nhóm dl	SELECT , 	 (tên cột) AS 	FROM	 [ [BD]	WHERE 	 AND  	GROUP BY ,  	HAVING 	 ; 	Điều kiện : 			6.2 SqL – thống kê nhóm dl	SQL: hiển thị số SV có điểm đạt môn CSTH của mỗi khoaSELECT TenKhoa, Count(MaSV) as SoSVDatCSTH FROM HoSoSV H, DIEMMH D, DMLOP L, DMKHOA K WHERE H.MaSV=D.MaSVAND H.MaLop=L.MaLopAND L.MaKhoa=K.MaKhoaAND MaMH=“CSTH”AND Diem>=5GROUP BY TenKhoa ;6.2 SqL – thống kê nhóm dl	SQL: hiển thị các môn học có số SV có điểm đạt từ 20 sinh viên trở lênSELECT MaMH, Count(MaSV) as SoSVDat FROM DIEMMHWHERE Diem >=5 GROUP BY MaMHHAVING Count(MaSV)>=20;6.3 sql – crosstab query	TRANSFORM (tên cột TK) as X	SELECT	,	FROM	 [BD1], [BD2]	WHERE	=	AND	GROUP BY	PIVOT	 ;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 sinh6.3 sql – crosstab querySQL: hiển thị số SV đạt theo lớp và theo môn họcTRANSFORM 	Count(H.MaSV) as XSELECT 	MaLop FROM 	HoSoSV H, DIEMMH D WHERE 	H.MaSV=D.MaSVAND 	Diem>=5GROUP BY 	MaLopPIVOT	 	MaMH;6.3 sql – crosstab querySQL: hiển thị số SV theo lớp, khoa và theo năm sinhTRANSFORM Count(H.MaSV)SELECT 	L.MaLop, K.TenKhoa FROM 	HOSOSV H, DMLOP L, DMKHOA KWHERE 	H.MaLop=L.MaLopAND	L.MaKhoa=K.MaKhoaGROUP BY 	L.MaLop, L.TenKhoaPIVOT	Year(NgaySinh);6.4 SqL – sub queryHiển thị điểm các SV có hộ khẩu tại Tp.HCMSelect MaSV, MaMH, Diem From DIEMMHWhere MaSV IN (Select MaSV From HOSOSV Where HoKhau Like “*HCM”);6.4 SqL – sub queryNVIEN (CMND,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ânSelect HoTen From NVIEN N Where Exists(Select * From THANNHAN T Where N.CMND=T.CMNDNV)And Exists(Select * From PBAN P Where N.CMND=P.CMNDTrP ); 6.5 sql – duplicate queryTruy 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., X. as T1, 	Y. as T2	FROM	 X , Y 	WHERE	X = Y	AND	X.=m 	AND 	Y.=n ;SQL: hiển thị các SV đều có điểm đạt cả 2 môn ACCB và CSDLSELECT 	X.MaSV, X.Diem as DiemACCB, 	Y.DIEM as DiemCSDLFROM 	DIEMMH X, DIEMMH YWHERE 	X.MaSV=Y.MaSVAND 	X.MaMH="ACCB"AND 	Y.MaMH="CSDL"AND 	X.Diem>=5AND 	Y.Diem>=5;6.6 sql – unmatch queryTruy 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.,, 	FROM	 X , Y 	WHERE	X = Y	AND	X. AND  	AND 	X. NOT IN 	(Select 	From 	Where )	;6.6 sql – unmatch querySQL: 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 DWHERE 	H.MaSV=D.MaSVAND	H.MaSV Like “??QT*”AND 	H.MaSV NOT IN 	(SELECT MaSV FROM DIEMMH WHERE 	MaMH=“ACCB”);6.6 sql – unmatch querySQL: hiển thị các SV chưa có điểm môn nào cả SELECT 	MaSV, HoTenSV, MaLop FROM 	HOSOSVWHERE 	MaSV NOT IN 	(SELECT MaSV FROM DIEMMH);6.7 sql – union queryTruy 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. 	SELECT 	X.	, ”” as , 	FROM	UNION	SELECT	“”	, Y.,	FROM 	 ; 6.7 sql – union query	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 HOADONUNIONSELECT “” ,	 SoPT,	NgayPT, 	 SoTienPT,	MaKH FROM PHIEUTHU;6.8 sql – action queryTruy vấn Action: 	Dùng để tạo ra sự thay đổi dữ liệu trên bảng. Bao gồm:Cập nhật Record :	UPDATE 	SET =, = , 	[WHERE  ];	Update DIEMMH Set Diem=Diem+1 	Where MaMH=“ACCB” And MaSV Like “??TH*”;Xóa Record :	DELETE FROM 	[WHERE  ];	Delete From DIEMMH 	Where MaMH=“ACCB” And MaSV Like “??TH*”;Tạo bảng :	 	CREATE TABLE (, ,)	AS SELECT  FROM  WHERE ;	Create Table DIEMACCB MaSV, DiemACCB As	Select MaSV,Diem From DIEMMH Where MaMH=“ACCB” 6.8 sql – action queryThêm dữ liệu vào cuối bảng : 	INSER INTO 	 ( , ,  )	SELECT , . 	FROM ,.	WHERE AND  ;	Inser Into SVTPHCM MaSV, HoTenSV, Nu, HoKhau	Select MaSV, HoTenSV, Nu, HoKhau	From HoSoSV 	Where HoKhau Like “*HCM”;6.9 sql – parameter queryTruy 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à:	 = [ Nhập trị cần kiểm tra: ] 	 = + [ Nhập trị so sánh: ] 	Hiển thị Họ tên SV của môn học X có điểm >=n với X và n nhập từ bàn phím khi chạy QuerySELECT H.MaSV, HoTenSV, DiemFROM HoSoSV H, DiemMH DWHERE H.MaSV=D.MaSVAND MaMH=[Nhập mã môn học cần xem: ]AND Diem>=[Nhập diểm nhỏ nhất cần xem: ];

File đính kèm:

  • pptBai Giang Query Eccess 2003.ppt