1. Trang chủ
  2. » Công Nghệ Thông Tin

Đề thi oracle Đại học Ngoại ngữ tin học TPHCM

19 507 2

Đ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 19
Dung lượng 74,5 KB

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

Nội dung

HD: SELECT empno,ename,sal FROM emp WHERE sal NOT BETWEEN 1000 AND 1500; Câu 7: Dùng câu lệnh truy vấn hiển thị cột: mã nhân viên, tên nhân viên, lương, mã người quản lý của những nhân v

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC NGOẠI NGỮ - TIN HỌC

ĐỀ THI THỰC HÀNH Môn: Oracle Thời gian thi: 45 phút

(Được sử dụng tài liệu)

Cho một phần lược đồ CSDL gồm:

NHANVIEN(MANV, HOTEN, NGAYSINH, DIACHI, DIENTHOAI, EMAIL)

DUAN(MADA,TENDUAN,DIADIEM)

PHANCONG(MANV, MADA, SONGAYLAMVIEC)

1 Tạo bảng, ràng buộc khóa chính, khóa ngoại và thêm dữ liệu mẫu

2 Viết truy vấn tìm ra danh sách nhân viên tham gia dưới 2 dự án, sắp xếp

tăng dần theo họ tên nhân viên

3 Viết function truyền vào mã nhân viên, trả về tổng số ngày làm việc trong

các dự án của nhân viên đó

4 Viết procedure truyền vào mã nhân viên, in ra thông báo dạng: “Nhan vien

Nguyen Thanh An co tong sô ngay lam viec trong cac du an la 50 ngay”

Lưu ý: Sinh viên ghi chú thích họ tên và MSSV ở đầu bài làm, lưu bài thường

xuyên và để nguyên bài làm khi hết giờ làm bài

Câu 1 Dùng câu lệnh truy vấn hiển thị cột lương hàng tháng của các nhân viên dạng:

Tên nhân viên : 1 thang luong = luong

HD:

SELECT ename "EMPLOYEE",sal "MONTHLY SALARY"

FROM emp;

Câu 2: Dùng câu lệnh truy vấn hiển thị cột: mã nhân viên, tên nhân viên, lương, mã người

quản lý của những nhân viên có mã người quản lý là 7902, 7566,7788

HD:

SELECT empno,ename,sal,mgr

FROM emp

ĐỀ 1

Trang 2

WHERE mgr IN (7902,7566,7788);

Câu 3:Dùng câu lệnh truy vấn hiển thị cột: mã nhân viên, tên nhân viên, mã người quản

lý, mã phòng ban của những nhân viên có tên: ford, allen

HD:

SELECT empno,ename,mgr,deptno

FROM emp

WHERE ename IN ('FORD','ALLEN');

Câu 4:Dùng câu lệnh truy vấn hiển thị cột: tên nhân viên, ngày vào làm của những nhân viên vào làm từ tháng giêng đến tháng 12 năm 1981

HD:

SELECT ename,hiredate

FROM emp

WHERE hiredate BETWEEN '1-JAN-81' AND '31-DEC-81';

Câu 5:Dùng câu lệnh truy vấn hiển thị cột: tên nhân viên, nghề nghiệp của những nhân viên

không phải là: clerk, manager, analyst

HD:

SELECT ename,job

FROM emp

WHERE job NOT IN('CLERK','MANAGER','ANALYST');

Câu 6: Dùng câu lệnh truy vấn hiển thị cột: mã nhân viên, tên nhân viên, lương của những

nhân viên có lương không nằm trong 1000 đến 1500

HD:

SELECT empno,ename,sal

FROM emp

WHERE sal NOT BETWEEN 1000 AND 1500;

Câu 7: Dùng câu lệnh truy vấn hiển thị cột: mã nhân viên, tên nhân viên, lương, mã người quản lý của những nhân viên có tên không chứa ký tự: A

HD:

SELECT empno,ename,sal,mgr

FROm emp

WHERE ename NOT LIKE '%A%';

Câu 8: Dùng câu lệnh truy vấn hiển thị cột: mã nhân viên, tên nhân viên, lương, thưởng

