Documente Academic
Documente Profesional
Documente Cultură
5. Seleccionar los nombres de los empleados con la primera letra en mayúscula, los apellidos
de los empleados en mayúsculas y los correos electrónicos en minúsculas.
7. Obtener los primeros 10 caracteres de todas las direcciones y mostrar la longitud original
de cada dirección.
9. Seleccionar todas las direcciones, mostrar las direcciones eliminando el carácter “1”
cuando aparezca al inicio de la dirección y mostrar las direcciones reemplazando el carácter
“1” por “10” que aparezcan en la dirección.
10. Seleccionar la comisión de los empleados, mostrar el valor redondeado al segundo decimal,
truncado al primer decimal, el número entero superior e inferior de la comisión. Así
también mostrar el salario y residuo de la división del salario y la comisión. Ordenar por
comisión de manera ascendente y mostrar los valores nulos al final.
11. Mostrar la fecha actual de la sesión, así como la fecha y hora más precisa de la sesión.
Además seleccionar la fecha de contratación de los empleados y los meses que han
transcurrido desde su contratación al día actual.
12. Seleccionar la fecha de contratación de los empleados, la fecha del segundo mes que
trabajaron, el siguiente día “Lunes” que trabajaron desde su fecha de contratación y el
último día del mes que fueron contratados.
SELECT first_name,
TO_CHAR(hire_date,'[DD][MM][YYYY]') "FECHA",
phone_number,
TO_NUMBER(SUBSTR(phone_number,0,3),'999') "NUMERO"
FROM employees;
15. Mostrar los nombres y comisión de los empleados. También indicar que la comisión es “0”
cuando no tenga valor y la última sección debe mostrar la leyenda “CON COMISION”
cuando el empleado tenga comisión, o la leyenda “SIN COMISION” cuando no haya valor.
16. Seleccionar el apellido y correo electrónico de los empleados. Así también mostrar un valor
nulo si la longitud del apellido y el correo son iguales. Mostrar la comisión y en caso de que
la comisión sea nula indicar el valor “10’” si no es nula multiplicar la comisión por “100”.
21. Seleccionar los nombres de los empleados, el identificador y el nombre del departamento
al que pertenecen cada uno. Realizar la unión de las tablas con la sintaxis antigua para un
JOIN.
22. Realizar la consulta anterior con la nueva sintaxis para un JOIN utilizando la cláusula ON.
24. Realizar la consulta anterior con la nueva sintaxis para un JOIN utilizando la cláusula USING.
25. Realizar la consulta anterior con la nueva sintaxis utilizando la cláusula NATURAL JOIN.
26. Mostrar el número de registros resultantes del producto cartesiano entre la tabla
“LOCATIONS” y “REGIONS” sin utilizar la sintaxis de JOIN.
SELECT COUNT(*)
FROM locations, regions;
27. Realizar la misma operación anterior utilizando la sintaxis de JOIN para un producto
cartesiano.
SELECT COUNT(*)
FROM locations CROSS JOIN regions;
28. Para el siguiente ejercicio de auto evaluación es necesario establecer una conexión con
el usuario OE y conocer la estructura e información de las tablas “CUSTOMERS” y
“ORDERS”.
El nombre de los clientes debe ser con letras mayúsculas con el título “NOMBRE”
El apellido de los clientes en letras minúsculas con el título “APELLIDO”.
El territorio debe contener 3 símbolos “+” a la izquierda y 2 símbolos “>>” a la derecha. Se
debe concatenar el lenguaje a la derecha de la cadena conformada anteriormente y
agregarle el título “TERRITORIO”. No utilizar funciones (CONCAT), ni operadores de
concatenación (||).
De la cuenta de correo electrónico solo debe de mostrar el símbolo de arroba y dominio.
Donde la segunda parte del dominio “EXAMPLE.COM” debe ser reemplazada por
“VENTAS.COM” y agregar el título “DOMINIO”.
La fecha de nacimiento debe mostrarse en un formato específico “'[12] [de] [Agosto] [de]
[2015]” y como título “NACIMIENTO”.
A partir de la fecha de nacimiento indicar el número de años que tiene el cliente, basado
en la fecha y hora precisa de la sesión. Redondear a un solo decimal y agregar el título
“AÑOS”.
Unir los clientes con sus órdenes.
Indicar la fecha de entrega, a partir de la fecha en que el cliente realizó su orden
sumando 1 mes y truncarla con referencia al mes. Incluir el título “ENTREGA”.
Agrupar para mostrar la suma del costo de las órdenes que cumplan el criterio de
agrupación. Mostrar un número entero superior de la suma y agregar el título “COSTO”.
Del criterio de selección, solo mostrar los registros que tengan un “COSTO” mayor a
100,000.
Una vez obtenido el reporte anterior, mostrar solo los registros que intersecan con el
criterio de “COSTO” mayor a 150,000.
Ordenar por “COSTO” de manera descendente.
SELECT
UPPER(cust_first_name) "NOMBRE",
LOWER(cust_last_name) "APELLIDO",
ROUND(MONTHS_BETWEEN(CURRENT_TIMESTAMP,date_of_birth)/12, 1) "AÑOS",
TRUNC(ADD_MONTHS(order_date,1),'MONTH') "ENTREGA",
CEIL(SUM(order_total)) "COSTO"
GROUP BY
UPPER(cust_first_name),
LOWER(cust_last_name),
TRUNC(ADD_MONTHS(order_date,1), 'MONTH')
INTERSECT
SELECT
UPPER(cust_first_name) "NOMBRE",
LOWER(cust_last_name) "APELLIDO",
CEIL(SUM(order_total)) "COSTO"
GROUP BY
UPPER(cust_first_name),
LOWER(cust_last_name),
'VENTAS.COM'),
ROUND(MONTHS_BETWEEN(CURRENT_TIMESTAMP,date_of_birth)/12, 1),
TRUNC(ADD_MONTHS(order_date,1), 'MONTH')