bÀi tẬp sql

10
BÀI TẬP SQL Cho các lược đồ quan hệ Quản lý lương nhân viên của một công ty phần mềm như sau: Bophan(MaBP , TenBP) Chucvu(MaCV , TenCV) Nhanvien(MaNV , HoNV, TenNV, Luong, Phai, NgaySinh, MaCV, MaBP) Table ChucVu MACV TENCV AP Phụ tá cho lập trình viên MGR Trưởng phòng P Lập trình viên SA Phân tích viên hệ thống SP Lập trình viên cao cấp SSA Phân tích viên hệ thống cao cấp Bài tập SQL – ThS. Lương Thị Ngọc Khánh – Khoa CNTT – ĐH Tôn Đức Thắng - 2011 1

Upload: hust-edu

Post on 28-Jan-2023

9 views

Category:

Documents


0 download

TRANSCRIPT

BÀI TẬP SQL

Cho các lược đồ quan hệ Quản lý lương nhân viên của một công ty phần mềm như

sau:

Bophan(MaBP, TenBP)

Chucvu(MaCV, TenCV)

Nhanvien(MaNV, HoNV, TenNV, Luong, Phai, NgaySinh, MaCV,

MaBP)

Table ChucVu

MACV TENCVAP Phụ tá cho lập trình viênMGR Trưởng phòngP Lập trình viênSA Phân tích viên hệ thốngSP Lập trình viên cao cấpSSA Phân tích viên hệ thống cao cấp

Bài tập SQL – ThS. Lương Thị Ngọc Khánh – Khoa CNTT – ĐH Tôn Đức Thắng - 20111

Table Bophan

MABP TENBPACCT Kế toánBUDG Thủ quỹPERS Nhân sựTable: NhanvienMANV HONV TENNV LUONG PHAI NGAYSINH MACV MABP

12000 Từ Thổn Thức 54000 0 7/7/1980 MGR ACCT12345 Trần Văn Tẻo 32000 0 8/11/1974 SA BUDG23456 Lê Lưu Luyến 35500 1 2/13/1975 SSA BUDG32456 Nguyễn Văn Hậu 28000 0 11/1/1977 SP BUDG43000 Trần Thanh Thanh 51000 1 2/19/1967 MGR PERS43214 Thái Văn Thoại 28500 0 2/15/1978 SP PERS43223 Lý Văn Nghĩa 30000 0 12/9/1969 SSA PERS45000 Phạm Văn Nhanh 56000 0 8/16/1977 MGR BUDG53211 Trần Thị Thảo 27500 1 9/14/1975 P PERS54322 Nguyễn Thị Thanh 24000 1 5/25/1976 P ACCT55678 Lê Thanh Nhân 27000 0 11/9/1975 AP ACCT58971 Lê Đông Quang 35000 0 2/5/1980 SP PERS59800 Lâm Nhân Nghĩa 35000 0 8/15/1982 P ACCT60311 Châu Thị Mai 32000 1 11/2/1977 P BUDG61110 Lương Khánh Đạt 27000 0 5/3/1978 P PERS64905 Trần Thiện Thanh Tùng 28700 0 6/6/1979 SA PERS65470 Châu Quốc Toản 35500 0 5/17/1982 P BUDG65789 Quách Nhân Chương 22000 0 9/5/1980 AP ACCT65879 Từ Thanh Nhàn 29800 0 4/25/1978 P ACCT67890 Lê Thanh Hải Em 36000 0 9/9/1970 P BUDG68790 Lương Thanh Bích 30200 1 9/9/1976 P ACCTYêu cầu:

1. Tạo Cơ sở dữ liệu tên là QLNV

2. Tạo các table: Bophan, Chucvu, Nhanvien và thiết đặt khóa chính cho

các table như mô tả trên.

3. Tạo Diagram cho cơ sở dữ liệu trên.Bài tập SQL – ThS. Lương Thị Ngọc Khánh – Khoa CNTT – ĐH Tôn Đức Thắng - 2011