Trang 3

những nhân viên có được tiền thưởng

HD:

SELECT empno,ename,sal,comm

FROM emp

WHERE comm IS NOT NULL;

Câu 9: Dùng câu lệnh truy vấn hiển thị cột: tên nhân viên, nghề nghiệp, lương của những nhân viên có nghề nghiệp là: salesman hoặc president và có lương > 1500

HD:

SELECT ename,job,sal

FROM emp

WHERE (job='SALESMAN' OR job='PRESIDENT')

AND sal>1500;

Câu 10: Dùng câu lệnh truy vấn hiển thị cột chi tiết nhân viên gồm: tên nhân viên, nghề nghiệp dạng: công việc của (nhân viên) là ( nghề nghiệp)

HD:

SELECT 'Cong viec cua '|| INITCAP(ename)|| ' la '||LOWER(job) AS "EMPLOYEE DETAIL"

FROM emp;

Câu 11: Dùng câu lệnh truy vấn hiển thị cột: tên nhân viên, tên và nghề nghiệp nhân viên, độ

dài tên nhân viên, vị trí của ký tự ‘A’ trong tên nhân viên, với điều kiện ký tự đầu

tiên bên phải của tên nhân viên là:’N’

HD:

SELECT ename,CONCAT(ename,job),LENGTH(ename),INSTR(ename,'A')

FROM emp

WHERE SUBSTR(ename,-1,1)='N';

Câu 12:Dùng câu lệnh truy vấn hiển thị cột: tên nhân viện, số tuần từ khi nhân viên vào làm

đến nay

HD:

SELECT ename,(SYSDATE-hiredate)/7 WEEKS

FROM emp

Câu 13:

Dùng câu lệnh truy vấn hiển thị cột: mã nhân viên, ngày vào làm, số tháng từ vào

làm đến nay, sáu tháng sau ngày vào làm, ngày thứ sáu đầu tiên sau ngày vào làm,

Trang 4

ngày cuối tháng của ngày vào làm.

HD:

SELECT empno,hiredate,MONTHS_BETWEEN(SYSDATE,hiredate) TENURE,

ADD_MONTHS(hiredate,6) REVIEW,

NEXT_DAY(hiredate,'FRIDAY'),

LAST_DAY(hiredate)

FROM emp;

Câu 14: Dùng câu lệnh truy vấn hiển thị mã nhân viên, ngày vào làm, làm tròn đến tháng vào làm của các nhân viên vào làm năm 1981

HD:

SELECT empno,hiredate,ROUND(hiredate,'MONTH')

FROM emp

WHERE hiredate BETWEEN '1-JAN-1981'AND '31-DEC-1981';

Câu 15:

Dùng câu lệnh truy vấn hiển thị cột: mã nhân viên, tháng vào làm dạng “ MM/YY “ của nhân viên BLAKE

HD:

SELECT empno,TO_CHAR(hiredate,'MM/YY') Month_Hired

FROM emp

WHERE ename = 'BLAKE';

Câu 16:Dùng câu lệnh truy vấn hiển thị cột: tên nhân viên, ngày vào làm có dạng “ First of

May 1981 12:00:00 AM”

HD:

SELECT ename,TO_CHAR(hiredate, 'ddspth "of" month YYYY HH24:MI:SS AM') HIREDATE

FROM emp;

Câu 17: Dùng câu lệnh truy vấn hiển thị cột: tên nhân viên, ngày vào làm có dạng “ 17 November 1981 ”

HD:

SELECT ename,TO_CHAR(hiredate, 'DD MONTH YYYY') HIREDATE

FROM emp;

Câu 18:Dùng câu lệnh truy vấn hiển thị cột: tên nhân viên, lương có dạng “ $ 3,500 “ của nhân viên Scott

HD:

SELECT ename,TO_CHAR(sal,'$99,999') SALARY

Trang 5

FROM emp

WHERE ename = 'SCOTT';

Câu 19: Dùng câu lệnh truy vấn hiển thị cột: tên nhân viên, ngày vào làm của tất cả các nhân

viên vào làm ngày February 22, 1981

HD:

SELECT ename,hiredate

