Skip to content

Latest commit

 

History

History
55 lines (52 loc) · 2.15 KB

Ejercicios clase 1.md

File metadata and controls

55 lines (52 loc) · 2.15 KB

Clase 1 Programación de bases de datos

Para los siguientes ejercicios, utilizar la base de datos HR (human resources) de Oracle 18c EX

Ejercicio 1:

Listar todos los paises de Americas

SELECT COUNTRY_NAME FROM HR.COUNTRIES WHERE REGION_ID = (SELECT REGION_ID FROM HR.REGIONS WHERE REGION_NAME = 'Americas');

Ejercicio 2:

Crear un listado que contenga el nombre del departamento y el total de los empleados

SELECT department_name, count(employee_id) FROM HR.DEPARTMENTS JOIN HR.EMPLOYEES on departments.department_id = employees.department_id GROUP BY department_name ORDER BY department_name ASC;

Ejercicio 3:

Usando anonymous blocks

-- Se altera el formato de fecha de la sesión para usar un formato conocido
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD';
-- Se definen variables con su nombre y tipo, este proceso es opcional
-- Para definir un valor por defecto a la variable se utiliza :=
-- También es posible hacerlo utilizando 'DEFAULT <value>'
DECLARE
    SALIDA VARCHAR(80);
    ENTRADA INT := 100;
    fecha date := '2000-11-17';
    edad real;
-- Se comienza la ejecución del bloque anónimo, dentro de este se puede ejecutar cualquier Query
BEGIN
    SELECT FIRST_NAME INTO SALIDA FROM EMPLOYEES WHERE EMPLOYEE_ID = ENTRADA;
    -- El comando DBMS_OUTPUT.PUT_LINE es un comando de pl/sql, su función es enviar un mensaje a la base de datos
    DBMS_OUTPUT.PUT_LINE('el primer nombre del empleado ' || ENTRADA || ' es ' || SALIDA);
    SELECT ROUND((sysdate-fecha)/365.25,2) into edad from dual;
    DBMS_OUTPUT.PUT_LINE('la edad de jaime es ' || edad);
END;
DECLARE
    entrada VARCHAR(80) := 'France';
    region VARCHAR(80);
BEGIN
    SELECT REGION_NAME into region FROM REGIONS JOIN COUNTRIES USING(REGION_ID) WHERE COUNTRY_NAME = entrada;
    DBMS_OUTPUT.PUT_LINE('el continente de ' || entrada || ' es ' || region);
END;
DECLARE
    entrada VARCHAR(80) := 'France';
    region VARCHAR(80);
BEGIN
    SELECT REGION_NAME into region FROM REGIONS JOIN COUNTRIES C2 on REGIONS.REGION_ID = C2.REGION_ID WHERE COUNTRY_NAME = entrada;
    DBMS_OUTPUT.PUT_LINE('el continente de ' || entrada || ' es ' || region);
END;