Advertisement
Guest User

Untitled

a guest
Oct 5th, 2017
482
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 5.42 KB | None | 0 0
  1. Practica 1-----------------------------------------------------------------------------------------------------------
  2. CREATE USER palafots IDENTIFIED BY palafots account UNLOCK;
  3. ALTER USER palafots account unclock;
  4. sqlplus  / AS sysdba
  5. ALTER USER "UserName" IDENTIFIED BY "newpassword";
  6. sqlplus hr
  7. SELECT country_id, country_name FROM countries;
  8.  
  9. Connection name: hr_conn
  10. username: hr
  11. Password: hr
  12. service name: orcl
  13.  
  14. Practica 2----------------------------------------------------------------------------------------------------------
  15. SELECT employees.employee_id AS Clave, employees.last_name ||',' || employees.First_name AS Empleado, Job_title AS puesto,
  16. Boss.last_name || ',' || Boss.First_name AS Jefe
  17. FROM employees, jobs, (SELECT * FROM Employees) boss
  18. WHERE employees.job_id = jobs.job_id
  19. AND employees.manager_id = boss.employee_id;
  20.  
  21. SELECT DISTINCT
  22. employees.last_name ||',' || employees.First_name AS Empleado,
  23. departments.department_name AS Departamento,
  24. jobs.job_title AS TituloDeTrabajo,
  25. employees.hire_date
  26. FROM employees, jobs,departments
  27. WHERE employees.job_id = jobs.job_id
  28. AND employees.department_id = departments.department_id
  29. AND salary > 1000
  30.  
  31. Practica 3----------------------------------------------------------------------------------------------------------
  32. INSERT INTO regions (region_id, region_name)
  33. VALUES (5, 'Occidente');
  34.  
  35. SELECT * FROM regions ORDER BY region_id;
  36. ROLLBACK;
  37.  
  38. DELETE FROM regions
  39. WHERE region_name = 'Occidente';
  40.  
  41. CREATE TABLE telefonos(apellido_paterno varcahr (20),nombre VARCHAR(20));
  42. INSERT INTO telefonos(nombre, apellido_paterno)
  43. VALUES('Mora', Alejandro');
  44. insert into telefonos(nombre, apellido_paterno)
  45. values('Palafox', Fernando');
  46. INSERT INTO telefonos(nombre, apellido_paterno)
  47. VALUES('Gutierrez', 'Pablo');
  48.  
  49. CREATE INDEX TELS ON telefonos (apellido_paterno, nombre);
  50.  
  51. Practica 4----------------------------------------------------------------------------------------------------------
  52. CREATE OR REPLACE PROCEDURE hola_mundo (MUNDO IN VARCHAR)
  53. AS
  54. BEGIN
  55. dbms_output.put_line('Hola ' || MUNDO);
  56. END hola_mundo;
  57.  
  58. SET serveroutput ON;
  59. EXECUTE hola_mundo('mundo');
  60.  
  61. CREATE OR REPLACE PROCEDURE ALTA_EMPLEADO (
  62.   aFIRST_NAME IN employees.first_name%TYPE
  63. , aLAST_NAME IN employees.last_name%TYPE
  64. , aPHONE_NUMBER IN employees.phone_number%TYPE
  65. , aJOB_ID IN employees.job_id%TYPE
  66. , aDEPARTMENT_ID IN employees.department_id%TYPE)
  67. AS BEGIN
  68. INSERT INTO employees(
  69. employees.first_name,
  70. employees.last_name,
  71. employees.phone_number,
  72. employees.job_id,
  73. employees.department_id,
  74. employees.employee_id,
  75. employees.email,
  76. employees.SALARY,
  77. employees.MANAGER_ID,
  78. employees.hire_date)
  79. VALUES
  80. (ALTA_EMPLEADO.aFIRST_NAME,
  81. ALTA_EMPLEADO.aLAST_NAME,
  82. ALTA_EMPLEADO.aphone_number,
  83. ALTA_EMPLEADO.ajob_id,
  84. ALTA_EMPLEADO.adepartment_id,
  85.  
  86. (SELECT COUNT(employee_id) +100 FROM employees),
  87. (SUBSTR (ALTA_EMPLEADO.afirst_name, 0, 1) || ALTA_EMPLEADO.alast_name ||'@iteso.mx'),
  88. (SELECT JOBS.MIN_SALARY FROM JOBS WHERE JOBS.JOB_ID = ALTA_EMPLEADO.ajob_id),
  89. (SELECT MANAGER_ID FROM DEPARTMENTS WHERE DEPARTMENTS.MANAGER_ID = ALTA_EMPLEADO.adepartment_id), sysdate);
  90. INSERT INTO job_history( employee_id, start_date,
  91. end_date,
  92. job_id)
  93. VALUES(
  94. (SELECT MAX(employees.employee_id) FROM employees), sysdate,
  95. (SELECT add_months(sysdate,3) FROM dual), alta_empleado.ajob_id
  96. );
  97. COMMIT; exception
  98. WHEN others THEN
  99. ROLLBACK;
  100. raise;
  101. END ALTA_EMPLEADO;
  102.  
  103. EXECUTE alta_empleado('alejandro','mora','3317192659','IT_PROG',60);
  104. SELECT * FROM employees WHERE first_name = 'alejandro';
  105.  
  106. Practica 5----------------------------------------------------------------------------------------------------------
  107. CREATE TABLE MI_LOG (fecha DATE, actividad varchar2(50));
  108. CREATE TABLE MI_TABLA (clave NUMBER, articulo varchar2(50), precio NUMBER, PRIMARY KEY (clave));
  109.  
  110. CREATE SEQUENCE incrementos
  111. START WITH 1
  112. INCREMENT BY 1
  113. nocache
  114. nocycle;
  115.  
  116. CREATE OR REPLACE TRIGGER tr_incrementos
  117. BEFORE
  118. INSERT ON mi_tabla
  119. FOR each ROW
  120. BEGIN
  121. :NEW.clave := incrementos.NEXTVAL;
  122. END;
  123.  
  124. INSERT INTO mi_tabla (articulo,precio) VALUES ('Lapiz', 10);
  125. SELECT * FROM mi_tabla;
  126.  
  127. CREATE OR REPLACE TRIGGER cambio_precio
  128. BEFORE
  129. UPDATE ON mi_tabla
  130. FOR each ROW
  131. Enable
  132. BEGIN
  133. IF (:OLD.precio != :NEW.precio) THEN
  134. INSERT INTO mi_log VALUES (sysdate, ('El ' || :OLD.articulo ||' cambia precio de ' || :OLD.precio || ' a ' || :NEW.precio ));
  135. END IF;
  136. END;
  137.  
  138. UPDATE mi_tabla SET precio = 11 WHERE articulo = 'Lapiz';
  139.  
  140. SELECT * FROM log_users;
  141.  
  142. CREATE OR REPLACE TRIGGER login
  143. after logon
  144. ON HR.schema
  145. BEGIN
  146.   INSERT INTO log_users (usuario,tipo,fecha)
  147.   VALUES (USER,'normal',sysdate);
  148.         IF to_char (sysdate,'HH24:MI') NOT BETWEEN '08:00' AND '18:00'
  149.           OR to_char (sysdate, 'DY') IN ('SAT', 'SUN')
  150.           THEN UPDATE log_users SET tipo = ('Fuera de horario');
  151.        END IF;
  152. END;
  153.  
  154. SELECT * FROM log_users;
  155.  
  156. Practica 6----------------------------------------------------------------------------------------------------------
  157. SELECT XMLELEMENT ("Empleados",
  158. XMLAGG(
  159. XMLForest(first_name || ' ' || last_name AS "Nombre", jobs.job_id AS "Puesto" )))
  160. FROM EMPLOYEES, JOBS
  161. WHERE employees.job_id = jobs.job_id AND jobs.job_id = 'FI_ACCOUNT';
  162.  
  163. SELECT XMLELEMENT ("Empleados",
  164. XMLAGG(
  165. XMLELEMENT("Empleado",
  166. xmlattributes(first_name || ' '  ||last_name AS "Nombre", jobs.job_id AS "Puesto")))) AS "Emps"
  167. FROM EMPLOYEES, JOBS
  168. WHERE employees.job_id = jobs.job_id AND jobs.job_id = 'FI_ACCOUNT';
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement