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ê.
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:
- Bài tập Oracle có lời giải.pdf