Dml Universidad
select * from alumnos
where TO_CHAR(TO_DATE(TO_CHAR(fecha_nacimiento, 'dd/mm/') || TO_CHAR(sysdate, 'yyyy')), 'Iw') = TO_CHAR(sysdate,'Iw');
2_2-antiguedad teachers
select nombre, apellido1, apellido2 antiguedad from profesores
whereMONTHS_BETWEEN(add_months(fecha_nacimiento, 12*65), antiguedad) < 12*25;
2_3-Para cada asignatura muestre el nombre, el curso, los créditos totales y el valor de créditos mayor entre los teóricos o prácticos. Use la funión GREATEST.
select nombre, curso, creditos, GREATEST(teoricos, practicos) from asignaturas;
2_4-Liste la información del nombre de las asignaturas troncales de segundo curso ordenadas por los créditosdescendentemente.
Muestre el valor de este atributo gráficamente, donde cada crédito se representa con tres repeticiones del caracter '#'.
Use la función LPAD.
select nombre, lpad('#', creditos*3, '#') from asignaturas
where caracter like '%TR' order by creditos;
2_5-Nombre y apellidos de los profesores del departamento de Lenguajes. Utilice JOIN ON entre las tablas DEPARTAMENTOS y PROFESORES.
selectp.nombre, p.apellido1, p.apellido2, d.nombre
from profesores p join departamentos d on (p.departamento = d.codigo)
where d.nombre like 'Lenguajes%';
2_6-Nombre y apellidos de parejas de profesores cuya diferencia de antigüedad (en valor absoluto) sea inferior a dos años y pertenezcan al mismo departamento.
Muestre la antigüedad de cada uno de ellos en años.
select p1.nombre, p1.apellido1,p1.apellido2, p2.nombre, p2.apellido1, p2.apellido2 from profesores p1, profesores p2
where p1.nrp < p2.nrp
and abs(MONTHS_BETWEEN(p1.antiguedad, p2.antiguedad)) < 12*2
and p1.departamento = p2.departamento;
2_7-Muestre el nombre y apellidos de cada profesor junto con su director de tesis y el número de sexenios del director.
Recuerde que el director de tesis de un profesor viene dado por elatributo DIRECTOR_TESIS.
Los nombres de cada profesor y su director deben aparecer con el siguiente formato:
'El Director de Angel Mora Bonilla es Manuel Enciso Garcia-Oliveros'
select 'El Director de ' || p.nombre || ' ' || p.apellido1 || ' ' || p.apellido2 || ' es '|| f.nombre ||' ' || f.apellido1 || ' '|| f.apellido2
from profesores p join profesores f on(p.director_tesis = f.nrp);2_8-Usando la función NVL extraiga un listado con el código y el nombre de las asignaturas de las que está matriculado
'Nicolas Bersabe Alba'. Proporcione además el número de créditos prácticos, pero caso de ser nulo,
debe salir "no tiene" en el listado. Indicación: advierta que practicos es NUMBER y el literal 'No tiene' es VARCHAR2.
select m.asignatura, asig.nombre, nvl(TO_CHAR(asig.practicos), 'Notiene')
from alumnos al join matricular m on(al.dni = m.alumno) join asignaturas asig on (m.asignatura=asig.codigo)
where al.nombre = 'Nicolas' and al.apellido1 = 'Bersabe' and al.apellido2 = 'Alba';
2_9 Muestre el nombre, apellidos, nombre de la asignatura y las notas obtenidas por todos lo alumnos con más de 22 años.
Utilice la función DECODE para mostrar la nota como (Matricula de Honor,Sobresaliente, Notable, Aprobado, Suspenso o No Presentado).
Ordene por apellidos y nombre del alumno.
select al.nombre, al.apellido1, al.apellido2, asig.nombre, decode(mat.calificacion, 'NT', 'Notable', 'SB', 'Sobresaliente', 'SP', 'Suspenso', 'AP', 'Aprobado', 'MH', 'Matricula de honor', 'No presentado') calificacion
from alumnos al join matricular mat on(al.dni = mat.alumno) join asignaturasasig on(mat.asignatura = asig.codigo)
order by al.apellido1, al.apellido2, al.nombre;
2_10 Para cada profesor, proporcione el número de semanas completas que lleva trabajando en el departamento y diga que día se cumple un ciclo de semana completa.
Use las funciones TO_CHAR y NEXT_DAY. Tenga en cuenta que si el día de la semana donde cumple el ciclo es el día actual, NEXT_DAY le llevará a la...
Regístrate para leer el documento completo.