2

4. Nhập dữ liệu cho các table trên (chú ý đúng thứ tự: Table Bophan,

Chucvu, Nhanvien).

5. Xuất dữ liệu của các Table trên sang file QLNV.xls (file Excel).

6. Xuất dữ liệu của các table trên sang file QLNV.mdb (file Access).

7. Tạo một cơ sở dữ liệu mới tên là QLNV1.

8. Import dữ liệu từ file QLNV.mdb vừa tạo tên.

9. Thiết đặt lại khóa chính và kiểu dữ liệu của một số trường cho phù hợp.

10. Thực hiện thao tác Backup và Restore trên cơ sở dữ liệu QLNV.

Bài 2:

Giúp sinh viên làm quen với việc thao tác trên cơ sở dữ liệu bằng các

câu lệnh SQL đơn giản, các câu truy vấn lồng nhau và sử dụng các hàm kết

tập, gộp nhóm, sắp xếp kết quả truy vấn.

Dùng ngôn ngữ SQL thực hiện các công việc sau:

1. Tạo bảng NHANVIEN1 với cấu trúc như trên.

2. Tạo bảng BOPHAN1 với cấu trúc giống như trên.

3. Tạo bảng CHUCVU1 với cấu trúc giống như trên.

4. Tìm tất cả các nữ nhân viên có lương trên 30000 USD.

5. Liệt kê tất cả các trưởng phòng.

6. Liệt kê tất cả các nam lập trình viên thuộc phòng kế toán.

7. Tìm những nhân viên có tuổi nhỏ hơn 25.

8. Tìm tất cả các lập trình viên và phụ tá lập trình viên.

9. Liệt kê tất cả các nam nhân viên có tuổi từ 30 – 40.Bài tập SQL – ThS. Lương Thị Ngọc Khánh – Khoa CNTT – ĐH Tôn Đức Thắng - 2011

3

10. Liệt kê những lập trình viên của phòng nhân sự.

11. Liệt kê những nhân viên không thuộc bộ phận kế toán.

12. Liệt kê tất cả các nữ nhân viên sắp xếp tăng dần theo lương.

13. Cho biết lương trung bình của tất cả các nhân viên.

14. Cho biết số lượng các chức vụ.

15. Liệt kê mức lương thấp nhất, lương cao nhất và trung bình lương theo

từng phòng.

16. Liệt kê các chức vụ có nữ nhiều hơn 3 người.

17. Tăng 10% cho tất cả các nhân viên thuộc bộ phận nhân sự.

18. Tìm lương trung bình của các nhân viên sinh vào tháng 6.

19. Liệt kê lương cao nhất, thấp nhất và tổng lương theo chức vụ.

20. Liệt kê các phòng có ít hơn 7 nhân viên và in ra số lượng nhân viên tương

ứng.

21. Liệt kê trung bình lương của tất cả các nhân viên thuộc bộ phận Nhân sự

và có tuổi nhỏ hơn 36.

22. Tìm những nhân viên có lương cao hơn trung bình lương của bộ phận mà

họ trực thuộc.

23. Liệt kê tất cả các nam nhân viên có lương cao hơn trung bình lương của

nữ nhân viên, in ra mức lương tương ứng.

24. Liệt kê tất cả các trưởng phòng và các phòng tương ứng.

25. Tăng 9% lương cho tất cả các nhân viên không phải là SA hoặc SSA

26. Liệt kê tất cả các nhân viên với tên chức vụ và tên phòng.

Bài tập SQL – ThS. Lương Thị Ngọc Khánh – Khoa CNTT – ĐH Tôn Đức Thắng - 20114

27. Tuyển thêm lập trình viên mới với lương khởi điểm là 20000 vào bộ phận

nhân sự, thông tin nhân viên: mã NV: 66123, họ tên: Hồ Thanh Xuân, phái:

Nữ, ngày sinh: 18/12/1982.

