VIII.CÂU HỎI ÔN TẬP
Tất cả các câu hỏi ôn tập đều dựa vào bảng có tên EMP_1 dưới đây.
PER_NUM
|
LASTNAME
|
FIRSTNAME
|
MI
|
HIRED
|
JOB_CODE
|
287
853
778
855
750
|
Johnson
Smithfied
Alonzo
Washington
Smith
|
Alice
William
Maria
Brandon
Larry
|
K.
P.
D.
B.
W.
|
09/29/83
03/20/88
07/01/87
12/12/85
11/09/89
|
5
2
4
2
3
|
Cấu trúc bảng EMP_1 được chỉ ra dưới đây:
PER_NUM CHAR(3)
LASTNAME CHAR(12)
FIRSTNAME CHAR(10)
MI CHAR(2)
HIRED DATE
JOB_CODE CHAR(1)
Với các thông tin này, trả lời các câu hỏi dưới đây:
1. Viết mã lệnh SQL tạo cấu trúc bảng.
2. Sau khi tạo được cấu trúc bảng ở câu 1, viết mã lệnh SQL để nhập hai hàng dữ liệu vào trong bảng EMP_1.
3. Giả sử dữ liệu còn lại đã được đưa vào, viết mã lệnh SQL liệt kê tất cả các thuộc tính ứng với mã công việc 5.
4. Viết mã lệnh SQL lưu bảng EMP_1.
5. Viết mã lệnh SQL thay đổi mã công việc thành 5 cho tất cả những người có số nhân sự PER_NUM là 778.
6. Viết mã lệnh SQL xoá hàng ứng với người có tên là Wiliam P. Smithfield, được thuê vào ngày 03/20/88 và mã công việc của họ là 2.
Lưu ý: Sử dụng toán tử lôgic gộp mọi thông tin được cho trong câu hỏi này.
7. Viết mã lệnh SQL khôi phục dữ liệu về trạng thái trước đó; tức là, bảng sẽ chứa dữ liệu tồn tại trước khi bạn tạo ra sự thay đổi ở câu 5 và 6.
8. Viết mã lệnh SQL để bổ sung hai cột, BONUS_PCT và PROJ_NUM, cho bảng EMP_1. Thuộc tính BONUS_PCT là DECIMAL có hai vị trí thập phân, thuộc tính PROJ_NUM là xâu gồm tối đa hai kí tự.
9. Viết mã lệnh SQL để nhập giá trị thuộc tính BONú_PCT 3.85 ứng với người có số nhân sự PER_NUM tương ứng là 287. Giả sử rằng tất cả các mục BONUS_PCT đã được tạo ra tại thời điểm này và bảng EMP_1 hiện chứa dữ liệu như dưới đây:
PER_NUM
|
LASTNAME
|
FIRSTNAME
|
MI
|
HIRED
|
JOB_CODE
|
BONUS_PCT
|
PROJ_NUM
|
287
853
778
855
750
|
Johnson
Smithfied
Alonzo
Washington
Smith
|
Alice
William
Maria
Brandon
Larry
|
K.
P.
D.
B.
W.
|
09/29/83
03/20/88
07/01/87
12/12/85
11/09/89
|
5
2
4
2
3
|
3.85
2.00
3.75
0.00
4.52
|
|
10. Sử dụng dãy lệnh đơn, viết mã lệnh SQL đưa vào số dự án PROJ_NUM là 18 ứng với các nhân viên có loại mã công việc (JOB_CODE) là 2.
11. Sử dụng dãy lệnh đơn, viết mã lệnh SQL đưa vào số dự án (PROJ_NUM) là 25 ứng với các nhân viên có loại mã công việc (JOB_CODE) là 3 hoặc cao hơn. Khi bạn hoàn thành các câu hỏi 10 và 11, bảng EMP_1 sẽ chứa dữ liệu như dưới đây:
PER_NUM
|
LASTNAME
|
FIRSTNAME
|
MI
|
HIRED
|
JOB_CODE
|
BONUS_PCT
|
PROJ_NUM
|
287
853
778
855
750
|
Johnson
Smithfied
Alonzo
Washington
Smith
|
Alice
William
Maria
Brandon
Larry
|
K.
P.
D.
B.
W.
|
09/29/83
03/20/88
07/01/87
12/12/85
11/09/89
|
5
2
4
2
3
|
3.85
2.00
3.75
0.00
4.52
|
25
18
25
18
25
|
(Bạn có thể giả thiết rằng bảng đã được lưu lại tại thời điểm này!)
12. Viết mã lệnh SQL nhập PROJ_NUM là 14 ứng với các nhân viên được thue trước ngày 1 tháng 1 năm 1987 và có mã công việc ít nhất là 3. (Bạn có thể giả thiết rằng bảng được khôi phục về trạng thái chỉ ra trong bài tập 11.)
13. Viết dãy lệnh SQL để
a. Tạo bảng tạm thời có tên là TEMP_1, với cấu trúc gồm các thuộc tính PER_NUM và BONUS_PCT của bảng EMP_1.
b. Sao chép các giá trị EMP_1 tương ứng sang bảng TEMP_1.
14. Viết lệnh SQL xoá bảng TEMP_1 vừa tạo ra khỏi CSDL.
15. Viết mã lệnh SQL để liệt kê tất cả các nhân viên có tên cuối bắt đầu bằng ‘Smith’. Nói cách khác, các hàng ứng với cả Smith và Smithfield đều sẽ được gộp vào danh sách kết quả.
Gợi ý: Dùng kí tự thay thế.
16. Giả sử rằng CSDL của bạn cũng chứa bảng PROJECT dưới đây:
PROJ_NUM
|
PROJ_NAME
|
PROJ_MGR
|
18
25
|
Starflight
Rolling Run
|
Jane M. Gosinger
George W. Carson
|
Với thông tin đã cho, viết mã lệnh SQL đưa ra kết quả dưới đây:
PROJ_NAME
|
LASTNAME
|
FIRSTNAME
|
MI
|
JOB_CODE
|
PROJ_MGR
|
Rolling Run
Starflight
Rolling Run
Starflight
Rolling Run
|
Johnson
Smithfied
Alonzo
Washington
Smith
|
Alice
William
Maria
Brandon
Larry
|
K.
P.
D.
B.
W.
|
5
2
4
2
3
|
George W. Carson
Jane M. Gosinger
George W. Carson
Jane M. Gosinger
George W. Carson
|
Gợi ý: Bạn phải kết nối các bảng EMP_1 và PROJECT.
17. Viết mã lệnh SQL tạo ra một bảng ảo với tên REP_1, chứa thông tin giống trong câu 16.
18. Viết mã lệnh SQL tìm giá trị trung bình tỉ lệ phần trăm phần thưởng trong bảng EMP_1.
19. Viết mã lệnh SQL tạo một danh sách cho dữ liệu trong bảng EMP_1 theo thứ tự tăng dần của phần trăm phần thưởng.
20. Viết mã lệnh SQL chỉ liệt kê số dự án khác nhau có trong bảng EMP_1.
IX.BÀI TẬP
1. Tạo CSDL với tên ROBAIR chứa các bảng CHARTER, PILóT, CHAR_CUS và AIRCRAFT. (Nội dung bảng đã chỉ ra trong 2, bài tập 12.)
2. Với nội dung của bốn bảng được tạo ra trong bài tập 1, viết mã lệnh SQL để
a. Tạo danh sách dưới đây ứng với máy bay 2778V:
C_DATE
|
AC_NO
|
DEST
|
DIST
|
HR_FL
|
FUEL
|
05/26/91
05/30/91
06/01/91
01/03/91
|
2778V
2778V
2778V
2778V
|
TYS
MOB
BNA
GNV
|
644
884
320
1574
|
3.6
4.9
2.1
9.2
|
138.4
184.9
78.4
345.2
|
b. Tạo bảng ảo (đặt tên là AC2778V) chứa kết quả đưa ra trình bày ở 2a.
c. Tạo danh sách dưới đây cho máy bay 2778V:
C_DATE
|
AC_NO
|
DEST
|
AC_TYPE
|
DIST
|
HR_FL
|
FUEL
|
P_LNAME
|
05/26/91
05/30/91
06/01/91
01/03/91
|
2778V
2778V
2778V
2778V
|
TYS
MOB
BNA
GNV
|
PA-31-350 Navajo
PA-31-350 Navajo
PA-31-350 Navajo
PA-31-350 Navajo
|
644
884
320
1574
|
3.6
4.9
2.1
9.2
|
138.4
184.9
78.4
345.2
|
Tallahoga
Browing
Lamont
Lamont
|
d. Tạo danh sách dưới đây cho máy bay 2778V:
C_DATE
|
AC_NO
|
DIST
|
HR_FL
|
FUEL
|
DIST/HR_FL
|
DIST/FUEL
|
FUEL/HR_FL
|
P_LNAME
|
05/26/91
05/30/91
06/01/91
01/03/91
|
2778V
2778V
2778V
2778V
|
644
884
320
1574
|
3.6
4.9
2.1
9.2
|
138.4
184.9
78.4
345.2
|
178.88889
180.40816
152.38095
171.08696
|
4.6531792
4.7809627
4.0816327
4.5596756
|
38.444444
37.734694
37.333333
37.521739
|
Tallahoga
Browing
Lamont
Lamont
|
Gợi ý: Hai cột kết quả cuối cùng được tính toán thay vì được lấy ra từ bảng. Chẳng hạn, có thể dùng dãy lệnh SQL
SELECT HR_FL, FUEL, FUEL/HR_FL
FROM CHARTER
WHERE AC_NO = ‘2778V’;
Lưu ý: Mặc dù các giá trị đưa ra không phù hợp với danh sách được chỉ ra, khuôn dạng kết quả đưa ra được xác định bởi phần mềm bạn dùng. Bạn nên học cách điều chỉnh khuôn dạng với sự giúp đỡ của các tiện ích riêng DBMS của bạn.
3. Cập nhật bảng AIRCRAFT cho máy bay 2778V, sử dụng số giờ tổng cộng đã bay được lấy từ bảng CHARTER.
Lưu ý: Vì số giờ bay tổng cộng đã bay trong một giai đoạn có trong bảng CHARTER là 19.8 nên số giờ trên hàng cập nhật ứng với máy bay 2778V phải lớn hơn số giờ ban đầu 19.8.
BAN ĐẦU
AC_NO
|
AC_TYPE
|
FB
|
LAST_100
|
TTA
|
TTLE
|
TTRE
|
TAS
|
P_PAY
|
2778V
|
PA-31-350 Navajo
|
36.0
|
08/05/91
|
9211.9
|
1124.2
|
429.8
|
180
|
25.00
|
SAU CẬP NHẬT
AC_NO
|
AC_TYPE
|
FB
|
LAST_100
|
TTA
|
TTLE
|
TTRE
|
TAS
|
P_PAY
|
2778V
|
PA-31-350 Navajo
|
36.0
|
08/05/91
|
9231.7
|
1144.0
|
449.
|
180
|
25.00
|
4. Tạo một danh sách khách hàng chưa thanh toán.
C_DATE
|
DEST
|
AC_TYPE
|
C_NAME
|
05/26/91
05/30/91
05/30/91
06/01/91
|
STL
MY
MOB
BNA
|
PA-23-250 Aztec
C-90A King Air
PA-31-350 Navajo
PA-31-350 Navajo
|
C. J. Pary
Smithson Industries
C. J. Pary
Smithson Industries
|
5. Cho dữ lưu trong bảng CHAR_CUS, tìm dư nợ trung bình.
6. Cho dữ lưu trong bảng CHAR_CUS, tìm dư nợ tổng cộng.
7. Nhóm dữ liệu máy bay theo số máy bay để tạo ra kết quả sau đây:
AC_NO
|
COUNT(*)
|
AVG(DIST)
|
AVG(HR_FL)
|
AVG(FUEL)
|
1484P
2289L
2778V
4278Y
|
2
4
4
2
|
478
664
855.5
947
|
2.95
3.825
4.95
5.45
|
80.15
222.075
186.725
203.45
|
8. Tạo ra một báo cáo tương tự như mô tả trong bài tập 7, nhưng hạn chế kết quả đưa ra theo ngày, gồm những ngày nằm trong khoảng từ 30 tháng 5 năm 1991 đến 1 tháng 6 năm 1991, kể các ngày đó.
9. CSDL CH3SQL được tạo ra để giúp tự động các thủ tục bán hàng. Đặc biệt, bán hàng đưa ra một hoá đơn có dạng tương tự dạng đơn giản mô tả như hình dưới đây.
Chia sẻ với bạn bè của bạn: |