Вы находитесь на странице: 1из 11

/*

QUERY 1 =========================================
*/
Create Database Escuela
Create 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 Alumnos
values('10160269','HORACIO','PEREZ','RAMIREZ','ISC','25/09/1997','M')
INSERT INTO Alumnos
values('10160268','MIGUEL','DOMINGUEZ','LOPEZ','IME','14/07/1996','M')
INSERT INTO Alumnos
values('10160257','SAUL','GUTIERREZ','FLORES','IEI','12/11/1997','M')
INSERT INTO Alumnos
values('10160272','ADRIANA','SOSA','LUGO','ISC','09/01/1998','F')
INSERT INTO Alumnos
values('10160223','CRISTINA','SANCHEZ','PUENTE','IME','15/04/1997','F')

INSERT INTO MAT_Alumno


values('10160269','MATE','500012',5,100.00)
INSERT INTO MAT_Alumno
values('10160268','REDE','500009',3,85.62)
INSERT INTO MAT_Alumno
values('10160257','CALC','500017',1,76.80)
INSERT INTO MAT_Alumno
values('10160272','BAD1','500021',3,92.48)
INSERT INTO MAT_Alumno
values('10160223','CMUL','500019',2,79.24)
/*

QUERY 2 =========================================
En SQL Server 2005 si se puede abrir tabla

1)
2)
3)
4)
5)
6)
7)
*/

MOSTRAR LOS ALUMNOS CUYA CARRERA EN ISC Y SEXO=M


MOSTRAR TODA LA IONFORMACION DE LA TABLA MAT-Alumno
ACTUALIZAR EL PROMEDIO DE UN ALUMNO X, PNGALE 100
AGREGAR UNA COLUMNA A LA TABLA ALUMNOS (FechaIngreso DateTime)
PONGA DATOS TODOS IGUALES A LA COLUMNA QUE AGREGEN EL PUNTO 4
AGREGUE UNA COLUMNA A LA TABLA MAT_Alumno (hrs_clase numeric2)
ACTUALICE LOS DATOS DE LA COLUMNA AGREGADA CON DIFERENTES VALORES

Select *
From Alumnos
Where carrera='ISC' AND sexo='M'

Select *
From MAT_Alumno
Update MAT_Alumno
set promedio=100
where 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 Alumnos
add FechaIngreso DateTime
Update Alumnos
set FechaIngreso = '23/08/2010'
Alter table MAT_Alumno
add hrs_clase Numeric(5,2)
Update MAT_Alumno
set hrs_clase = 5
where matricula = '10160269'
Update MAT_Alumno
set hrs_clase = 4
where matricula = '10160268'
Update MAT_Alumno
set hrs_clase = 8
where matricula = '10160257'
Update MAT_Alumno
set hrs_clase = 15
where matricula = '10160272'
Update MAT_Alumno

set hrs_clase = 7
where matricula = '10160223'
/*
QUERY 3 =========================================
*/
/*1) Mostrar la matricula, clave, materia y el promedio de las materias
de un alumno en particular*/
Select matricula, cve_mat, promedio
From 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 materias
values('BADI','BASE DE DATOS I', 5, 5, 10)
Insert into materias
values('MATE','MATEMATICAS',2,4,6)
Insert into materias
values('REDE','REDES',4,6,9)
Insert into materias
values('CALC','CALCULO',1,7,4)
Insert into materias
values('CMUL','MATEMATICAS',2,4,6)
/*4) Cuantas materias lleva cursadas un Alumno X*/
Select count(matricula)
from MAT_Alumno
where matricula='10160269'
/*Le ingresare datos a la tabla MAT_Alumno para que me aparezca mas de un materia
por cada alumno*/
INSERT INTO MAT_Alumno
values('10160269','REDE','500009', 3, 100.00, 6)
INSERT INTO MAT_Alumno
values('10160268','BAD1','500021', 3, 87.42, 8)
INSERT INTO MAT_Alumno
values('10160257','MATE','500012', 5, 79.85, 7)
INSERT INTO MAT_Alumno
values('10160272','CMUL','500019', 2, 85.27, 5)
INSERT INTO MAT_Alumno

