có chứa chương mà tập trung vào những ý tưởng trừu tượng về việc làm thế nào để tiếp cận một dự án phần mềm. Mỗi chương bao gồm các ví dụ thực tế về làm thế nào để nhận ra những ý tưởng. ❑ Chương 1 (Mua, không xây dựng) mô tả làm thế nào để đi
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương TRUY VẤN DỮ LIỆU (SELECT) SELECT MaDV, Avg(Luong) AS AvgOfLuong FROM NHANVIEN GROUP BY NHANVIEN.MaDV HAVING AVG(Luong)> Select Min(Luong) From NHANVIEN Where MaDV='0002') 5.8.4 Mệnh đề ORDER BY SELECT lồng Mỗi lệnh SELECT có mệnh đề ORDER By Một lệnh SELECT lồng coi lệnh SELECT Vì vậy, muốn xếp liệu mệnh để ORDER BY phải mệnh đề cuối lệnh SELECT cùng, lệnh SELECT bên khơng có ORDER BY 5.9 Các lệnh lồng liên kết Các lệnh liên kết lệnh SELECT lồng có cách thực khác lệnh lồng thông thường Các bước thực hiện: - Xét hàng bảng - Sử dụng liệu hàng để thực lệnh SELECT bên - Sử dụng kết SELECT bên để thực SELECT bên - Lặp lại bước hết hàng xét Ví dụ: Có bảng NHANVIEN NHANVIEN MaNV NV001 NV002 HoTen Phạm Thị Nhàn Hoàng Thanh Vân CongViec Thư ký Giáo viên Luong 500 600 MaDV 0001 0001 MaPT NV002 NV003 NV003 NV004 NV005 Hoàng Thị Lan Đỗ Trung Dũng Đỗ Văn Hải Giáo viên Thư ký Bảo vệ 200 700 100 0002 0003 0001 NV002 NV002 NV002 NV006 Nguyễn Nam Hải Giám đốc 1000 0001 NV007 NV008 Nguyễn Hoàng Lan Nguyễn Thanh Ngọc Giáo viên Giáo viên 500 700 0001 0002 NV006 Đưa Hoten, MaDV, Luong nhân viên có Luong> LuongTB đơn vị họ PHẦN II- NGÔN NGỮ SQL 49 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương TRUY VẤN DỮ LIỆU (SELECT) SELECT NHANVIEN.HoTen, NHANVIEN.MaDV, NHANVIEN.Luong FROM NHANVIEN WHERE ((NHANVIEN.Luong)> (Select AVG(Luong) From NHANVIEN NV1 Where NV1.MaDV= NHANVIEN.MaDV)) PHẦN II- NGÔN NGỮ SQL 50 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương THỰC HÀNH TỔNG HỢP THỰC HÀNH TỔNG HỢP - Phần thực hành thực hệ quản trị sở liệu Microsoft Aaccess - Tất thao tác phải thực ngôn ngữ SQL thông qua Query 6.1 Hướng dẫn thực hành Mỗi yêu cầu ghi vào query Các bước thao tác với Query sau: Bước 1: Mở Microsoft Access Bước 2: Tạo sở liệu (New/ Blank Database) Nhập tên sở liệu Bước 3: Tạo truy vấn (Query) - Kích chuột vào Create query in Design view - Chọn SQL - Soạn thảo câu lệnh SQL - Ghi đặt tên cho Query - Thực câu lệnh cách nhấn vào ! cơng cụ PHẦN II- NGƠN NGỮ SQL 51 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương THỰC HÀNH TỔNG HỢP - Chọn Save, nhập tên Query - Chú ý: o Tất yêu cầu thực hành thực lệnh SQL thông qua Query o Mỗi yêu cầu ghi lại Query Đặt tên Query theo tên câu hỏi Ví dụ: Cau1, Cau2,… 6.2 Bài số 1 Tạo sở liệu có tên Thuchanh Tạo bảng có tên DOCGIA, có thuộc tính sau: CREATE TABLE DOCGIA( MaDG Text(10) NOT NULL PRIMARY KEY, TenDG Text(30) NOT NULL, DiaChi Text(50) NOT NULL, Tuoi NUMBER); Thêm thuộc tính có tên Ghichu cho bảng DOCGIA ALTER TABLE DOCGIA PHẦN II- NGÔN NGỮ SQL 52 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương THỰC HÀNH TỔNG HỢP ADD COLUMN GhiChu Text(50)); Thay đổi kiểu liệu thuộc tính Ghichu thành kiểu liệu Memo ALTER TABLE DOCGIA ALTER COLUMN GhiChu Memo; Xóa thuộc tính Ghichu bảng DOCGIA ALTER TABLE DOCGIA DROP COLUMN GhiChu; Thực lệnh sau đây, lệnh cho kết nào? Nêu khác chúng Câu 1: INSERT INTO DOCGIA VALUES(‘DHTL05’,’Nguyễn Công Thành’,’Lớp 41NC’,22 ); Câu 2: INSERT INTO DOCGIA(MaDG, TenDG, DiaChi) VALUES(‘DHTL06’,’Nguyễn Phương Lan’,’Lớp 41NC’ ); Xóa ghi có MaDG= ‘DHTL01’ bảng DOCGIA DELETE FROM DOCGIA WHERE MaDG=’DHTL01’; Xóa độc giả có địa là: 41NC bảng DOCGIA DELETE FROM DOCGIA WHERE Diachi=’41NC’; Sửa địa độc giả có MaDG TD001 thành địa CVK3I UPDATE DOCGIA SET (Diachi=’CVK3I’) WHERE MaDG=’TD001’; PHẦN II- NGÔN NGỮ SQL 53 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương THỰC HÀNH TỔNG HỢP 6.3 Bài số Tạo sở liệu (CSDL) dùng để quản lý nhân viên, lấy tên CSDL QLNhanVien Cấu trúc CSDL gồm bảng với quan hệ sau: a NHANVIEN Tên thuộc tính Kiểu liệu Kích cỡ Khuôn dạng MaNV Ký tự Chữ hoa +số HoTen Ký tự 30 Congviec Ký tự 50 Luong Số MaDV Ký tự MaPT Ký tự Tên thuộc tính Kiểu liệu Kích cỡ Khn dạng MaDV Ký tự Chữ hoa +số TenDV Ký tự 50 b Chữ hoa + số (Mã người phụ trách) DONVI PHẦN II- NGÔN NGỮ SQL 54 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương THỰC HÀNH TỔNG HỢP c BACLUONG Tên thuộc tính Kiểu liệu Kích cỡ Khn dạng MaBac Ký tự 50 Chữ hoa +số BacCao Số BacThap Số Chú ý: Mỗi câu lệnh tạo bảng viết Query, đặt tên 21, 2b, 2c Thêm liệu (bằng lệnh INERT) cho bảng NHANVIEN để có kết sau: NHANVIEN MaNV HoTen CongViec Luong MaDV NV001 Phạm Thị Nhàn Thư ký 500 0001 NV002 Hoàng Thanh Vân Giáo viên 600 0001 NV003 Hoàng Thị Lan Giáo viên 200 0002 NV004 Đỗ Trung Dũng Thư ký 700 0003 Thêm liệu (bằng lệnh INERT) cho bảng DONVI để có kết sau: DONVI MaDV TenDV 0001 KHTN 0002 DHTL 0003 DHQG Thêm liệu (bằng lệnh INERT) cho bảng BACLUONG để có kết sau: BACLUONG MaBac BacThap BacCao 400 500 501 600 601 800 Dùng câu lệnh truy vấn liệu, đưa tất thông tin nhân viên Đưa Hoten, Congviec, Luong tất nhân viên PHẦN II- NGÔN NGỮ SQL 55 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương THỰC HÀNH TỔNG HỢP Đưa toàn công việc nhân viên, giá trị không trùng Đưa Hoten, LuongQuy tất nhân viên, với LuongQuy= Luong*3 10 Đưa Hoten, Luong xếp theo thứ tự tăng dần/ giảm dần Luong 11 Đưa Hoten, Luong nhân viên có Luong>300 12 Đưa Hoten, Luong nhân viên có Luong>300 làm cơng việc Giáo viên 13 Đưa nhân viên có lương 200, 300, 600 14 Đưa nhân viên có Lương khoảng 300 đến 600 15 Đưa Hoten, Congviec nhân viên có Họ tên bắt đầu chữ ‘Hồng’ 16 Đưa lương trung bình, lương lớn nhất, nhỏ tất nhân viên bảng NHANVIEN 17 Đưa Cơngviệc, Lương trung bình loại công việc 18 Đưa Côngviệc, Lương trung bình tất nhân viên có Luong>200 theo loại công việc 19 Đưa tổng lương nhóm cơng việc đơn vị 20 Đưa Congviec trung bình lương cơng việc có trung bình lương >=300 21 Đưa đơn vị lương lớn đơn vị có lương lớn >=300 22 Đưa Hoten, Congviec, TenDV tất nhân viên 23 Câu lệnh sau cho kết SELECT HoTen, CongViec, TenDV FROM NHANVIEN NV, DONVI DV WHERE NV.MaDV= DV.MaDV; 24 Đưa Hoten, Congviec, MaBac tất nhân viên 25 Đưa HoTen, Congviec, TenDV, Luong nhân viên có Luong>=500 26 Câu lệnh sau cho kết SELECT NV.MaNV, NV.Hoten, PT.MaNV, PT.Hoten FROM NHANVIEN NV, NHANVIEN PT WHERE (NV.MaNV=PT.MaPT) AND (NV.Luong>PT.Luong); 27 Đưa cơng việc đơn vị có MaDV 0001 đơn vị có MaDV 0002 PHẦN II- NGÔN NGỮ SQL 56 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương THỰC HÀNH TỔNG HỢP 28 Đưa Hoten, TenDV, Congviec, Luong người có lương lớn lương trung bình toàn nhân viên 29 Đưa nhân viên có lương lớn người có lương lớn đơn vị có tên DHTL 30 Đưa Hoten, MaDV, Luong nhân viên có Luong=Luong thấp đơn vị họ 31 Đưa Hoten, MaDV, Luong nhân viên có Luong=Luong thấp đơn vị 32 Đưa Hoten, Luong nhân viên có Luong lớn đơn vị có mã đơn vị 0002 33 Đưa MaDV, AVG(Luong) đơn vị có trung bình lương lớn lương nhỏ đơn vị có mã đơn vị 0003 PHẦN II- NGÔN NGỮ SQL 57 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương THỰC HÀNH TỔNG HỢP 6.4 Bài số Thực thao tác sau cho Cơ sở liệu dùng để quản lý cửa hàng kinh doanh I ĐỊNH NGHĨA DỮ LIỆU Tạo sở liệu Tạo sở liệu dùng để quản lý cửa hàng đặt tên QLCH bao gồm bảng có mối quan hệ sau: Cấu trúc bảng sau: KHACH Tên thuộc tính Kiểu liệu Kích cỡ Khn dạng Ma_khach Ký tự Chữ hoa +số Ten_kh Ký tự 30 Chữ đầu viết hoa Diachi_kh Ký tự 30 Chữ đầu viết hoa Tên thuộc tính Kiểu liệu Kích cỡ Khn dạng Ma_hang Ký tự Chữ hoa+số Ten_hang Ký tự 15 Chữ đầu viết hoa Mota_hang Ký tự 30 Chữ đầu viết hoa HANG PHẦN II- NGÔN NGỮ SQL 58 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương THỰC HÀNH TỔNG HỢP Don_vi Ký tự 10 Chữ thường Tên thuộc tính Kiểu liệu Kích cỡ Khuôn dạng So_don Ký tự Chữ hoa +số Ma_khach Ký tự 15 Chữ hoa +số Ngay_don Ngày Dd/mm/yy Tên thuộc tính Kiểu liệu Kích cỡ Khn dạng So_don Ký tự Chữ hoa +số Ma_hang Ký tự Chữ hoa +số So_luongd Số Số nguyên Tên thuộc tính Kiểu liệu Kích cỡ Khn dạng So_phieu Ký tự Chữ hoa +số Ma_khach Ký tự Chữ hoa +số Ngay_giao Ngày 30 Dd/mm/yy Noi_giao Ký tự 30 Tong_tien Số DONHANG DONGDON PHIEUGIAO Số thực DONGPHIEU Tên thuộc tính Kiểu liệu Kích cỡ Khn dạng So_phieu Ký tự Chữ hoa+ số Ma_hang Ký tự Chữ hoa + số Don_gia Số Số thực So_luonggi Số Số thực Sửa đổi cấu trúc: Thêm thuộc tính: - Trong bảng KHACH, thêm thuộc tính SoThich nhằm lưu vào bảng KHACH sở thích khách hàng PHẦN II- NGÔN NGỮ SQL 59 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương THỰC HÀNH TỔNG HỢP - Trong bảng HANG, thêm hai thuộc tính NoiCungCap NoiSanXuat nhằm lưu vào bảng HANG thông tin nơi cung cấp hàng hóa nơi sản xuất chúng Thay đổi kiểu thuộc tính - Trong bảng KHACH, thay đổi kiểu liệu cho trường SoThich, từ kiểu Text thành kiểu Memo - Trong bang HANG, thay đổi kiểu liệu cho trường NoiCungCap, từ kiểu Text thành kiểu Number Xóa thuộc tính - Trong bảng HANG, xóa thuộc tính NoiCungCap NoiSanXuat - Trong bảng KHACH, xóa thuộc tính SoThich II QUẢN TRỊ DỮ LIỆU Thêm giá trị vào dòng bảng - Thêm vào bảng KHACH giá trị sau: KHACH Ma_khach Ten_kh K001 Đào Minh Thư K002 Nguyễn Liên Dung K003 Phạm Hoàng Nhung - diachi_kh Đại học Quốc Gia BNC Đại học Thủy Lợi Thêm vào bảng DONHANG giá trị sau: DONHANG - so_don DH001 Ma_khach K001 ngay_don 3/22/2002 DH002 DH003 K001 K002 7/13/2003 12/24/2002 Thêm vào tất bảng, bảng số giá trị phù hợp Chú ý: Hãy thử trường hợp thêm ma_khach K0010 vào bảng DONHANG kết nào? Tại sao? Thêm giá trị cho số thuộc tính - Thêm giá trị vào bảng KHACH để giá trị sau: PHẦN II- NGÔN NGỮ SQL 60 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương THỰC HÀNH TỔNG HỢP KHACH Ma_khach Ten_kh Diachi_kh K001 Đào Minh Thư Đại học Quốc Gia K002 Nguyễn Liên Dung BNC K003 Phạm Hoàng Nhung Đại học Thủy Lợi K004 Trịnh Hồng Cường K005 Nguyễn Văn Hải Đại học Thủy Lợi - Thêm giá trị vào bảng HANG để giá trị sau: HANG ma_hang ten_hang Mota_hang don_vi H001 Hoa loa kèn Hoa trắng, to Bông H002 Hoa hồng Nhiều mau Bơng H003 Hoa lan Cành Xóa hàng - Xóa hàng có ma_hang = ‘H001’ bảng HANG - Xóa tất khách hàng có Diachi_kh = ‘Đại bảng KHACH - Xóa khách hàng có tên Trịnh Hồng Cường học Thủy Lợi ‘ Sửa đổi giá trị hàng - Sửa đổi địa khách hàng thành địa Đại học Quốc Gia với ma_khach K002 - Sửa đổi tất tên hàng “Hoa lan” thành “Hoa phong lan” mô tả hàng “Hàng nhập từ Đà Lạt” III CÁC LỆNH TRUY VẤN DỮ LIỆU Xem toàn nội dung bảng KHACH Xem toàn nội dung bảng HANG Xem toàn nội dung bảng DONHANG Đưa Tên Địa tất Khách hàng bảng KHACH Đưa Tên hàng, Mơ tả hàng Đơn vị tính tất mặt hàng bảng HANG Đưa tất đơn vị tính dùng để tính hàng hóa Đưa tất tên hàng bảng HANG Đưa tất địa khách hàng PHẦN II- NGÔN NGỮ SQL 61 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương THỰC HÀNH TỔNG HỢP Đưa so_phieu, ma_hang, don_gia, soluonggi Thành tiền (don_gia*so_luong) tất hàng bảng PHIEU_GIAO 10 Đưa so_phieu, ma_hang, don_gia, soluonggi Thành tiền (don_gia*so_luong), sử dụng bí danh la thanh_tien tất hàng bảng PHIEU_GIAO 11 Đưa tất giá trị bảng HANG theo thứ tự giảm dần ma_hang 12 Đưa tất giá trị bảng PHIEUGIAO theo thứ tự tăng dần (giảm dần) tổng tiền (tong_tien) 13 Đưa tất khách hàng có địa Đại học Quốc Gia bảng KHACH 14 Đưa So_phieu, Ma_khach bảng PHIEUGIAO với điều kiện Tong_ tien>=100.000, xếp theo điều kiện giảm dần Tong_tien 15 Đưa ten_hang, mota_hang hàng hóa có don_vi tính theo bơng bảng HANG 16 Đưa danh sách ghi bao gồm so_phieu, ma_khach, ngay_giao bảng PHIEUGIAO với điều kiện Noi_giao Hà Nội Tong_tien>50.000 17 Đưa danh sách ghi bao gồm Ma_khach, Ten_khach bảng KHACH với điều kiện địa khách Đại học Quốc Gia Đại học Thủy Lợi 18 Đưa mặt hàng bảng HANG có đơn vị tính Bơng, Cành Bó 19 Đưa danh sách khách hàng (Ma_khach, Tong _tien) nằm bảng PHIEUGIAO có Noi_giao nằm số địa điểm sau: Hà Nội, Hồ Chí Minh, Hải Phịng 20 Đưa tất thông tin bảng PHIEUGIAO với điều kiện tong_tien nằm khoảng từ 100.000 đến 500.000 21 Đưa ma_kh, ten_kh bảng KHACH khách hàng có họ Nguyễn 22 Đếm số lần mua hàng khách hàng có ma_kh K001 bảng PHIEUGIAO Thuộc tính đặt tên SoLanMua 23 Tính tổng tiền trung bình PHIEUGIAO Thuộc tính đặt tên TrungBinhPG 24 Tính tổng tiền bảng PHIEUGIAO khách hàng có ma_khach = ‘K002’ PHẦN II- NGÔN NGỮ SQL 62 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương THỰC HÀNH TỔNG HỢP 25 Tính tổng số khách hàng bảng KHACH có địa (diachi_KH) Đại học Thủy Lợi 26 Đưa ma_khach, ngay_giao, noi_giao bảng PHIEUGIAO có tong_tien tốn lớn 27 Đưa ma_khach, ngay_giao, noi_giao bảng PHIEUGIAO có tong_tien tốn nhỏ PHẦN II- NGƠN NGỮ SQL 63 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com TÀI LIỆU THAM KHẢO TÀI LIỆU THAM KHẢO Date, C.J., and Darwen, H.: A Guide to the SQL Standard, 3rd ed., AddisonWesley Tiện ích Book Online SQL Server 2000 Tiện ích Help Microsoft Access 2000 Tiện ích Help Oracle 9i Nguyễn Văn Vỵ, SQL2, NXB Thống kê Elmasri & Navathe: Fundamentals of Database Systems, International Edition PHẦN II- NGÔN NGỮ SQL 64 http://www.ebook.edu.vn ... 0003 PHẦN II- NGÔN NGỮ SQL 57 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương THỰC HÀNH TỔNG HỢP 6 .4 Bài số Thực thao tác sau cho Cơ sở liệu. .. tự MaPT Ký tự Tên thuộc tính Kiểu liệu Kích cỡ Khn dạng MaDV Ký tự Chữ hoa +số TenDV Ký tự 50 b Chữ hoa + số (Mã người phụ trách) DONVI PHẦN II- NGÔN NGỮ SQL 54 http://www.ebook.edu.vn Simpo PDF... BACLUONG MaBac BacThap BacCao 40 0 500 501 600 601 800 Dùng câu lệnh truy vấn liệu, đưa tất thông tin nhân viên Đưa Hoten, Congviec, Luong tất nhân viên PHẦN II- NGÔN NGỮ SQL 55 http://www.ebook.edu.vn