Vous êtes sur la page 1sur 17

UNIVERSIDAD NACIONAL DEL SANTA

CONSULTAS SQL

I. PRACTICA 01 (Dirigida)
Con la Base de Datos Practica001 realizar las siguientes consultas:
1. Listado alfabtico de todos los alumnos con sexo M.

SELECT alumno.codalu,
alumno.nomalu,
alumno.sexo
FROM alumno
WHERE alumno.sexo = 'M'
ORDER BY alumno.nomalu ASC

2. Nombre y direccin de los alumnos ingresados a partir de 1997.

SELECT alumno.nomalu,
alumno.direccin,
alumno.aoingr
FROM alumno
WHERE alumno.aoingr >= 1997
ORDER BY alumno.nomalu ASC

BASE DE DATOS

UNIVERSIDAD NACIONAL DEL SANTA

3. Todas las notas y nombres de curso del alumno con cdigo 329.

SELECT curso.codcur,
curso.nomcur,
notas.nota
FROM curso,
notas
WHERE ( curso.codcur = notas.codcur ) and
( ( notas.codalu = '329' ) )
ORDER BY curso.nomcur ASC

4. Todos los profesores en el semestre 19991.

SELECT DISTINCT profesor.nomprof


FROM dicta,
profesor
WHERE ( dicta.codprof = profesor.codprof ) and
( ( dicta.semestre = '19991' ) )
ORDER BY profesor.nomprof ASC

5. Todos los cursos que dict el profesor Sierra.

SELECT DISTINCT curso.nomcur


FROM dicta, curso
WHERE ( dicta.codcur = curso.codcur ) and
( ( dicta.codprof = '01' ) )
ORDER BY curso.nomcur ASC

BASE DE DATOS

UNIVERSIDAD NACIONAL DEL SANTA

6. Todos los alumnos aprobados con nota 13 por el profesor Sierra.

SELECT alumno.codalu,
alumno.nomalu,
curso.codcur,
curso.nomcur,
notas.nota,
dicta.semestre
FROM curso,
dicta,
notas,
alumno,
profesor
WHERE ( curso.codcur = dicta.codcur ) and
( dicta.semestre = notas.semestre ) and
( notas.codalu = alumno.codalu ) and
( dicta.codprof = profesor.codprof ) and
( ( notas.codcur = dicta.codcur ) AND
( notas.nota = 13 ) AND
( profesor.nomprof = 'Sierra' ) )

7. El nmero de alumnos de cada curso en cada semestre.

SELECT notas.semestre,
curso.nomcur,
count(alumno.codalu) as total
FROM curso,
notas,
alumno
WHERE ( curso.codcur = notas.codcur ) and
( notas.codalu = alumno.codalu )
GROUP BY notas.semestre,
curso.nomcur
ORDER BY notas.semestre ASC

BASE DE DATOS

UNIVERSIDAD NACIONAL DEL SANTA

8. El promedio de notas en cada curso y semestre.

SELECT curso.nomcur,
notas.semestre,
round(avg(notas.nota),3) as Promedio
FROM notas,
alumno,
curso
WHERE ( notas.codalu = alumno.codalu ) and
( notas.codcur = curso.codcur )
GROUP BY curso.nomcur,
notas.semestre
ORDER BY curso.nomcur ASC,
notas.semestre ASC

BASE DE DATOS

UNIVERSIDAD NACIONAL DEL SANTA

9. Todos los alumnos que han llevado cursos con profesores de


categora A.

SELECT DISTINCT alumno.nomalu,


profesor.categora
FROM alumno, notas, curso, dicta, profesor
WHERE ( alumno.codalu = notas.codalu ) and
( curso.codcur = dicta.codcur ) and
( dicta.codprof = profesor.codprof ) and
( ( profesor.categora = 'A' ) )
ORDER BY alumno.nomalu ASC

10. El total de crditos aprobados por cada alumno.

SELECT DISTINCT alumno.nomalu,


sum(curso.creditos) as total
FROM alumno, notas, curso
WHERE ( alumno.codalu = notas.codalu ) and
( ( notas.nota >= 11 ) AND
( notas.codcur = curso.codcur ) )
GROUP BY alumno.nomalu

BASE DE DATOS

UNIVERSIDAD NACIONAL DEL SANTA

11. El promedio ponderado de cada alumno.

SELECT alumno.codalu,
alumno.nomalu,
round(sum(notas.nota * curso.creditos) / sum(curso.creditos),3) as
Prom_Ponderado
FROM alumno,
curso,
notas
WHERE ( curso.codcur = notas.codcur ) and
( ( notas.codalu = alumno.codalu ) )
GROUP BY alumno.codalu,
alumno.nomalu
ORDER BY alumno.codalu ASC

12. El total de crditos aprobados por el alumno 329.

SELECT alumno.codalu,
alumno.nomalu,
sum(curso.creditos) As TotalCreditos
FROM alumno, curso, notas
WHERE ( curso.codcur = notas.codcur ) and
( ( alumno.codalu = notas.codalu ) AND
( notas.nota >= 11 ) AND
( alumno.codalu = '329' ) )
GROUP BY alumno.codalu,
alumno.nomalu

BASE DE DATOS

UNIVERSIDAD NACIONAL DEL SANTA

13. El cuadro de mrito de notas histrico.

