DP 4
DP 4
PARTICIPANTES
GRUPO #1
Objetivos
Seleccionar y aplicar funciones de una sola fila que realicen conversión de
mayúsculas/minúsculas y/o la manipulación de caracteres
Seleccionar y aplicar las funciones de manipulación de mayúsculas/minúsculas de caracteres
LOWER, UPPER e INTCAP en una consulta SQL
Seleccionar y aplicar las funciones de manipulación de caracteres CONCAT, SUBSTR,
LENGTH, INSTR, LPAD, RPAD, TRIM y REPLACE en una consulta SQL
Escribir consultas flexibles usando variables de sustitución
Terminología
Identifique el término para cada una de las siguientes definiciones.
Tabla DUAL Tabla ficticia que se utiliza para ver los resultados de
las funciones y los cálculos
Copyright © 2020 Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y sus filiales. Todos los demás nombres pueden ser marcas
comerciales de sus respectivos propietarios.
LOWER Convierte valores de carácter alfabético en minúsculas
Inténtelo/Resuélvalo
1. Mediante los tres palabras separadas “Oracle”, “Internet” y “Academy”, utilice un comando para
producir la siguiente salida:
The Net
net
7. Utilizando la cadena ‘Oracle Internet Academy’, produzca la salida mostrada mediante la función
REPLACE.
8. Cree una lista con la fecha del pedido y el total del pedido de la tabla F_ORDERS de Global Fast
Foods. Asigne al total del pedido el nombre TOTAL y rellene los espacios vacíos a la izquierda
del total del pedido con $.
SELECT order_date,
LPAD(order_total,7,’$’)AS “TOTAL”
FROM f_orders;
9. Escriba una consulta que genere una columna denominada “ADDRESS” con la siguiente
información: ZOE TWEE 1009 OLIVER Avenue BOSTON, MA 12889. Utilice la tabla
F_CUSTOMERS de Global Fast Foods.
10. Escriba una consulta que devuelva el primer carácter del primer nombre concatenado a
last_name, el salario y el identificador de departamento para los empleados que trabajan en el
departamento 20. Proporcione a la primera expresión el alias Name. Utilice la tabla
EMPLOYEES. Cambie la consulta para utilizar una variable de sustitución en lugar del valor
codificado 20 para el ID de departamento. Ejecute la consulta para el departamento 30 y 50 sin
cambiar la cláusula where original en la sentencia.
SELECT SUBSTR(first_name, 1,
1)||last_name AS “Name”, salary,
department_id
FROM employees
WHERE department_id =
enter_dept_id;
11. Mediante una variable de sustitución para el nombre de departamento, escriba una consulta que
muestre el identificador de departamento, el nombre de departamento y el identificador de la
ubicación de los departamentos situados en the_department_of_your_choice. Utilice la tabla
DEPARTMENTS.
Nota: Todas las variables de sustitución de OAE se tratan como cadenas de caracteres, por lo
que no son necesarias las comillas (‘ ‘).
SELECT department_id,
department_name, location_id
FROM DEPARTMENTS WHERE department_name =
the_department_of_your_choice;
12. Escriba una consulta que devuelva todos los datos de los empleados según el mes de su fecha
de contratación. Utilice la tabla EMPLOYEES. La sentencia debe devolver la parte del mes de la
fecha de contratación, la cual se comparará a continuación con un mes abreviado (JAN, FEB,
MAR) que se ha transferido a la consulta a través de una variable de sustitución.
Objetivos
Seleccionar y aplicar las funciones numéricas de una sola fila ROUND, TRUNC y MOD en una
consulta SQL
Distinguir entre los resultados obtenidos al aplicar TRUNC a un valor numérico y aplicar
ROUND a un valor numérico
Definir las consecuencias para el negocio de aplicar los valores numéricos TRUNC
y ROUND
Terminología
Identifique el término para cada una de las siguientes definiciones.
Inténtelo/Resuélvalo
1. Muestre last_name y el salario de los empleados de la base de datos Oracle para los
employee_ids entre 100 y 102. Incluya una tercera columna que divida cada salario
por 1,55 y redondee el resultado a dos decimales.
2. Muestre last_name y el salario de los empleados que trabajan en el departamento 80. Conceda a
cada uno de ellos un aumento de 5,333% y trunque el resultado a dos posiciones decimales.
5. Divida cada salario de empleado por 3. Muestre solo los apellidos y salarios de los empleados
que ganan un salario que es un múltiplo de 3.
7. ¿Cómo desearía que fuera su cheque de pago: redondeado o truncado? ¿Qué ocurre si su
cheque de pago calculado para la semana es por 565,784 $, pero se da cuenta de que se ha
emitido por 565,78 $? La pérdida de 0,004 centavos supondría poca diferencia para usted. Sin
embargo, ¿qué ocurre si esto le pasa a mil personas, 100.000 personas o un millón de
personas?
¿Habría una gran diferencia? ¿Cuánta diferencia?
Objetivos
Seleccionar y aplicar las funciones de una sola fila MONTHS_BETWEEN, ADD_MONTHS,
NEXT_DAY, LAST_DAY, ROUND y TRUNC que funcionan en los datos de fecha
Explicar cómo transforman las funciones de fecha las fechas de Oracle en datos de fecha o en
valores numéricos
Mostrar un uso adecuado de los operadores aritméticos con fechas
Mostrar el uso de SYSDATE y las funciones de fecha
Establecer las consecuencias de que los negocios de todo el mundo puedan manipular
fácilmente los datos almacenados en formato de fecha
Terminología
Identifique el término para cada una de las siguientes definiciones.
Inténtelo/Resuélvalo
1. Para DJs on Demand, muestre el número de meses entre event_date de la boda de Vigil y la
fecha actual. Redondee al mes más cercano.
SELECT name,event_date,
round(months_between(sysdate,
event_date)) as "meses"
from d_events
where name='Vigil wedding';
2. Muestre los días entre el inicio de las vacaciones escolares del verano pasado y el día que
comienza la escuela este año. Suponga que cada mes tiene 30,5 días. Asigne a la salida el
nombre “Days”.
Select round(months_between('9-
Jul-2019','26-Aug-2019')*30.5,0)
as "Days"
from dual;
Select to_date('1-Jan-2020','dd-
Mon-yyyy')-to_date('31-Dec-
2020','dd-Mon-yyyy') as "dias"
from dual;
4. Mediante una sentencia, redondee la fecha de hoy al mes y al año más cercanos y trúnquela al
mes y al año más cercanos. Utilice un alias para cada columna.
5. ¿Cuál es el último día del mes de junio de 2005? Utilice un alias para la salida.
6. Muestre el número de años entre la fecha de nacimiento del empleado de Global Fast Foods Bob
Miller y la fecha actual. Redondee al año más cercano.
Select last_name,
round(months_between(sysdate,birthdat
e)/12) as"numero de años" from f_staffs
where first_name='Bob';
7. Su próxima cita con el dentista es en seis meses a partir de hoy. ¿Qué día irá al dentista? Asigne
a la salida el nombre “Appointment”.
Select add_months(sysdate,6) as
"Appointment" from dual;
8. El profesor le ha avisado de que dispone hasta el último día de este mes para entregar el informe
de investigación. ¿Qué día es? Asigne a la salida el nombre “Deadline”.
9. ¿Cuántos meses hay entre su día de cumpleaños de este año y el 1 de enero del
próximo año?
Select to_date('28-Mar-2020','dd-Mon-
yyyy')-to_date('01-Jan-2020','dd-Mon-
yyyy') as "dias"from dual;
Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas
comerciales de sus respectivos propietarios
2
10. ¿Qué fecha es el viernes siguiente a su cumpleaños de este año? Asigne a la salida el nombre
“First Friday”.
Select next_day('28-Mar-2020','Friday')
as "First Friday" from dual;
12. Asigne un nombre a una función de fecha que devuelva una fecha.
add_months
13. Proporcione un ejemplo de por qué es importante que las compañías puedan manipular los datos
de fecha.
Porque sirve para llevar un mejor control de todos los datos de las compañías y evita
errores relacionados con fechas.
Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas
comerciales de sus respectivos propietarios
3
Ejercicios de Ampliación
2. Escriba una sentencia que muestre los títulos de CD de DJs on Demand para cd_numbers 90 y
91 en mayúsculas en una columna con la cabecera “DJs on Demand Collections”.
3. Escriba una sentencia que cree los nombres de usuario de computadora de los partners de DJs
on Demand. Los nombres de usuario estarán formados por las letras del apellido en minúsculas +
la primera letra del nombre en mayúsculas. Asigne a la columna el título “User Passwords”. Por
ejemplo, Mary Smythers sería smythersM.
4. Escriba una sentencia que convierta “It’s a small world” en “HELLO WORLD”.
5. Escriba una sentencia que elimine “fiddle” de “fiddledeedee” y “dum” de “fiddledeedum”. Muestre
el resultado “fiddledeedeedee” en una columna con la cabecera “Nonsense”.
10. ¿Cuál es el próximo viernes en seis meses a partir de ahora? Etiquete la columna
como “Future”.
Select next_day(add_months(sysdate,6),'Friday') as
"Future" from dual;
11. ¿Cuál será la fecha dentro de 10 años a partir de ahora? Etiquete la columna
como “Future”.
Select add_months(sysdate,10*12) as "Future" from dual;
12. Los años bisiestos se producen cada cuatro años. Recuerde que el 2004 fue un año bisiesto.
Ahora cree una función que muestre la fecha del siguiente año bisiesto como
29-Feb-2008. Etiquete la columna como “Future”.
Select to_char(last_day(to_date('01-Feb-2008','dd-Mon-
yyyy')), 'dd-Mon-yyyy') as future from dual;
13. Escriba una sentencia que busque cualquier tema de DJs on Demand que tenga una “ie” en su
nombre.
Select title from d_cds where title like '%ie%';
14. Escriba una sentencia que solo devuelva los CD de DJs on Demand de años mayores que 2000,
pero menores que 2003. Muestre el título y el año.
Select title,year from d_cds where year>2000 and
year<2003;
15. Escriba una sentencia que devuelva el ID de empleado de los empleados de la base de datos
Oracle y sus fechas de inicio de contratación entre el 1 de enero de 1997 y la fecha actual.
Muestre el resultado ordenado del contratado más recientemente al más antiguo.