values('10160223','CALC','500017', 1, 83.39, 9)
/*4) Cuantas materias lleva cursadas un Alumno X*/
Select count(matricula)
from MAT_Alumno
where matricula='10160269'
/*El punto 4 mejorado ahora: */
Select A.nombre, A.app, A.apm, count(B.matricula)
from Alumnos A, MAT_Alumno B
where A.matricula='10160269' AND A.matricula=B.matricula
GROUP by A.nombre, A.app, A.apm
/*5) Mostrar el nombre de cada materia que ha cursado un Alumno X*/
Select B.matricula, A.descripcion
From materias A, MAT_Alumno B
Where B.matricula = '10160269' AND A.cve_mat = B.cve_mat
/*6) Agregar a la tabla materias un atributo "carrera"*/
ALTER Table materias
ADD carrera char(3)
/*
QUERY 4 =========================================
*/
/*1) Antes de utilizar ests tres lineas hacemos unos ajustes para que no nos marque
0 filas afectadas
update materias
set num_horas = 5
where semestre = 5 AND num_horas = 3
*/

Update materias
set num_horas = 3
where cve_mat = 'BADI'
Update materias
set num_horas = 3
where cve_mat = 'CMUL'
Update materias
set semestre = 5
where cve_mat = 'CMUL'
/*1) Modificar el numero de horas clase para todas aquellas materias cuyo semestre sea
igual a 5 (quinto semestre) y el numero de horas de clase sea 3 */
update materias
set num_horas = 5
where 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 materias
Set carrera = 'ISC'
Where cve_mat = 'BADI'
Update materias
Set carrera = 'ISC'
Where cve_mat = 'REDE'
Update materias
Set carrera = 'IME'
Where cve_mat = 'CALC'
Update materias
Set carrera = 'IEI'
Where cve_mat = 'CMUL'
Update materias
Set carrera = 'IEI'
Where cve_mat = 'MATE'
/*Y tambien voy a agregar mas datos a la tabla materias*/
Insert into materias
values('PROG','PROGRAMACION', 5, 5, 10, 'ISC')
Insert into materias
values('EDAT','ESTRUCTURA DE DATOS', 2, 4, 9, 'ISC')
Insert into materias
values('SFOU','SERIES DE FOURIER', 4, 6, 5, 'ISC')
Insert into materias
values('SDIG','SISTEMAS DIGITALES', 2, 7, 8, 'IEI')
Insert into materias
values('TCIR','TEORIA DE CIRCUITOS', 3, 3, 10, 'IEI')
Insert into materias
values('ELEC','ELECTRONICA', 4, 4, 7, 'IEI')
Insert into materias
values('MICR','MICROPROCESADORES', 5, 6, 9, 'IEI')
Insert into materias
values('CALC','CALCULO', 1, 7, 5, 'IME')
Insert into materias
values('CMUL','MATEMATICAS', 2, 4, 6, 'IME')
Insert into materias
values('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_Alumno
values('10160269','PROG','500010', 4, 99.99, 7)
INSERT INTO MAT_Alumno
values('10160269','EDAT','500011', 3, 98.42, 5)
INSERT INTO MAT_Alumno
values('10160269','SFOU','500013', 5, 100.00, 3)

INSERT INTO MAT_Alumno


values('10160270','REDE','500009', 3, 78.28, 6)
INSERT INTO MAT_Alumno
values('10160271','BAD1','500021', 3, 72.42, 8)
INSERT INTO MAT_Alumno
values('10160273','MATE','500012', 5, 98.85, 7)
INSERT INTO MAT_Alumno
values('10160274','CMUL','500019', 2, 76.27, 5)
INSERT INTO MAT_Alumno
values('10160275','CALC','500017', 1, 93.39, 9)

INSERT INTO MAT_Alumno


values('10160276','PROG','500010', 4, 81.00, 7)
INSERT INTO MAT_Alumno
values('10160277','EDAT','500011', 3, 89.42, 5)
INSERT INTO MAT_Alumno
values('10160278','SFOU','500013', 5, 77.85, 3)
INSERT INTO MAT_Alumno
values('10160279','SDIG','500014', 2, 92.27, 4)
INSERT INTO MAT_Alumno
values('10160280','TCIR','500015', 5, 86.39, 8)

INSERT INTO MAT_Alumno


values('10160281','ELEC','500016', 4, 75.58, 6)
INSERT INTO MAT_Alumno
values('10160282','MICR','500018', 5, 97.42, 8)
INSERT INTO MAT_Alumno
values('10160283','CALC','500012', 5, 89.85, 7)

INSERT INTO MAT_Alumno


values('10160284','CMUL','500019', 2, 75.27, 5)
INSERT INTO MAT_Alumno
values('10160285','MCNM','500020', 1, 93.39, 7)
/*Y ahora le ingresare datos a la tabla Alumnos*/
INSERT INTO Alumnos
values('10160270','GILBERTO','ALONSO','ZARATE','ISC','23/06/1995','M','23/08/2010')
INSERT INTO Alumnos
values('10160271','MARTHA','PEREZ','ESPINOSA','IME','24/11/1996','F','23/08/2010')
INSERT INTO Alumnos
values('10160273','NESTOR','CANO','MARTINEZ','IEI','22/01/1997','M','23/08/2010')
INSERT INTO Alumnos
values('10160274','MARGARITA','DE LA
CRUZ','TOVAR','ISC','01/05/1998','F','23/08/2010')
INSERT INTO Alumnos
values('10160275','RICARDO','GARCIA','CAMPOS','IME','05/03/1997','M','23/08/2010')
INSERT INTO Alumnos
values('10160276','MAGALY','FLORES','CASTAEDA','ISC','15/07/1997','F','23/08/2010')
INSERT INTO Alumnos
values('10160277','CECILIA','CASTILLO','ORTIZ','IME','22/02/1996','F','23/08/2010')
INSERT INTO Alumnos
values('10160278','RICARDO','GONZALEZ','MATA','IEI','15/11/1997','M','23/08/2010')
INSERT INTO Alumnos
values('10160279','EDUARDO','ESQUIVEL','MORALEZ','ISC','26/01/1998','M','23/08/2010')
INSERT INTO Alumnos
values('10160280','ULISES','LUNA','LUJAN','IME','15/06/1997','M','23/08/2010')
INSERT INTO Alumnos
values('10160281','ALDO','VALDEZ','TORRES','ISC','12/04/1997','M','23/08/2010')
INSERT INTO Alumnos
values('10160282','CESAR','VAZQUEZ','RAMOS','IME','11/04/1996','M','23/08/2010')
INSERT INTO Alumnos
values('10160283','NANCY','TORRES','CONTRERAS','IEI','15/11/1997','F','23/08/2010')
INSERT INTO Alumnos
values('10160284','MARIBEL','SOTO','DE LEON','ISC','13/07/1998','F','23/08/2010')
INSERT INTO Alumnos
values('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_Alumno
DROP 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 B
Where A.carrera = 'ISC' AND A.matricula = B.matricula
GROUP By A.matricula, A.nombre, A.app, A.apm
HAVING 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.semestre
FROM materias A, alumnos B
Where 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.semestre
FROM materias A, alumnos B
Where 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.creditos
FROM MAT_Alumno A, materias B, Alumnos C
Where 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.descripcion
From MAT_Alumno A, materias B
Where 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 otra
manera los datos, o quizas las tres repeticiones nos muestra las matriculas de los alumnos
a cuales
les 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 si
es que tengo que elimianr el atributo hrs_clase, en el punto 6 se va a actualizar grupo y
hora, aunque de una vez
voy a crear los campos*/
ALTER Table MAT_Alumno
ADD grupo char(6)
ALTER Table MAT_Alumno
ADD horas numeric(2)
/*Si me hubiera equivocado en poner hora en lugar de horas eliminar hora me hubiera
ayudado
ALTER Table MAT_Alumno
DROP 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.descripcion
From materias A, Profesores B, MAT_Alumno C
Where 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.nombre
From Alumnos A, MAT_Alumno B
Where 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, semestre
From 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 = 8
where 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 Nombre
From Alumnos A, MAT_Alumno B
Where 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'

Вам также может понравиться