28. Tăng 5% cho nhân viên vừa tuyển.

29. Tìm trung bình lương của tất cả các chức vụ. Danh sách này phải có cả

tên chức vụ và tên phòng.

30. Tìm nhân viên có lương cao nhất và không phải trưởng phòng.

31. Tìm những phòng có số lượng nhân viên nhiều nhất.

32. Tìm những nhân viên thuộc các phòng có trung bình lương cao nhất.

33. Tìm nhân viên có tuổi lơn nhất, nhỏ nhất theo từng bộ phận.

34. Cho biết trung bình lương của mỗi phòng của tất cả các nhân viên không

phải là trưởng phòng và không dưới 30 tuổi.

Bài 3:

Giúp sinh viên làm quen với việc thao tác trên cơ sở dữ liệu bằng các

câu lệnh SQL đơn giản, các câu truy vấn lồng nhau và sử dụng các hàm kết

tập, gộp nhóm, sắp xếp kết quả truy vấn.

GiaovienMaGV HoGV TenGV DChi HocviGV001Vũ Đức Phúc Cần Thơ Cử nhânGV002Trần Thái An Bạc Liêu Tiến SĩGV003Lý Quốc Bình Đồng Tháp Thạc sĩGV004Vũ Thị Ngọc Trân Đồng Tháp Cử nhânGV005Lê Phú Quí Tiền Giang Thạc sĩ

Bài tập SQL – ThS. Lương Thị Ngọc Khánh – Khoa CNTT – ĐH Tôn Đức Thắng - 20115

GiaovienMaGV HoGV TenGV DChi HocviGV006Nguyễn Quốc Cường Cần Thơ Tiến sĩGV007Hà Phương Đông Vĩnh Long Thạc sĩ

SinhvienMaSV HoSV TenSV NgSinh DChi Lop

SV001Hồ Văn Quang 5/15/1984Đồng Tháp TH3ASV002Nguyễn Văn Thành 2/18/1983Vĩnh Long 28K10SV003Lê Phong Ba 8/25/1982Tiền Giang 27K10SV004Hà Thị Tí 3/29/1984Cà Mau TH3ASV005Trần Ngọc Phụng 10/8/1983Cần Thơ 28K10SV006Lê Phong Bích Nguyệt 7/12/1983Đồng Tháp TH3ASV007Lý Thị Ngọc Điệp 6/19/1984Trà Vinh TIN06SV008Nguyễn Đức Tài 1/17/1984Vĩnh Long TIN06SV009Thái Bình An 9/25/1983Đồng Tháp 28K10SV010Lê Đức Anh Khoa 4/18/1985Cà Mau TH4ASV011Trần Thi Cử 2/17/1986Đồng Tháp TH5ASV012Hồ Thị Út Em 5/19/1985Tiền Giang TH5ASV013Thái Thị bách Hoa 4/12/1984Bạc Liêu TIN06

MonhocMaMH TenMH DVHT

TH301 Kỹ thuật lập trình C 4TH302 Cấu trúc dữ liệu & Giải thuật 5TH303 Toán rời rạc 4TH304 Cơ sở dữ liệu 5TH305 Lập trình hướng đối tượng 4TH306 Mạng máy tính 3TH307 Phân tích và Thiết kế hệ thống 4TH308 Lập trình Internet 4TH309 Kiến trúc máy tính 2TH310 Cơ sở dữ liệu nâng cao 4Bài tập SQL – ThS. Lương Thị Ngọc Khánh – Khoa CNTT – ĐH Tôn Đức Thắng - 2011

6

Bài tập SQL – ThS. Lương Thị Ngọc Khánh – Khoa CNTT – ĐH Tôn Đức Thắng - 20117