FROM emp

WHERE hiredate = TO_DATE('February 22, 1981','MONTH DD, YYYY')

Câu 20: Dùng câu lệnh truy vấn hiển thị cột: nghề nghiệp, lương, lương hệ số của các nhân

viên biết rằng nếu nghề nghiệp là manager hệ số là 1.20, clerk hệ số 1.15, analyst hệ

số 1.1, còn lại hệ số là 1

HD:

SELECT job,sal,

DECODE (job,'ANALYST',SAL*1.1,

'CLERK',SAL*1.15,

'MANAGER',SAL*1.20,

SAL)

AS "RECEIVED SALARY"

FROM emp;

Câu 21: Dùng câu lệnh truy vấn hiển thị cột: tên nhân viên, lương, tỷ số thuế của nhân viên

thuộc phòng ban 30, biết rằng nếu lương < $1,000 tỷ số thuế 0%, từ $1,000 đến

<$2,000 tỷ số 9%, từ $2,000 đến <$3,000 tỷ số 20%, từ $3,000 đến <$4,000 tỷ số 30%, từ $4,000 đến <$5,000 tỷ số 40%, từ $5,000 đến <$6,000 tỷ số 42%, từ $6,000 đến <$7,000 tỷ số 44%, từ $7,000 trở lên tỷ số 45%

HD:

SELECT ename,sal,

