Guest User

Repaso BD

a guest
Oct 5th, 2017
26
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.30 KB | None | 0 0
  1. Practica 1-----------------------------------------------------------------------------------------------------------
  2. sqlplus / as sysdba
  3. alter user "UserName" identified by "newpassword";
  4. sqlplus hr
  5. select country_id, country_name from countries;
  6.  
  7. Connection name: hr_conn
  8. username: hr
  9. Password: hr
  10. service name: orcl
  11.  
  12. Practica 2----------------------------------------------------------------------------------------------------------
  13. SELECT employees.employee_id AS Clave, employees.last_name ||',' || employees.First_name AS Empleado, Job_title AS puesto,
  14. Boss.last_name || ',' || Boss.First_name AS Jefe
  15. FROM employees, jobs, (select * from Employees) boss
  16. where employees.job_id = jobs.job_id
  17. and employees.manager_id = boss.employee_id;
  18.  
  19. SELECT Distinct
  20. employees.last_name ||',' || employees.First_name AS Empleado,
  21. departments.department_name as Departamento,
  22. jobs.job_title as TituloDeTrabajo,
  23. employees.hire_date
  24. FROM employees, jobs,departments
  25. where employees.job_id = jobs.job_id
  26. and employees.department_id = departments.department_id
  27. and salary > 1000
  28.  
  29. Practica 3----------------------------------------------------------------------------------------------------------
  30. Insert into regions (region_id, region_name)
  31. values (5, 'Occidente');
  32.  
  33. select * from regions order by region_id;
  34. rollback;
  35.  
  36. delete from regions
  37. where region_name = 'Occidente';
  38.  
  39. Create table telefonos(apellido_paterno varcahr (20),nombre varchar(20));
  40. insert into telefonos(nombre, apellido_paterno)
  41. values('Mora', Alejandro');
  42. insert into telefonos(nombre, apellido_paterno)
  43. values('Palafox', Fernando');
  44. insert into telefonos(nombre, apellido_paterno)
  45. values('Gutierrez', 'Pablo');
  46.  
  47. create index TELS on telefonos (apellido_paterno, nombre);
  48.  
  49. Practica 4----------------------------------------------------------------------------------------------------------
  50. create or replace procedure hola_mundo (MUNDO in varchar)
  51. as
  52. begin
  53. dbms_output.put_line('Hola ' || MUNDO);
  54. end hola_mundo;
  55.  
  56. set serveroutput on;
  57. execute hola_mundo('mundo');
  58.  
  59. CREATE OR REPLACE PROCEDURE ALTA_EMPLEADO (
  60. aFIRST_NAME IN employees.first_name%type
  61. , aLAST_NAME IN employees.last_name%type
  62. , aPHONE_NUMBER IN employees.phone_number%type
  63. , aJOB_ID IN employees.job_id%type
  64. , aDEPARTMENT_ID IN employees.department_id%type)
  65. AS BEGIN
  66. insert into employees(
  67. employees.first_name,
  68. employees.last_name,
  69. employees.phone_number,
  70. employees.job_id,
  71. employees.department_id,
  72. employees.employee_id,
  73. employees.email,
  74. employees.SALARY,
  75. employees.MANAGER_ID,
  76. employees.hire_date)
  77. values
  78. (ALTA_EMPLEADO.aFIRST_NAME,
  79. ALTA_EMPLEADO.aLAST_NAME,
  80. ALTA_EMPLEADO.aphone_number,
  81. ALTA_EMPLEADO.ajob_id,
  82. ALTA_EMPLEADO.adepartment_id,
  83.  
  84. (select count(employee_id) +100 from employees),
  85. (SUBSTR (ALTA_EMPLEADO.afirst_name, 0, 1) || ALTA_EMPLEADO.alast_name ||'@iteso.mx'),
  86. (select JOBS.MIN_SALARY FROM JOBS WHERE JOBS.JOB_ID = ALTA_EMPLEADO.ajob_id),
  87. (SELECT MANAGER_ID FROM DEPARTMENTS WHERE DEPARTMENTS.MANAGER_ID = ALTA_EMPLEADO.adepartment_id), sysdate);
  88. insert into job_history( employee_id, start_date,
  89. end_date,
  90. job_id)
  91. values(
  92. (select max(employees.employee_id) from employees), sysdate,
  93. (select add_months(sysdate,3) from dual), alta_empleado.ajob_id
  94. );
  95. COMMIT; exception
  96. when others then
  97. rollback;
  98. raise;
  99. END ALTA_EMPLEADO;
  100.  
  101. execute alta_empleado('alejandro','mora','3317192659','IT_PROG',60);
  102. select * from employees where first_name = 'alejandro';
  103.  
  104. Practica 5----------------------------------------------------------------------------------------------------------
  105. create table MI_LOG (fecha date, actividad varchar2(50));
  106. create table MI_TABLA (clave number, articulo varchar2(50), precio number, primary key (clave));
  107.  
  108. create sequence incrementos
  109. start with 1
  110. increment by 1
  111. nocache
  112. nocycle;
  113.  
  114. create or replace trigger tr_incrementos
  115. before
  116. insert on mi_tabla
  117. for each row
  118. begin
  119. :new.clave := incrementos.nextval;
  120. end;
  121.  
  122. insert into mi_tabla (articulo,precio) values ('Lapiz', 10);
  123. select * from mi_tabla;
  124.  
  125. create or replace trigger cambio_precio
  126. before
  127. update on mi_tabla
  128. for each row
  129. Enable
  130. begin
  131. if (:old.precio != :new.precio) then
  132. insert into mi_log values (sysdate, ('El ' || :old.articulo ||' cambia precio de ' || :old.precio || ' a ' || :new.precio ));
  133. end if;
  134. end;
  135.  
  136. update mi_tabla set precio = 11 where articulo = 'Lapiz';
  137.  
  138. select * from log_users;
  139.  
  140. create or replace trigger login
  141. after logon
  142. on HR.schema
  143. begin
  144. insert into log_users (usuario,tipo,fecha)
  145. values (user,'normal',sysdate);
  146. if to_char (sysdate,'HH24:MI') not between '08:00' and '18:00'
  147. or to_char (sysdate, 'DY') in ('SAT', 'SUN')
  148. then update log_users set tipo = ('Fuera de horario');
  149. end if;
  150. end;
  151.  
  152. select * from log_users;
  153.  
  154. Practica 6----------------------------------------------------------------------------------------------------------
  155. SELECT XMLELEMENT ("Empleados",
  156. XMLAGG(
  157. XMLForest(first_name || ' ' || last_name as "Nombre", jobs.job_id AS "Puesto" )))
  158. FROM EMPLOYEES, JOBS
  159. where employees.job_id = jobs.job_id AND jobs.job_id = 'FI_ACCOUNT';
  160.  
  161. SELECT XMLELEMENT ("Empleados",
  162. XMLAGG(
  163. XMLELEMENT("Empleado",
  164. xmlattributes(first_name || ' ' ||last_name as "Nombre", jobs.job_id as "Puesto")))) AS "Emps"
  165. FROM EMPLOYEES, JOBS
  166. where employees.job_id = jobs.job_id AND jobs.job_id = 'FI_ACCOUNT';
Add Comment
Please, Sign In to add comment