SELECT * FROM  alumno;
SELECT * FROM alumno_uea WHERE alumno_matricula = '90123';
SELECT * FROM uea;
SELECT * FROM licenciatura;


/*************CONSULTAS EN TABLAS MÚLTIPLES***************/

/*Selecciona el producto x entre las dos tablas*/
SELECT * FROM alumno,licenciatura;

/*Operacion Join*/
/*Como no hay columnas en común, regresa un error*/
SELECT * FROM alumno JOIN licenciatura USING(matricula); 

/*Operación Join con columnas diferentes*/
SELECT * FROM alumno JOIN licenciatura WHERE (alumno.licenciatura_clave = licenciatura.clave);

/*Seleccionar datos de varias tablas*/
/*Como no se especifican las relaciones entre llaves, regresa un producto cartesiano*/
SELECT alumno.primer_apellido,alumno.segundo_apellido,alumno.nombre,licenciatura.licenciatura FROM alumno,licenciatura;

/*Utilizando la relación entre llaves*/
SELECT alumno.primer_apellido,alumno.segundo_apellido,alumno.nombre,licenciatura.licenciatura FROM alumno,licenciatura
WHERE alumno.licenciatura_clave = licenciatura.clave;

/*Misma selección usando JOIN*/
SELECT alumno.primer_apellido,alumno.segundo_apellido,alumno.nombre,licenciatura.licenciatura FROM
( alumno JOIN licenciatura) WHERE (alumno.licenciatura_clave = licenciatura.clave);


/*************CONSULTAS ENTRE DOS TABLAS***************/


/*SELECCIONAR EL ALUMNO (S) DE INGENIERÍA EN COMPUTACIÓN (1110012) QUE ESTÁ ESTUDIANDO CÁLCULO 2 (101112)*/
SELECT alumno.matricula,alumno.primer_apellido,alumno.segundo_apellido,alumno.nombre FROM alumno,alumno_uea
WHERE alumno_uea.uea_clave = '1110012' AND  alumno_uea.alumno_matricula=alumno.matricula 
AND alumno.licenciatura_clave  = '101112';

/*MOSTRAR LOS NOMBRES DE LAS UEAS QUE ESTÁ CURSANDO EL ALUMNO CON MATRÍCULA 12345*/
SELECT uea.nombre FROM alumno_uea,uea 
WHERE alumno_uea.alumno_matricula = '12345' 
AND uea.clave = alumno_uea.uea_clave;

/*************CONSULTAS ENTRE TRES TABLAS***************/

/*MOSTRAR LOS APELLIDOS, NOMBRE Y MATRÍCULA ADEMÁS DE LOS NOMBRES Y CRÉDITOS DE LAS UEAS
QUE ESTÁ CURSANDO EL ALUMNO CON MATRÍCULA 45678*/
SELECT alumno.primer_apellido,alumno.segundo_apellido,alumno.nombre,uea.nombre,uea.creditos 
FROM alumno,uea,alumno_uea
WHERE 
alumno_uea.uea_clave=uea.clave 
AND alumno_uea.alumno_matricula=alumno.matricula
AND alumno.matricula='45678';

/*MOSTRAR LA MATRÍCULA, APELLIDOS, NOMBRE, NOMBRE DE LA UEA Y CRÉDITOS QUE CURSAN LOS ALUMNOS QUE SON DE 
INGENIERÍA EN COMPUTACIÓN (101112) ORDENADOS POR MATRÍCULA*/
SELECT alumno.matricula,alumno.primer_apellido,alumno.segundo_apellido,alumno.nombre,uea.nombre,uea.creditos 
FROM alumno,uea,alumno_uea 
WHERE alumno_uea.uea_clave=uea.clave 
AND alumno_uea.alumno_matricula=alumno.matricula 
AND alumno.licenciatura_clave = '101112' ORDER BY alumno.matricula;


/*SELECCIONAR LAS UEAS QUE ESTÁN SIENDO CURSADAS POR ALGÚN
ALUMNO DE INGENIERÍA EN COMPUTACIÓN*/
SELECT DISTINCT uea.nombre,uea.creditos FROM uea,alumno,alumno_uea WHERE
alumno_uea.uea_clave = uea.clave
AND alumno_uea.alumno_matricula = alumno.matricula
AND alumno.licenciatura_clave = '101112';