HocMaSV MaMH MaGV HK NK Lanthi KQSV001TH301 GV001 12005-2006 1 6SV001TH302 GV001 12005-2006 1 4SV001TH302 GV001 12005-2006 2 7SV001TH303 GV002 22006-2007 1 8SV001TH304 GV002 22006-2007 1 9.5SV002TH304 GV002 22006-2007 1 10SV002TH305 GV003 22006-2007 1 6.5SV002TH309 GV007 22006-2007 1 8.5SV003TH304 GV002 22006-2007 1 5SV003TH305 GV003 12005-2006 1 6SV004TH304 GV002 22005-2006 1 7SV004TH305 GV003 12005-2006 1 8.5SV005TH305 GV003 12005-2006 1 7.5SV005TH308 GV005 22006-2007 1 6.5SV006TH307 GV004 22006-2007 1 8SV006TH308 GV005 12006-2007 1 9SV007TH307 GV001 22006-2007 1 10SV007TH308 GV006 12006-2007 1 9.5SV008TH307 GV004 22006-2007 1 10SV008TH309 GV007 22005-2006 1 7SV008TH309 GV007 22005-2006 2 8SV009TH307 GV002 22005-2006 1 7SV009TH309 GV001 22005-2006 1 3.5SV013TH302 GV002 22005-2006 1 4.5SV007TH302 GV004 22006-2007 1 3SV009TH309 GV001 22005-2006 2 5SV013TH302 GV002 22005-2006 2 5

CÂU HỎI:

1. In ra mã số, họ tên của các sinh viên có địa chỉ ở Đồng Tháp

Bài tập SQL – ThS. Lương Thị Ngọc Khánh – Khoa CNTT – ĐH Tôn Đức Thắng - 20118

2. In ra thông tin gồm mã số và tên các môn học có số đơn vị học trình từ 3

trở lên

3. In ra thông tin các sinh viên học các môn do các giáo viên ở Cần Thơ

giảng dạy

4. In ra danh sách các sinh viên thi lần 2 ở năm học 2006-2007

5. Cộng thêm 1 điểm cho các sinh viên thi lần 1 ở học kỳ 1, năm học 2006-

2007

6. Tăng số đơn vị học trình của môn TH308 lên 1

7. Thêm môn học mới “TH311”, “Trí tuệ nhân tạo”, 3 đvht vào bảng môn

học

8. In ra thông tin các môn học không được giảng dạy vào học ky 2 năm học

2006-2007

9. In ra các môn học vừa được học bởi các sinh viên lớp TH3A và lớp TH4A

10.In ra thông tin các môn học theo từng học kỳ niên khoá (những môn trùng

nhau chỉ giữ lại 1).

11.In ra các sinh viên không phải thi lần 2 ở năm học 2006-2007.

12.In ra thông tin các môn học có tổng số lần học của các sinh viên là nhiều

nhất và in ra tổng số lần học tương ứng.

13.In ra các sinh viên có điểm thi lớn nhất theo từng lớp, theo từng môn.

14.In ra trung số lượng môn học của mỗi sinh viên theo từng học kỳ, niên

khoá

15.Cho biết sinh viên nào học nhiều môn nhất ở năm học 2006-2007, in ra số

lượng học môn cụ thể

16.In thông tin của các sinh viên chưa từng học các môn mà giáo viên Vũ

Đức Phúc đã giảng dạy.Bài tập SQL – ThS. Lương Thị Ngọc Khánh – Khoa CNTT – ĐH Tôn Đức Thắng - 2011

9

17.In ra thông tin của giáo viên dạy nhiều sinh viên nhất

18.In ra thông tin của môn học có nhiều sinh viên không phải thi lại nhiều

nhất.

19.In ra điểm trung bình theo từng học kỳ niên khoá của mỗi sinh viên và cho

biết sinh viên có điểm trung bình lớn nhất theo từng học kỳ niên khoá.

In ra danh sách các sinh viên đạt điều kiện xét học bổng của mỗi học kỳ niên

khoá.

Bài tập SQL – ThS. Lương Thị Ngọc Khánh – Khoa CNTT – ĐH Tôn Đức Thắng - 201110