SELECT notas.semestre,
alumno.codalu,
alumno.nomalu,
round(sum(notas.nota * curso.creditos) / sum(curso.creditos),2) as Promedio
FROM alumno,
notas,
curso
WHERE ( alumno.codalu = notas.codalu ) and
( notas.codcur = curso.codcur )
GROUP BY notas.semestre,
alumno.nomalu,
alumno.codalu
ORDER BY 4 DESC,
alumno.nomalu ASC

BASE DE DATOS

UNIVERSIDAD NACIONAL DEL SANTA

II. PRACTICA 02
Con la Base de Datos Ejercicios2004 realizar las siguientes consultas:
1. Seleccionar la lista actual de productos. (Que no estn suspendidos)

SELECT productos.nombreproducto,
productos.suspendido
FROM productos
WHERE productos.suspendido = 0
ORDER BY productos.nombreproducto ASC

BASE DE DATOS

UNIVERSIDAD NACIONAL DEL SANTA

2. Seleccionar la cantidad de pedidos por cliente.

SELECT pedidos.idcliente,
count(pedidos.idpedido) as Cant_de_Pedidos
FROM pedidos
GROUP BY pedidos.idcliente
ORDER BY pedidos.idcliente ASC

3. Indicar los 5 primeros empleados con ms pedidos.

SELECT TOP 5 empleados.apellidos,


count(pedidos.idpedido) as Cant_de_Pedidos
FROM pedidos, empleados
WHERE ( pedidos.idempleado = empleados.idempleado )
GROUP BY empleados.apellidos
ORDER BY 2 DESC

BASE DE DATOS

UNIVERSIDAD NACIONAL DEL SANTA

4. Indicar la cantidad de productos por cada categora.

SELECT categoras.nombrecategora,
count(productos.idproducto) AS Cant_de_Prod
FROM categoras,
productos
WHERE ( categoras.idcategora = productos.idcategora )
GROUP BY categoras.nombrecategora
ORDER BY categoras.nombrecategora ASC

5. Indicar el nmero de pedidos por cada categora.

SELECT categoras.idcategora,
categoras.nombrecategora,
count(detalles_de_pedidos.idpedido) as Cant_de_Pedidos
FROM categoras,
productos,
detalles_de_pedidos
WHERE ( categoras.idcategora = productos.idcategora ) and
( productos.idproducto = detalles_de_pedidos.idproducto )
GROUP BY categoras.idcategora,
categoras.nombrecategora
ORDER BY categoras.idcategora ASC

BASE DE DATOS

10

UNIVERSIDAD NACIONAL DEL SANTA

6. Hallar la cantidad total pedida (en unidades) por cada producto.

SELECT productos.idproducto,
productos.nombreproducto,
sum(detalles_de_pedidos.cantidad) as Total_Pedido
FROM detalles_de_pedidos,
productos
WHERE ( detalles_de_pedidos.idproducto = productos.idproducto )
GROUP BY productos.idproducto,
productos.nombreproducto
ORDER BY 3 DESC

BASE DE DATOS

11

UNIVERSIDAD NACIONAL DEL SANTA

7. Calcular el monto total por cada pedido.

SELECT detalles_de_pedidos.idpedido,
sum((detalles_de_pedidos.preciounidad * detalles_de_pedidos.cantidad) detalles_de_pedidos.descuento * (detalles_de_pedidos.preciounidad *
detalles_de_pedidos.cantidad)) as Monto_Total
FROM detalles_de_pedidos
GROUP BY detalles_de_pedidos.idpedido
ORDER BY detalles_de_pedidos.idpedido ASC

BASE DE DATOS

12

UNIVERSIDAD NACIONAL DEL SANTA

BASE DE DATOS

13

UNIVERSIDAD NACIONAL DEL SANTA

BASE DE DATOS

14

UNIVERSIDAD NACIONAL DEL SANTA

BASE DE DATOS

15

UNIVERSIDAD NACIONAL DEL SANTA

8. Calcular las ventas por cada categora.

SELECT categoras.idcategora,
categoras.nombrecategora,
sum((detalles_de_pedidos.preciounidad * detalles_de_pedidos.cantidad) detalles_de_pedidos.descuento * (detalles_de_pedidos.preciounidad *
detalles_de_pedidos.cantidad)) as Monto_Total
FROM detalles_de_pedidos,
productos,
categoras
WHERE ( detalles_de_pedidos.idproducto = productos.idproducto ) and
( productos.idcategora = categoras.idcategora )
GROUP BY categoras.idcategora,
categoras.nombrecategora
ORDER BY 3 DESC

9. Indicar cuantos empleados tienen la letra a en su nombre.

SELECT empleados.idempleado,
empleados.apellidos,
empleados.nombre
FROM empleados
WHERE empleados.nombre like '%a%'
ORDER BY empleados.idempleado ASC

BASE DE DATOS

16

UNIVERSIDAD NACIONAL DEL SANTA

10. Mostrar los productos que tengan ms de 10 unidades en existencia.

SELECT productos.idproducto,
productos.nombreproducto,
productos.unidadesenexistencia
FROM productos
WHERE productos.unidadesenexistencia > 10
ORDER BY productos.unidadesenexistencia ASC

BASE DE DATOS

17

Vous aimerez peut-être aussi