Bài tập Oracle có lời giải

1. Liệt kê tên (last_name) và lương (salary) của những nhân viên có

lương lớn hơn 12000$.

SELECT LAST_NAME, SALARY

FROM employees;

2. Liệt kê tên và lương của những nhân viên có lương thấp hơn 5000$

hoặc lớn hơn 12000$.

SELECT FIRST_NAME, LAST_NAME, SALARY

FROM EMPLOYEES

WHERE SALARY<5000 OR SALARY>12000;

3. Cho biết thông tin tên nhân viên (last_name), mã công việc (job_id)

, ngày thuê (hire_date) của những nhân viên được thuê từ ngày

20/02/1998 đến ngày 1/05/1998.

Thông tin được hiển thị tăng dần theo ngày thuê.

pdf37 trang | Chuyên mục: Oracle | Chia sẻ: dkS00TYs | Lượt xem: 6786 | Lượt tải: 1download
Tóm tắt nội dung Bài tập Oracle có lời giải, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
khi mã phòng hợp lệ mới được phép thêm nhân viên. 
create or replace package emp_pack 
as 
 procedure new_emp 
 ( 
 MaNV employees.employee_id%type, 
 TenNV employees.first_name%type, 
 HoNV employees.last_name%type, 
 Email employees.email%type, 
 DienThoai employees.phone_number%type, 
 NgayThue employees.hire_date%type, 
 MaCV employees.job_id%type, 
 Luong employees.salary%type, 
 HoaHong employees.commission_pct%type, 
 MaQuanLy employees.manager_id%type, 
 MaPhong employees.department_id%type 
 ); 
 function valid_deptid(i_department_id in number) 
 return boolean; 
 end emp_pack; 