DECODE(TRUNC(sal/1000,0),

0,0.00,

1,0.09,

2,0.20,

3,0.30,

4,0.40,

5,0.42,

6,0.44,

Trang 6

AS "TAX_RATE"

FROM emp

WHERE deptno=30;

Câu 22:Dùng câu lệnh truy vấn hiển thị cột: tên nhân viên, mã người quản lý của nhân viên

nếu nhân viên không có người quản lý cho xuất hiện câu không có người quản lý,điều kiện mã người quản lý là null

HD:

SELECT ename,NVL(TO_CHAR(mgr),'No Manager')

FROM emp

WHERE mgr IS NULL;

Câu 23: Dùng câu lệnh truy vấn hiển thị cột: ngày thứ sáu sau sáu tháng kể từ ngày vào làm

có dạng: Friday, March 12th, 1982, sắp xếp tăng dần theo ngày vào làm

HD:

SELECT

TO_CHAR(NEXT_DAY(ADD_MONTHS(hiredate,6),'FRIDAY'),'DAY,MONTH DDTH,YYYY') AS "NEXT 6 MONTH REVIEW"

FROM emp

ORDER BY hiredate;

Câu 24: BT3- 3-46

Dùng câu lệnh truy vấn hiển thị cột: mã nhân viên, tên nhân viên, lương, lương mới (tăng 0.15 cho toàn bộ nhân viên), số tiền tăng

HD:

SELECT empno,ename,sal,ROUND(sal+(sal*0.15)) "NEW SALARY"

FROM emp

Câu 25: BT3- 6-47

Dùng câu lệnh truy vấn hiển thị cột: tên nhân viên, số tháng làm việc (kể từ khi vào làm đến nay), săp xếp tăng dần theo số tháng làm việc

HD:

SELECT ename,ROUND(MONTHS_BETWEEN(SYSDATE,hiredate),0)

"MONTHS_WORKS"

FROM emp

ORDER BY "MONTHS_WORKS" ASC;

Trang 7

Câu 26: BT3- 8-48

Dùng câu lệnh truy vấn hiển thị cột: tên nhân viên, lương định dạng cột lương có độ dài 15 ký tự, những khoảng trống bên trái của lương điền vào dấu $

HD:

SELECT ename ,LPAD(sal,15,'$') "SALARY"

FROM emp;

Câu 27: BT3- 9-49

Dùng câu lệnh truy vấn hiển thị cột: tên nhân viên, độ dài của tên, định dạng tên như sau: ký tự đầu chử hoa các chử còn lại chử thường Chỉ hiển thị tên nhân viên bắt đầu bằng những ký tự: J, A, M

HD:

SELECT INITCAP(ename),LENGTH(ename) "LENGTH"

FROM emp

WHERE ename LIKE 'A%' OR ename LIKE 'J%' OR ename LIKE 'M%';

Câu 28: BT 3-11-50

Dùng câu lệnh truy vấn hiển thị cột: tên nhân viên, thưởng nếu thưởng không có thì điền vào câu không có tiền thưởng

HD:

SELECT ename,NVL(TO_CHAR(comm),'Khong co tien thuong') "COMM"

FROM emp;

Câu 29: BT3- 11-51

Dùng câu lệnh truy vấn hiển thị cột: nghề nghiệp, loại Biết rằng nếu nghề nghiệp là president loại A, manager loại B, analyst loại C, salesman loại D, clerk loại E, còn lại loại O

HD:

SELECT job,DECODE(job,'PRESEDENT','A',

'MANAGER','B',

'ANALYST','C',

'SALESMAN','D',

'CLERK','E',

'O')

"GRADE"

FROM emp;

Câu 30: BT 4-3-23

Dùng câu lệnh truy vấn hiển thị cột: tên nhân viên, tên phòng ban, vị trí phòng ban

Trang 8

của các nhân viên có tiền thưởng.

HD:

SELECT ename,dname,loc

FROM emp,dept

WHERE emp.deptno=dept.deptno

AND comm IS NOT NULL;

Câu 31: BT 4-6-24

Dùng câu lệnh truy vấn hiển thị cột: tên nhân viên, mã nhân viên, tên người quản lý,

mã người quản lý của tất cả nhân viên

HD:

SELECT a.ename "NAME", a.empno "EMP#",b.ename "MANAGER",b.empno

"MGR#"

FROM emp a, emp b

WHERE a.mgr=b.empno;

Câu 32: BT 4-9-26

Dùng câu lệnh truy vấn hiển thị cột: tên nhân viên, nghề nghiệp, tên phòng ban, lương, bậc lương (grade) của các nhân viên

HD:

SELECT ename,job,dname,sal,grade

FROM emp,dept,salgrade

WHERE emp.deptno=dept.deptno

AND sal BETWEEN losal AND hisal;

Câu 33: BT 4-10-26

Dùng câu lệnh truy vấn hiển thị cột: tên nhân viên, ngày vào làm của các nhân viên vào làm sau Blake

HD:

SELECT a.ename,a.hiredate

FROM emp a, emp b

WHERE a.hiredate > DECODE(b.ename,'BLAKE',b.hiredate);

Câu 34: BT 4-11-26

Dùng câu lệnh truy vấn hiển thị cột: tên nhân viên, ngày vào làm của nhân viên, tên người quản lý, ngày vào làm của người quản lý với điều kiện nhân viên vào làm trước người quản lý

HD:

SELECT a.ename "Employee",a.hiredate "Emp HireDate", b.ename "Manager", b.hiredate " Mgr Hiredate"

Trang 9

FROM emp a ,emp b

WHERE a.mgr=b.empno

AND a.hiredate < b.hiredate

Câu 35:

Dùng câu lệnh truy vấn hiển thị cột: tên nhân viên có ký tự đầu tiên, tên nhân viên

có ký tự cuối cùng trong danh sách alphabetized

HD:

SELECT ename

FROM emp

WHERE ename LIKE'A%' OR ename LIKE'Z%';

Câu 36:

Dùng câu lệnh truy vấn tính trung bình tiền thưởng của các nhân viên

HD:

SELECT AVG(comm)

FROM emp;

Câu 37:

Dùng câu lệnh truy vấn hiển thị cột: mã phòng ban, trung bình lương theo phòng ban, sắp xếp tăng dần theo trung bình lương

HD:

SELECT deptno,AVG(sal)

FROM emp

GROUP BY deptno

ORDER BY AVG(sal);

Câu 38:

Dùng câu lệnh truy vấn hiển thị cột: mã phòng ban, nghề nghiệp, tổng lương theo nghề nghiệp ở các phòng ban

HD:

SELECT deptno,job,SUM(sal)

FROM emp

GROUP BY deptno,job;

Câu 39:

Dùng câu lệnh truy vấn hiển thị cột: mã phòng ban, trung bình lương của những phòng ban lớn hơn 2000

HD:

SELECT deptno,AVG(sal)

FROM emp

GROUP BY deptno

HAVING AVG(sal)>2000;

Trang 10

Câu 40:

Dùng câu lệnh truy vấn hiển thị cột: mã phòng ban, trung bình lương của những phòng ban có lương tối đa lớn hơn 2900

HD:

SELECT deptno,MAX(sal)

FROM emp

GROUP BY deptno

HAVING MAX(sal)>2900

Câu 41:

Dùng câu lệnh truy vấn hiển thị cột: nghề nghiệp, tổng lương, của những nhân viên không bán hàng và tổng lương lớn hơn 5000, sắp xếp tăng dần theo tổng lương HD:

SELECT job,SUM(sal) "PAYROLL"

FROM emp

WHERE job NOT LIKE 'SALE%'

GROUP BY job

HAVING SUM(sal)>5000

ORDER BY SUM(sal)

Câu 42:

Dùng câu lệnh truy vấn hiển thị lương trung bình cao nhất của các phòng ban HD:

SELECT MAX(AVG(sal))

FROM emp

GROUP BY deptno

Câu 43: BT 5-4-27

Dùng câu lệnh truy vấn hiển thị lương cao nhất, lương thấp nhất, tổng lương, trung bình lương của mỗi nghề

HD:

SELECT MAX(sal) "Maximum" ,MIN(sal) "Minimum", SUM(sal) "Sum",

ROUND(AVG(sal),0) "Average"

FROM emp;

Câu 44: BT 5-6-27.sql

Dùng câu lệnh truy vấn hiển thị số người làm cùng nghề

HD:

SELECT job,COUNT(*)

FROM emp

GROUP BY job;

Câu 45: BT 5-9-28

Trang 11

Dùng câu lệnh truy vấn hiển thị cột: mã người quản lý, lương thấp nhất trả cho người quản lý, không tính người không có mã quản lý và lương thấp nhất ít hơn

1000, sắp xếp giảm dần theo lương

HD:

SELECT mgr, MIN(sal)

FROM emp

WHERE mgr IS NOT NULL

GROUP BY mgr

HAVING MIN(sal)>1000

ORDER BY MIN(sal) DESC

Câu 46: BT 5-10-28

Dùng câu lệnh truy vấn hiển thị cột: tên phòng ban, vị trí, số người trong phòng ban, lương trung bình của nhân viên trong phòng ban, lương trung bình lấy hai số lẻ HD:

SELECT dname, loc ,COUNT(empno) "Number of People", ROUND(AVG(sal),2)

"Avergage"

FROM emp,dept

WHERE emp.deptno=dept.deptno

GROUP BY dname,loc;

Câu 47: BT 5-11-29

Dùng câu lệnh truy vấn hiển thị cột: tổng số nhân viên, tổng số nhân viên theo năm vào làm (1980, 1981, 1982, 1983)

HD:

SELECT COUNT(empno)

"Total",SUM(DECODE(TO_CHAR(hiredate,'YYYY'),1980,1,0)) "1980",

SUM(DECODE(TO_CHAR(hiredate,'YYYY'),1981,1,0)) "1981",

SUM(DECODE(TO_CHAR(hiredate,'YYYY'),1982,1,0)) "1982",

SUM(DECODE(TO_CHAR(hiredate,'YYYY'),1983,1,0)) "1983"

FROM emp;

Câu 48:

Dùng câu lệnh truy vấn hiển thị tên nhân viên, những người có lương lớn hơn lương của nhân viên có mã 7566

HD:

SELECT ename

FROM emp

WHERE sal>

(SELECT sal

FROM emp

WHERE empno=7566);

Trang 12

Câu 49:

Dùng câu lệnh truy vấn hiển thị cột: tên nhân viên, nghề nghiệp, của những người làm cùng nghề với người có mã 7369

HD:

SELECT ename,job

FROM emp

WHERE job=(SELECT job

FROM emp

WHERE empno=7369);

Câu 50:

Dùng câu lệnh truy vấn hiển thị cột: tên nhân viên, nghề nghiệp, của nhân viên làm cùng nghề với nhân viên có mã 7369 và có lương lớn hơn lương của nhân viên có

mã 7876

HD:

SELECT ename,job

FROM emp

WHERE job=(SELECT job

FROM emp

WHERE empno=7369)

AND sal>(SELECT sal

FROM emp

WHERE empno=7876);

Câu 51:

Dùng câu lệnh truy vấn hiển thị cột: tên nhân viên, nghề nghiệp, lương, của nhân viên có lương bằng với lương thấp nhất của các nhân viên

HD:

SELECT ename,job,sal

FROM emp

WHERE sal=(SELECT MIN(sal)

FROM emp);

Câu 52:

Dùng câu lệnh truy vấn hiển thị cột: mã phòng ban, lương tối thiểu, của các phòng ban có lương tối thiểu lớn hơn lương tối thiểu của phòng ban 20

HD:

SELECT deptno,MIN(sal)

FROM emp

GROUP BY deptno

HAVING MIN(sal) > (SELECT MIN(sal)

FROM emp

Trang 13

WHERE deptno=20);

Câu 53:

Dùng câu lệnh truy vấn hiển thị cột: tên nhân viên, lương, mã phòng ban, của nhân viên có lương bằng với lương tối thiểu của các phòng ban

HD:

SELECT ename,sal,deptno

FROM emp

WHERE sal IN(SELECT MIN(sal)

FROM emp

GROUP BY deptno);

Câu 54:

Dùng câu lệnh truy vấn hiển thị cột: tên nhân viên, lương, mã phòng ban, của nhân viên có lương bằng 800, 950, 1300

HD:

SELECT ename,sal,deptno

FROM emp

WHERE sal IN (800,950,1300);

Câu 55:

Dùng câu lệnh truy vấn hiển thị cột: mã nhân viên, tên nhân viên, nghề nghiệp, của nhân viên có lương lớn hơn lương trung bình của các phòng ban

HD:

SELECT empno,ename,job

FROM emp

WHERE sal> ALL

(SELECT AVG(sal)

FROM emp

GROUP BY deptno);

Câu 56: BT 6-1-19

Dùng câu lệnh truy vấn hiển thị cột: tên nhân viên, ngày vào làm, của các nhân viên làm cùng phòng ban với Blake, trừ Blake

HD:

SELECT ename, hiredate

FROM emp

WHERE deptno=(SELECT deptno

FROM emp

WHERE ename like '%BLAKE%')

AND ename NOT LIKE '%BLAKE%';

Câu 57: BT 6-2-19

Trang 14

Dùng câu lệnh truy vấn hiển thị cột: mã nhân viên, tên nhân viên, của nhân viên có lương lớn hơn lương trung bình, sắp xếp giảm dần theo lương

HD:

SELECT empno,ename

FROM emp

WHERE sal > (SELECT AVG(sal)

FROM emp)

ORDER BY sal DESC;

Câu 58: BT 6-3-19

Dùng câu lệnh truy vấn hiển thị cột: mã nhân viên, tên nhân viên, của nhân viên làm cùng phòng ban với nhân viên tên có chứa chử T

HD:

SELECT empno,ename

FROM emp

WHERE deptno IN (SELECT deptno

FROM emp

WHERE ename LIKE'%T%');

Câu 59: BT 6-4-19

Dùng câu lệnh truy vấn hiển thị cột: tên nhân viên, mã phòng ban, nghề nghiệp, của nhân viên làm ở Dallas

HD:

SELECT ename, deptno,job

FROM emp

WHERE deptno IN (SELECT deptno

FROM dept

WHERE loc LIKE '%DALLAS%');

Câu 60: BT 6-6-19

Dùng câu lệnh truy vấn hiển thị cột: mã phòng ban, tên nhân viên, nghề nghiệp, của nhân viên trong bộ phận (phòng ban) bán hàng (sales)

HD:

SELECT deptno, ename,job

FROM emp

WHERE deptno IN (SELECT deptno

FROM dept

WHERE dname LIKE '%SALES%');

Câu 61:

Ngày đăng: 31/03/2016, 14:55

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w