11
 /* QUERY 1 ========================================= */ Create Database Escuela Create Table Alumnos ( matricula char(8) nombre char(1!) a"" char(1!) a"m char(1!) carrera char(#) $%nac DateTime se&o char(1) ) Create Table 'AT%Alumno ( matricula char(8) ce%mat char() ce%"ro$ char() semestre numeric(!) "rome+io numeric(,!) ) -.ERT -.T0 Alumnos alues(1212!340RAC-05ERE6RA'-RE6-C!,/23/1337') -.ERT -.T0 Alumnos alues(1212!8'-UE9D0'-.UE6905E6-'E1/27/133') -.ERT -.T0 Alumnos alues(1212!,7AU9UT-ERRE6:90RE-E-1!/11/1337') -.ERT -.T0 Alumnos alues(1212!7!ADR-A.A0A9U0-C23/21/1338:) -.ERT -.T0 Alumnos alues(1212!!#CR-T-.AA.C4E65UE.TE-'E1,/2/1337:) -.ERT -.T0 'AT%Alumno alues(1212!3'ATE,2221!,122;22) -.ERT -.T0 'AT%Alumno alues(1212!8REDE,22223#8,;!) -.ERT -.T0 'AT%Alumno alues(1212!,7CA9C,2221717;82) -.ERT -.T0 'AT%Alumno alues(1212!7!<AD1,222!1#3!;8) -.ERT -.T0 'AT%Alumno alues(1212!!#C'U9,22213!73;!) /*

BD - Escuela

  • Upload
    daaha2

  • View
    214

  • Download
    0

Embed Size (px)

DESCRIPTION

dAABASE

Citation preview

/*QUERY 1 =========================================*/

Create Database EscuelaCreate Table Alumnos(matricula char(8),nombre char(12),app char(12),apm char(12),carrera char(3),f_nac DateTime,sexo char(1),)Create Table MAT_Alumno(matricula char(8),cve_mat char(4),cve_prof char(6),semestre numeric(2),promedio numeric(5,2),)INSERT INTO Alumnosvalues('10160269','HORACIO','PEREZ','RAMIREZ','ISC','25/09/1997','M')INSERT INTO Alumnosvalues('10160268','MIGUEL','DOMINGUEZ','LOPEZ','IME','14/07/1996','M')INSERT INTO Alumnosvalues('10160257','SAUL','GUTIERREZ','FLORES','IEI','12/11/1997','M')INSERT INTO Alumnosvalues('10160272','ADRIANA','SOSA','LUGO','ISC','09/01/1998','F')INSERT INTO Alumnosvalues('10160223','CRISTINA','SANCHEZ','PUENTE','IME','15/04/1997','F')INSERT INTO MAT_Alumnovalues('10160269','MATE','500012',5,100.00)INSERT INTO MAT_Alumnovalues('10160268','REDE','500009',3,85.62)INSERT INTO MAT_Alumnovalues('10160257','CALC','500017',1,76.80)INSERT INTO MAT_Alumnovalues('10160272','BAD1','500021',3,92.48)INSERT INTO MAT_Alumnovalues('10160223','CMUL','500019',2,79.24)/*QUERY 2 =========================================

En SQL Server 2005 si se puede abrir tabla 1)MOSTRAR LOS ALUMNOS CUYA CARRERA EN ISC Y SEXO=M2)MOSTRAR TODA LA IONFORMACION DE LA TABLA MAT-Alumno3)ACTUALIZAR EL PROMEDIO DE UN ALUMNO X, PNGALE 1004)AGREGAR UNA COLUMNA A LA TABLA ALUMNOS (FechaIngreso DateTime)5)PONGA DATOS TODOS IGUALES A LA COLUMNA QUE AGREGEN EL PUNTO 46)AGREGUE UNA COLUMNA A LA TABLA MAT_Alumno (hrs_clase numeric2)7)ACTUALICE LOS DATOS DE LA COLUMNA AGREGADA CON DIFERENTES VALORES*/

Select *From AlumnosWhere carrera='ISC' AND sexo='M'

Select *From MAT_Alumno

Update MAT_Alumnoset promedio=100where matricula='10160223'/*Y despus volver a ejecutar de nuevo lo siguiente para ver la tabla MAT_Alumno*/Select *From MAT_Alumno/*No es necesario where en este caso*/

Alter table Alumnosadd FechaIngreso DateTime Update Alumnosset FechaIngreso = '23/08/2010'Alter table MAT_Alumnoadd hrs_clase Numeric(5,2)Update MAT_Alumno set hrs_clase = 5where matricula = '10160269'Update MAT_Alumno set hrs_clase = 4where matricula = '10160268'Update MAT_Alumno set hrs_clase = 8where matricula = '10160257'Update MAT_Alumno set hrs_clase = 15where matricula = '10160272'Update MAT_Alumno set hrs_clase = 7where matricula = '10160223'/*QUERY 3 =========================================*/

/*1) Mostrar la matricula, clave, materia y el promedio de las materiasde un alumno en particular*/Select matricula, cve_mat, promedioFrom MAT_Alumno Where matricula = '10160269'

/*2) Crear una tabla materias que contenga la clave de la materia, descripcin, semestre, numero de horas clase y creditos*/Create Table materias(cve_mat char(4),descripcion char(30),semestre numeric(2),num_horas numeric(1),creditos numeric(5,2),)

/*3) Agregar datos a la tabla del punto 2*/Insert into materiasvalues('BADI','BASE DE DATOS I', 5, 5, 10)

Insert into materiasvalues('MATE','MATEMATICAS',2,4,6)

Insert into materiasvalues('REDE','REDES',4,6,9)

Insert into materiasvalues('CALC','CALCULO',1,7,4)

Insert into materiasvalues('CMUL','MATEMATICAS',2,4,6)/*4) Cuantas materias lleva cursadas un Alumno X*/Select count(matricula)from MAT_Alumnowhere matricula='10160269'/*Le ingresare datos a la tabla MAT_Alumno para que me aparezca mas de un materiapor cada alumno*/

INSERT INTO MAT_Alumnovalues('10160269','REDE','500009', 3, 100.00, 6)INSERT INTO MAT_Alumnovalues('10160268','BAD1','500021', 3, 87.42, 8)INSERT INTO MAT_Alumnovalues('10160257','MATE','500012', 5, 79.85, 7)INSERT INTO MAT_Alumnovalues('10160272','CMUL','500019', 2, 85.27, 5)INSERT INTO MAT_Alumnovalues('10160223','CALC','500017', 1, 83.39, 9)

/*4) Cuantas materias lleva cursadas un Alumno X*/Select count(matricula)from MAT_Alumnowhere matricula='10160269'/*El punto 4 mejorado ahora: */Select A.nombre, A.app, A.apm, count(B.matricula)from Alumnos A, MAT_Alumno Bwhere A.matricula='10160269' AND A.matricula=B.matriculaGROUP by A.nombre, A.app, A.apm

/*5) Mostrar el nombre de cada materia que ha cursado un Alumno X*/

Select B.matricula, A.descripcionFrom materias A, MAT_Alumno BWhere B.matricula = '10160269' AND A.cve_mat = B.cve_mat

/*6) Agregar a la tabla materias un atributo "carrera"*/ALTER Table materiasADD carrera char(3)

/*QUERY 4 =========================================*/

/*1) Antes de utilizar ests tres lineas hacemos unos ajustes para que no nos marque0 filas afectadas

update materias set num_horas = 5where semestre = 5 AND num_horas = 3*/

Update materias set num_horas = 3where cve_mat = 'BADI'Update materias set num_horas = 3where cve_mat = 'CMUL'

Update materias set semestre = 5where cve_mat = 'CMUL'

/*1) Modificar el numero de horas clase para todas aquellas materias cuyo semestre seaigual a 5 (quinto semestre) y el numero de horas de clase sea 3*/update materias set num_horas = 5where semestre = 5 AND num_horas = 3/*2) Actualizar el atributo carrera para cada una de las materias segn a la carrera???cve_mat???? a la que pertenece*/

/*Las siguientes 3 lineas es para corregir un error*/Update materias Set descripcion = 'CALCULO MULTIVARIABLE'Where cve_mat = 'CMUL'/*Y ahora si el punto 2*/Update materiasSet carrera = 'ISC'Where cve_mat = 'BADI'Update materiasSet carrera = 'ISC'Where cve_mat = 'REDE'

Update materiasSet carrera = 'IME'Where cve_mat = 'CALC'Update materiasSet carrera = 'IEI'Where cve_mat = 'CMUL'Update materiasSet carrera = 'IEI'Where cve_mat = 'MATE'

/*Y tambien voy a agregar mas datos a la tabla materias*/Insert into materiasvalues('PROG','PROGRAMACION', 5, 5, 10, 'ISC')

Insert into materiasvalues('EDAT','ESTRUCTURA DE DATOS', 2, 4, 9, 'ISC')

Insert into materiasvalues('SFOU','SERIES DE FOURIER', 4, 6, 5, 'ISC')

Insert into materiasvalues('SDIG','SISTEMAS DIGITALES', 2, 7, 8, 'IEI')Insert into materiasvalues('TCIR','TEORIA DE CIRCUITOS', 3, 3, 10, 'IEI')

Insert into materiasvalues('ELEC','ELECTRONICA', 4, 4, 7, 'IEI')

Insert into materiasvalues('MICR','MICROPROCESADORES', 5, 6, 9, 'IEI')

Insert into materiasvalues('CALC','CALCULO', 1, 7, 5, 'IME')

Insert into materiasvalues('CMUL','MATEMATICAS', 2, 4, 6, 'IME')

Insert into materiasvalues('MCNM','MECANISMOS', 7, 6, 11, 'IME')/*Correigir ahora mi error de el penultimo insert*/Update materias Set descripcion = 'CALCULO MULTIVARIABLE'Where cve_mat = 'CMUL'/*Y de pasada tambien voy a ingresar mas datos a las otras dos tablas*/

INSERT INTO MAT_Alumnovalues('10160269','PROG','500010', 4, 99.99, 7)INSERT INTO MAT_Alumnovalues('10160269','EDAT','500011', 3, 98.42, 5)INSERT INTO MAT_Alumnovalues('10160269','SFOU','500013', 5, 100.00, 3)

INSERT INTO MAT_Alumnovalues('10160270','REDE','500009', 3, 78.28, 6)INSERT INTO MAT_Alumnovalues('10160271','BAD1','500021', 3, 72.42, 8)INSERT INTO MAT_Alumnovalues('10160273','MATE','500012', 5, 98.85, 7)INSERT INTO MAT_Alumnovalues('10160274','CMUL','500019', 2, 76.27, 5)INSERT INTO MAT_Alumnovalues('10160275','CALC','500017', 1, 93.39, 9)INSERT INTO MAT_Alumnovalues('10160276','PROG','500010', 4, 81.00, 7)INSERT INTO MAT_Alumnovalues('10160277','EDAT','500011', 3, 89.42, 5)INSERT INTO MAT_Alumnovalues('10160278','SFOU','500013', 5, 77.85, 3)INSERT INTO MAT_Alumnovalues('10160279','SDIG','500014', 2, 92.27, 4)INSERT INTO MAT_Alumnovalues('10160280','TCIR','500015', 5, 86.39, 8)INSERT INTO MAT_Alumnovalues('10160281','ELEC','500016', 4, 75.58, 6)INSERT INTO MAT_Alumnovalues('10160282','MICR','500018', 5, 97.42, 8)INSERT INTO MAT_Alumnovalues('10160283','CALC','500012', 5, 89.85, 7)INSERT INTO MAT_Alumnovalues('10160284','CMUL','500019', 2, 75.27, 5)INSERT INTO MAT_Alumnovalues('10160285','MCNM','500020', 1, 93.39, 7)/*Y ahora le ingresare datos a la tabla Alumnos*/

INSERT INTO Alumnosvalues('10160270','GILBERTO','ALONSO','ZARATE','ISC','23/06/1995','M','23/08/2010')INSERT INTO Alumnosvalues('10160271','MARTHA','PEREZ','ESPINOSA','IME','24/11/1996','F','23/08/2010')INSERT INTO Alumnosvalues('10160273','NESTOR','CANO','MARTINEZ','IEI','22/01/1997','M','23/08/2010')INSERT INTO Alumnosvalues('10160274','MARGARITA','DE LA CRUZ','TOVAR','ISC','01/05/1998','F','23/08/2010')INSERT INTO Alumnosvalues('10160275','RICARDO','GARCIA','CAMPOS','IME','05/03/1997','M','23/08/2010')INSERT INTO Alumnosvalues('10160276','MAGALY','FLORES','CASTAEDA','ISC','15/07/1997','F','23/08/2010')INSERT INTO Alumnosvalues('10160277','CECILIA','CASTILLO','ORTIZ','IME','22/02/1996','F','23/08/2010')INSERT INTO Alumnosvalues('10160278','RICARDO','GONZALEZ','MATA','IEI','15/11/1997','M','23/08/2010')INSERT INTO Alumnosvalues('10160279','EDUARDO','ESQUIVEL','MORALEZ','ISC','26/01/1998','M','23/08/2010')INSERT INTO Alumnosvalues('10160280','ULISES','LUNA','LUJAN','IME','15/06/1997','M','23/08/2010')INSERT INTO Alumnosvalues('10160281','ALDO','VALDEZ','TORRES','ISC','12/04/1997','M','23/08/2010')INSERT INTO Alumnosvalues('10160282','CESAR','VAZQUEZ','RAMOS','IME','11/04/1996','M','23/08/2010')INSERT INTO Alumnosvalues('10160283','NANCY','TORRES','CONTRERAS','IEI','15/11/1997','F','23/08/2010')INSERT INTO Alumnosvalues('10160284','MARIBEL','SOTO','DE LEON','ISC','13/07/1998','F','23/08/2010')INSERT INTO Alumnosvalues('10160285','MONICA','RANGEL','FUENTES','IME','11/01/1997','F','23/08/2010')/*Y ponerle a mi matricula mi nombre*/Update Alumnos Set nombre = 'ANGEL'Where matricula = '10160269'Update Alumnos Set app = 'JUAREZ'Where matricula = '10160269'Update Alumnos Set apm = 'MENDOZA'Where matricula = '10160269'

/*3) Eliminar el atributo semestre de MAT_Alumno*/

ALTER table MAT_AlumnoDROP column semestre/*4) Mostrar todos los alumnos de la carrera ISC cuyo promedio general sea mayor o igual a 70. (matricula, nombre completo y promedio general)*/

Select A.matricula, A.nombre, A.app, A.apm, AVG(B.promedio)From Alumnos A, MAT_Alumno BWhere A.carrera = 'ISC' AND A.matricula = B.matriculaGROUP By A.matricula, A.nombre, A.app, A.apmHAVING AVG(B.promedio) >= 70

/*5) Mostrar el nombre de la materia, la matricula, el semestre para cada uno de los alumnos de la carrera ISC que estn en el semestre 5*/Select B.matricula, A.descripcion, A.semestreFROM materias A, alumnos BWhere A.carrera = 'ISC' AND A.semestre=5 AND A.carrera = B.carrera

/*6) Agregar al ejercicio anterior el nombre del alumno*/Select B.nombre , B.app, B.apm, B.matricula, A.descripcion, A.semestreFROM materias A, alumnos BWhere A.carrera = 'ISC' AND A.semestre=5 AND A.carrera = B.carrera

/*7) Mostrar la matricula, cve_mat, cve_prof, nombre de la materia, crditos de los alumnos que son mujeres que estn en la carrera ISC*/Select A.matricula, A.cve_mat, B.descripcion, A.cve_prof, B.creditosFROM MAT_Alumno A, materias B, Alumnos CWhere C.sexo = 'F' AND C.carrera = 'ISC' AND C.matricula = A.matricula AND A.cve_mat = B.cve_mat

/*QUERY 5 =========================================*/

/*1) Mostrar el nombre de las materias que imparte el maestro X*//*Antes tengo que corregir que en MAT_Alumno BAD1 sea BADI*/Update MAT_Alumno Set cve_mat = 'BADI'Where cve_mat = 'BAD1'/*Y ahora si el punto 1*/Select B.descripcionFrom MAT_Alumno A, materias BWhere A.cve_prof = '500021' AND A.cve_mat = B.cve_mat /*La tabla mostrada despues de Ejutar las anteriores 3 lineas son repetidas porque deb de ingresar de otramanera los datos, o quizas las tres repeticiones nos muestra las matriculas de los alumnos a cualesles da clases*/

/*2) Cuntos alumnos en general tiene el maestro X*/Select COUNT(matricula)From MAT_Alumno Where cve_prof = '500021'

/*3) Muestre el nombre del maestro, el nombre de la materia que imparte cada maestro, ordenado por maestro y por materia*//*Y segun el diagrama agregar los atributos grupo y hora en la tabla MAT_Alumnos, la duda es sies que tengo que elimianr el atributo hrs_clase, en el punto 6 se va a actualizar grupo y hora, aunque de una vezvoy a crear los campos*/

ALTER Table MAT_AlumnoADD grupo char(6)ALTER Table MAT_AlumnoADD horas numeric(2)

/*Si me hubiera equivocado en poner hora en lugar de horas eliminar hora me hubiera ayudadoALTER Table MAT_AlumnoDROP column hora*/

/*Antes tengo que crear la tabla Profesores con atributos de cve_prof y nombre_prof*/Create Table Profesores(cve_prof char(6),nombre_prof char(30),)/*Agregar datos a la tabla Profesores*/

INSERT INTO Profesores values('500012','CARLOS GONZALEZ')

INSERT INTO Profesores values('500009','ORLANDO ARZOLA')INSERT INTO Profesores values('500017','MARIA DE JESUS IBARRA')

INSERT INTO Profesores values('500021','ABEL BAUELOS')

INSERT INTO Profesores values('500019','ISMAEL')

INSERT INTO Profesores values('500010','GLORIA CAMPOS')

INSERT INTO Profesores values('500011','ALICIA')

INSERT INTO Profesores values('500013','NANCY CHAVANA')

INSERT INTO Profesores values('S00014','DANIEL MARTINEZ')

INSERT INTO Profesores values('S00015','JOSE OLVERA')

INSERT INTO Profesores values('S00016','CRISTOPHER ZAVALA')

INSERT INTO Profesores values('S00018','JORGE HINOJOSA')

INSERT INTO Profesores values('S00020','MIGUEL FLORES')

/*Y ahora si a hacer el punto 3*/Select B.nombre_prof , A.descripcionFrom materias A, Profesores B, MAT_Alumno CWhere B.cve_prof = C.cve_prof AND A.cve_mat = C.cve_mat ORDER By B.nombre_prof , A.descripcion /*Despues de ejecutar las anteriores 4 lineas se observa que hay ambiguedad de datos*/

/*4) Muestre la lista de alumnos de la materia X ordenada por apellido paterno, apellido materno y nombre*/Select A.app, A.apm, A.nombreFrom Alumnos A, MAT_Alumno BWhere B.cve_mat = 'BADI' AND A.matricula = B.matricula ORDER By A.app, A.apm, A.nombre

/*5) Muestre las materias de la carrera ISC ordenadas por semestre*/Select cve_mat, descripcion, semestreFrom materias Where carrera = 'ISC'ORDER By semestre

/*6) Actualice la tabla MAT_Alumno el atributo grupo y hora*/Update MAT_Alumno set grupo = '5ISCA', horas = 5

/*7) Modifique el atributo Numero de horas (por semana) para todas aquellas materias cuyo semestre es mayor que 5*/Update materias set num_horas = 8where semestre > 5

/*8) Muestre los alumnos que llevan o cursan la materia BD1 y cuyo promedio sea mayor que 7 y menos que 9*/Select A.matricula, A.nombre+' '+A.app+' '+A.apm AS NombreFrom Alumnos A, MAT_Alumno BWhere B.promedio BETWEEN 70 AND 90 AND B.cve_mat='BADI' AND A.matricula=B.matricula

/*9) Cuantas horas asiste (debiera) un alumno del semestre 5 a clase a la semana*/Select SUM(A.num_horas)From materias A, MAT_Alumno B, Alumnos C Where A.semestre =5 AND B.cve_mat=A.cve_mat AND B.matricula=C.matricula AND C.matricula='10160269'

/*10) Cuntos crditos lleva acumulados un alumno a la fecha?*/Select SUM(A.creditos)From materias A, MAT_Alumno B, Alumnos C Where B.cve_mat=A.cve_mat AND B.matricula=C.matricula AND C.matricula='10160269'