/*MOSTRAR LOS APELLIDOS, NOMBRE Y MATRÍCULA, ADEMÁS DE LOS NOMBRES Y CRÉDITOS DE LAS UEAS
QUE ESTÁN CURSANDO EL ALUMNO CUYO NOMBRE ES Nombre_10*/
SELECT alumno.primer_apellido,alumno.segundo_apellido,alumno.nombre,alumno.matricula,uea.nombre,uea.creditos 
FROM alumno,uea,alumno_uea WHERE
alumno.matricula = alumno_uea.alumno_matricula
AND uea.clave = alumno_uea.uea_clave
AND alumno.nombre = 'Nombre_10';

/*MOSTRAR LOS APELLIDOS, NOMBRE Y MATRICULA DEL ALUMNO, ASÍ COMO LOS NOMBRES DE LAS UEAS QUE ESTÁN
ESTUDIANDO INGENIERÍA CIVIL (Ingeniería Civil)*/

-- Alumnos que estudian Ingeniería Civil
SELECT * FROM  alumno WHERE licenciatura_clave = '101106';

-- Ueas que cursa el alumno 90123
SELECT * FROM  alumno_uea WHERE alumno_matricula = '90123';

-- Nombres de las ueas (1110012 y 1143056)
SELECT * FROM  uea WHERE clave IN ('1110012','1143056');

SELECT alumno.primer_apellido,alumno.segundo_apellido,alumno.nombre,alumno.matricula,uea.nombre
FROM alumno,uea,alumno_uea,licenciatura WHERE
alumno.matricula = alumno_uea.alumno_matricula
AND uea.clave = alumno_uea.uea_clave
AND alumno.licenciatura_clave = licenciatura.clave
AND licenciatura.licenciatura = 'Ingeniería Civil';

/*::Ejercicio::*/
/*MOSTRAR LOS APELLIDOS, NOMBRE Y MATRICULA DEL ALUMNO(S) DE INGENIERIA EN COMPUTACION (Ingeniería en Computación)
QUE ESTÁ LLEVANDO LA UEA (Métodos Numéricos)*/

-- Alumnos que llevan Métodos Numéricos
SELECT * FROM alumno_uea WHERE uea_clave = '1151023';

-- Alumnos que estudian Ingeniería en Computación
SELECT * FROM  alumno WHERE matricula IN ('12345','6789') AND licenciatura_clave = '101112';

SELECT alumno.primer_apellido,alumno.segundo_apellido,alumno.nombre,alumno.matricula
FROM alumno,licenciatura,uea,alumno_uea WHERE
alumno.matricula = alumno_uea.alumno_matricula
AND uea.clave = alumno_uea.uea_clave
AND alumno.licenciatura_clave = licenciatura.clave
AND licenciatura.licenciatura = 'Ingeniería en Computación'
AND uea.nombre = 'Métodos Numéricos';


/*CONTANDO CUANTAS MATERIAS TIENE CADA ALUMNO*/
SELECT DISTINCT alumno_uea.alumno_matricula, COUNT(alumno_uea.uea_clave) AS 'Total Materias' FROM alumno_uea 
WHERE alumno_uea.alumno_matricula 
IN (SELECT DISTINCT alumno_matricula FROM alumno_uea) 
GROUP BY alumno_uea.alumno_matricula ;


/*EJERCICIO*/
/*CONTANDO CUANTAS MATERIAS TIENE CADA ALUMNO DE INGENIERIA EN COMPUTACIÓN (101121)*/
SELECT DISTINCT alumno_uea.alumno_matricula, COUNT(alumno_uea.uea_clave) AS 'Total Materias' FROM alumno_uea 
WHERE alumno_uea.alumno_matricula 
IN 
(SELECT DISTINCT alumno_uea.alumno_matricula FROM alumno_uea,alumno
 WHERE alumno.matricula = alumno_uea.alumno_matricula
AND alumno.licenciatura_clave = '101112') 
GROUP BY alumno_uea.alumno_matricula ;