Ejemplos y ejercicios PLSQL
Table of Contents
- 1. Programación
- 1.1. Tabla de multiplicar Del 7
- 1.2. Tablas de multiplicar del 1 al 9
- 1.3. Tablas de multiplicar bien alineadas
- 1.4. Nota cualitativa
- 1.5. Pasar de decimal a binario
- 1.6. Pasar de decimal a una base entre 2 y 16
- 1.7. Pasar de una base de 2 a 16 a decimal
- 1.8. Imprimir los números primos menores de 1000
- 1.9. Decidir si un número es capicúa
- 1.10. Imprimir los Números primos capicúas menores de 100000
- 1.11. Decidir si 1000003 es primo
- 1.12. Convertir boolean a char
- 2. Estudiantes
- 3. Sueldos y masa salarial (desnormalización)
1 Programación
1.1 Tabla de multiplicar Del 7
7 x 1 = 7 7 x 2 = 14 ...
1.2 Tablas de multiplicar del 1 al 9
1.3 Tablas de multiplicar bien alineadas
Los números se tabulan alineándolos a la derecha
7 x 1 = 7 7 x 2 = 14 7 x 3 = 21 7 x 4 = 28 7 x 5 = 35 7 x 6 = 42 7 x 7 = 49 7 x 8 = 56 7 x 9 = 63 7 x 10 = 70
1.4 Nota cualitativa
Haz una función que reciba una nota numérica sobre 10 y devuelva su nota cualitativa. Por ejemplo, para 7.3
es notable
.
1.5 Pasar de decimal a binario
1.6 Pasar de decimal a una base entre 2 y 16
1.7 Pasar de una base de 2 a 16 a decimal
1.8 Imprimir los números primos menores de 1000
1.9 Decidir si un número es capicúa
Usa to_char
para pasar el número a texto, y utiliza substr
para extraer posiciones del texto y compararlas.
1.10 Imprimir los Números primos capicúas menores de 100000
1.11 Decidir si 1000003 es primo
1.12 Convertir boolean a char
Crea una función que reciba un boolean
y devuelva 'si'
si es true
y 'no'
si es false
.
2 Estudiantes
2.1 Estadística por nombre
Crea un procedimiento que reciba un nombre o apellido, e imprima cuántos alumnos tienen ese nombre o apellido.
2.2 Matricular un hermano
Un hermano comparte todos los datos, excepto el nombre y el tratamiento
2.3 Calcular nota máxima y mínima
Crea un procedimiento con dos parámetros out, que devuelvan la nota mínima y máxima entre las notas parciales (tabla grade
)
2.4 Calcular la media de notas por encima de cierto valor
Crea una función que devuelva la media de las notas mayores que un umbral (tabla grade
)
2.5 Costes totales de los cursos
Funcion que devuelve la suma de los precios de todos los cursos (table course
)
2.6 Insertar un ID automático en un estudiante
Crea un trigger que añada un ID a los estudiantes insertados, en el caso de que no tengan un ID ya asignado. El ID saldrá de una secuencia.
2.7 Actualizar campos de auditoría
Crea triggers que actualicen los campos de auditoría modified_by
y modified_date
de todas las tablas de la base de datos.
3 Sueldos y masa salarial (desnormalización)
3.1 Tablas de masa salarial
create table sueldos(idempleado, sueldo numeric) create table masasalarialtotal(total numeric);
3.2 Limitar los sueldos por arriba y por abajo
haz un trigger que asegure que los empleados no cobran menos de 100000€ ni más de 1000000€.
3.3 Inicializar la masa salarial
Crea una tabla masasalarialtotal
. Tendrá una sola fila con la suma de todos los sueldos
create table masasalarialtotal( total numeric );
Crea un procedimiento que se asegure que solo hay una fila con la suma de todos los sueldos.
3.4 Actualizar al borrar
Crea un trigger que actualice la masa salarial al borrar un sueldo
3.5 Actualizar al modificar o insertar
Crea un trigger que actualice la masa salarial al modificar o insertar un sueldo