--phan than 
create or replace package body emp_pack 
as 
 procedure new_emp 
 ( 
 MaNV employees.employee_id%type, 
 TenNV employees.first_name%type, 
Võ Đông Giang 2012 
26 Trường cao đẳng công nghệ thông tin TP.HCM 
 HoNV employees.last_name%type, 
 Email employees.email%type, 
 DienThoai employees.phone_number%type, 
 NgayThue employees.hire_date%type, 
 MaCV employees.job_id%type, 
 Luong employees.salary%type, 
 HoaHong employees.commission_pct%type, 
 MaQuanLy employees.manager_id%type, 
 MaPhong employees.department_id%type 
 ) 
 is 
 begin 
 insert into employees values(MaNV, TenNV, HoNV, Email, 
DienThoai, 
 NgayThue, MaCV, Luong, HoaHong, MaQuanLy,MaPhong); 
 end new_emp; 
 --ket thuc proc new_emp 
 function valid_deptid(i_department_id in number) 
 return boolean 
 is 
 v_id_dept number; 
 begin 
 select count(*) into v_id_dept 
 from departments 
 where department_id=i_department_id; 
 return 1=v_id_dept; 
 exception when others then 
 return false; 
 end valid_deptid;--ket thuc proc valid_deptid 
 end emp_pack; 
 --goi thuc thi 
 set serveroutput on 
 begin 
 if(emp_pack.valid_deptid(&i_department_id)) then 
 emp_pack.new_emp(1, 'First', 
'Last','first.last@oracle.com', 
 '(123)123-1234','18-JUN-02','IT_PROG',900,00, 
100,110); 
Võ Đông Giang 2012 
27 Trường cao đẳng công nghệ thông tin TP.HCM 
 dbms_output.put_line('Them thanh cong'); 
 else 
 dbms_output.put_line('Ma phong ban nay khong ton 
tai!'); 
 end if; 
 end; 
Võ Đông Giang 2012 
28 Trường cao đẳng công nghệ thông tin TP.HCM 
QUẢN TRỊ NGƯỜI DÙNG 
Quản trị người dùng. 
64. Tạo không gian bảng (tablespace) có kích thước 100M. 
65. Tạo không gian bảng tạm (temporary tablespace) có kích thước 50M. 
66. Tạo rollback segment rolora để truy xuất đồng thời cho table space vừa tạo. 
67. Tạo user có tên là tên sinh viên, mật khẩu do sinh viên tự đặt với tablespace và 
temporary tablespace vừa tạo. 
68. Cấp quyền truy xuất tài nguyên (resource) cho user vừa tạo. 
69. Cấp quyền cho phiên làm việc (session) cho user vừa tạo. 
70. Cấp quyền tạo bảng (table) cho user vừa tạo. 
71. Cấp quyền tạo khung nhìn (view) cho user vừa tạo. 
72. Cấp quyền Select, Insert, Update, Delete trên bảng Employees cho user vừa 
tạo. 
73. Cấp quyền Select, Insert, Update, Delete trên bảng Departments cho user vừa 
tạo. 
74. Cấp quyền Select chỉ với các thuộc tính job_id, job_title trên bảng Jobs cho 
user vừa tạo. 
75. Login vào csdl HR với user vừa tạo. 
76. Truy vấn các bảng trong csdl HR và cho nhận xét. 
77. Cho biết các user hiện có từ view dba_users. 
78. Đăng nhập với quyền hệ thống và tao user có tên là mã sinh viên, mật khẩu là 
tên sinh viên 
a. Thay đổi mật khẩu của user. 
b. Cấp quyền đăng nhập csdl 
c. Truy xuất view v$session để xem phiên làm việc. 
Võ Đông Giang 2012 
29 Trường cao đẳng công nghệ thông tin TP.HCM 
d. Tao bảng phòng ban gồm 2 thuộc tính: mã phòng ban, tên phòng ban và cho 
nhận xét câu c. 
e. Cấp phát hạn ngạch (quota) 20M cho user vừa tao. 
f. Tao lại bảng Phòng ban và cho nhận xét. 
g. Cấp phát không gian giới hạn tablespace cho user vừa tao 
h. Cấp phát tài nguyên cho user 
i. Cấp phát phiên làm việc cho user 
j. Cấp quyền đăng nhập OEM 
79. Truy xuất vào view hệ thống dba_profiles. 
80. Tao profile giới hạn việc truy xuất tài nguyên và cấp cho user vừa tạo: 
a. Thời gian kết nối 120s 
b. Số lần thất bại khi cho phép kết nối là 3. 
c. Thời gian chờ kết nối là 60s 
d. Phiên làm việc cho mỗi user là 2 
e. Gán profile cho user vừa tao 
f. Thay đổi thông số của profile với phiên làm việc cho mỗi user là 4. 
g. Số lần thất bại khi cho phép kết nối là 3 
h. Thiết lập thông số để profile có hiệu lực. 
i. Xóa profile vừa tạo. 
81. Oracle Database Resource Manager(ODRM) để tạo vùng treo,tao nhóm người 
dùng, tao kế hoạch tài nguyên và định hướng kế hoạch, kiểm tra tính hợp lệ của 
vùng treo và gởi vùng treo: 
a. Tạo vùng treo. 
b. Xóa vùng treo. 
c. Kiểm tra nhóm người dùng nào đã tồn tại và cho nhận xét liên quan các nhóm 
người dùng. 
d. Kiểm tra kế hoạch của mỗi CSDL từ dba_rsrc_plans 
e. Tao 4 nhóm người dùng: cập nhật, tìm kiếm, thống kê, báo cáo 
Võ Đông Giang 2012 
30 Trường cao đẳng công nghệ thông tin TP.HCM 
f. Kiểm tra tính hợp lệ của vùng treo. 
g. Truy xuất view dba_users và cho nhận xét. 
h. Gán người dùng vừa tạo tới nhóm người dùng. 
i. Truy xuất view dba_users và cho nhận xét. 
j. Khởi tạo user cho nhóm người dùng 
k. Truy xuất view dba_users và cho nhận xét. 
l. Tạo kế hoạch tài nguyên 
m. Tạo định hướng kế hoạch và giới hạn tài nguyên cho từng người dùng (CPU_1 
nhóm cập nhật là 60, CPU_1 nhóm thống kê 40, CPU_2 nhóm báo cáo là 30, nhóm 
khác là 100). 
n. Gởi vùng treo. 
o. Truy xuất view dba_rsrc_plan_directives và cho nhận xét. 
p. Kích hoạt kế hoạch sử dụng tài nguyên 
q. Truy xuất view v$rsrc_consumer_group để xem việc sử dụng tài nguyên giữa 
các nhóm 
r. Truy xuất view v$rsrc_plan và cho nhận xét. 
--64 
create tablespace oracle 
datafile'oracle.dbf' size 100m; 
--65 
create temporary tablespace oracle_2 
tempfile'oracle2.dbf' size 50m; 
--66 
create rollback segment seg 
tablespace oracle; 
Võ Đông Giang 2012 
31 Trường cao đẳng công nghệ thông tin TP.HCM 
--67 
create user sinhvien identified by sinhvien 
default tablespace oracle 
temporary tablespace oracle_2 
password expire; 
--68 
grant resource to sinhvien; 
--69 
grant create session to sinhvien; 
--70 
grant create table to sinhvien; 
--71 
grant create view to sinhvien; 
--72 
grant insert, update, select, delete on hr.employees to 
sinhvien; 
--73 
grant insert, select, update, delete on hr.departments to 
sinhvien; 
--74 
grant update(job_id, job_title) on hr.jobs to sinhvien; 
--75 
Võ Đông Giang 2012 
32 Trường cao đẳng công nghệ thông tin TP.HCM 
conn hr/hr; 
--76 
Khong truy van duoc vi chua cap quyen truy van 
--77 
select username from dba_users; 
--78 
conn system/system; 
grant create user to hr; 
conn hr/hr; 
create user masinhvien identified by masinhvien 
password exprire; 
--78bis xoa user masinhvien 
conn system/system; 
drop user masinhvien; 
--78b 
create create connect to masinhvien; 
--78c 
select username, status from v$session; 
--78 d Khong tao duoc vi chua cap quyen 
--78e 
create user sinhvien identified by sinhvien 
default tablespace oracle 
Võ Đông Giang 2012 
33 Trường cao đẳng công nghệ thông tin TP.HCM 
temporary tablespace oracle_2 
quota 100m on oracle; 
--80 a, b, c, d 
create profile giang limit 
connect_time 120 
failed_login_attempts 3 
idle_time 60 
sessions_per_user 2; 
--80e 
alter user sinhvien identified by sinhvien 
profile giang; 
--80h 
thiet lap thong so de profile co hieu luc 
grant create profile to sinhvien; 
--80f,g 
alter profile giang limit 
sessions_per_user 4 
failed_login_attempts 3 
--80i 
drop profile giang cascade; 
--81 a.Tao vung treo 
exec dbms_resource_manager.create_pending_area; 
Võ Đông Giang 2012 
34 Trường cao đẳng công nghệ thông tin TP.HCM 
--81 b.xoa vung treo 
exec dbms_resource_manager.clear_pending_area; 
--81 e 
exec dbms_resource_manager.create_pending_area; 
exec 
dbms_resource_manager.create_consumer_group('capnhat','nhom 
cap nhat'); 
exec 
dbms_resource_manager.create_consumer_group('timkiem','nhom 
tim kiem'); 
exec 
dbms_resource_manager.create_consumer_group('thongke','nhom 
thong ke'); 
exec 
dbms_resource_manager.create_consumer_group('baocao','nhom 
bao cao'); 
--81 f 
--kiem tra tinh hop le cua vung treo 
exec dbms_resource_manager.validate_pending_area 
--81 h 
grant capnhat to sinhvien; 
grant timkiem to sinhvien; 
grant thongke to sinhvien; 
grant baocao to sinhvien; 
--81 i 
Võ Đông Giang 2012 
35 Trường cao đẳng công nghệ thông tin TP.HCM 
select username, account_status from dba_users 
--81 h. Gán người dùng vừa tạo tới nhóm người dùng 
conn system/system 
exec 
dbms_resource_manager_privs.grant_system_privilege('SYSTEM',
'ADMINISTER_RESOURCE_MANAGER',TRUE); 
exec dbms_resource_manager.create_pending_area 
exec dbms_resource_manager.create_consumer_group('sv','nhom 
sv','ROUND-ROBIN' 
--khong chay dc 
exec 
dbms_resource_manager_privs.grant_switch_consumer_group('sin
hvien','sv',true) 
--81 l 
exec dbms_resource_manager.create_pending_area 
exec 
dbms_resource_manager.create_plan('kehoachtainguyen','ke 
hoach tai nguyen cho nguoi dung') 
--81 m 
exec 
dbms_resource_manager.create_plan_directive('kehoachtainguye
n','capnhat',60,100,100,100,100,100,100,100) 
exec 
dbms_resource_manager.create_plan_directive('kehoachtainguye
n','thongke',40,100,100,100,100,100,100,100) 
Võ Đông Giang 2012 
36 Trường cao đẳng công nghệ thông tin TP.HCM 
exec 
dbms_resource_manager.create_plan_directive('kehoachtainguye
n','baocao',30,100,100,100,100,100,100,100) 
--81 n gui ving treo 
exec dbms_resource_manager.create_pending_area 
exec dbms_resource_manager.submit_pending_area 
--81 o 
select plan, cpu_p1, cpu_p2, cpu_p3 from 
dba_rsrc_plan_directives 
--Tao role 
create role capnhat; 
create role timkiem; 
create role thongke; 
create role baocao; 
--cap quyen 
grant capnhat to sinhvien; 
--Xoa role 
revoke capnhat from sinhvien; 
Võ Đông Giang 2012 
37 Trường cao đẳng công nghệ thông tin TP.HCM 
THE END 

File đính kèm:

  • pdfBài tập Oracle có lời giải.pdf
Tài liệu liên quan