Base de datos practica 2
SELECT *
FROM alumnos
WHERETO_CHAR(TO_DATE(TO_CHAR(fecha_nacimiento, 'dd/mm/') || TO_CHAR(sysdate, 'yyyy')), 'Iw') = TO_CHAR(sysdate,'Iw');
--2 Liste el nombre y apellidos de los profesores cuya antigüedad en la jubilación será de menos de 25 años de servicio. Esdecir, cuando cumplan 65 años, aún no tendrán 25 años de antigüedad. Utilice ADD_MONTHS para calcular la fecha en que tendrán los 65 años y MONTHS_BETWEEN para determinar la antigüedad.
SELECTnombre, apellido1, apellido2 antiguedad
FROM profesores
WHERE MONTHS_BETWEEN(add_months(fecha_nacimiento, 12*65), antiguedad) < 12*25;
--3 Para cada asignatura muestre el nombre, el curso, loscré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;
--4 Liste lainformación del nombre de las asignaturas troncales de segundo curso ordenadas por los créditos descendentemente. Muestre el valor de este atributo gráficamente, donde cada crédito se representa contres repeticiones del caracter '#'. Use la función LPAD. MEJORAR
SELECT nombre,creditos, lpad('#', creditos*3, '#') CREDITOS_GRAFICAMENTE
FROM asignaturas
WHERE caracter='TR' AND curso=2
ORDER BYcreditos DESC;
--5 Nombre y apellidos de los profesores del departamento de Lenguajes. Utilice JOIN ON entre las tablas DEPARTAMENTOS y PROFESORES.
SELECT p.nombre, p.apellido1,p.apellido2
FROMprofesores p JOIN departamentos d ON (p.departamento=d.codigo)
WHERE d.nombre LIKE 'Lenguajes%';
--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...
Regístrate para leer el documento completo.