Está en la página 1de 5

Néstor Traña Obando

FACULTAD DE INFORMÁTICA
LABORATORIO 4
BASE DE DATOS II

Objetivos Específicos:
 Dominar las sentencias SQL de consulta.
 Conocer los tipos de operadores utilizados por el lenguaje SQL
 Crear consultas SELECT y combinarlas con las funciones predeterminadas de
SQL

EJEMPLOS DE SENTENCIAS SELECT


El caso más sencillo es consultar o desplegar toda la tabla completa
 SELECT * FROM Películas;
También podemos desplegar solamente ciertas columnas con:
 SELECT NombrePelicula, PrecioPelicula FROM Películas;
Además podemos utilizar filtros o condiciones para la consulta agregando la clausula
WHERE a la instrucción SELECT
 SELECT * FROM Películas WHERE PrecioPelicuala > 50
También se pueden construir filtros o condiciones compuestas usando los operadores
lógicos AND OR NOT que también trae incorporado MYSQL.
 SELECT * FROM Películas WHERE PrecioPelicula > 50 AND TipoPelicula =
'comedia';

COUNT
El count nos va a dar el número de veces que se repite un valor en la tabla, es decir el
número de registros almacenados que correspondan con nuestra consulta. Por ejemplo, en
una tabla de nombre Noticias, si queremos saber cuántas noticias hay publicada entonces la
consulta que hacemos es:
SELECT COUNT(*) FROM Noticias WHERE estado = 'Publicado';

Ahora que pasa si queremos agregar algún otro campo en la consulta, por ejemplo el
número de noticias publicadas por cada autor:
SELECT Autor, COUNT(*) FROM Noticias GROUP BY Autor;

Fíjense que se agrego a la consulta GROUP BY que nos permite agrupar por el valor que
queremos, por ejemplo, la consulta anterior nos traería como resultados posibles:
Eveling – 3
Anibal – 8
Alinton – 1

1
Néstor Traña Obando

LIMIT
Algo que es muy común es limitar la cantidad de registros que queremos traer de la base de
datos, por lo general algunas tablas pueden llegar a tener miles de registros y traer a todos
haría demasiado uso de servidor y demoraría demasiado para lo que realmente necesitamos,
es por ello que es muy común limitar las consultas a la cantidad de resultados que
necesitamos.

Por ejemplo si hacemos una consulta con un count(*) porque queremos saber el total de
registros de una tabla, al final le colocaremos LIMIT 1.
SELECT COUNT(*) FROM Productos LIMIT 1;

Otra forma de usar el limit es pasándole dos argumentos en lugar de uno, por ejemplo, si
ponemos:
SELECT * FROM Productos LIMIT 5,10;

El primer valor que ponemos es desde qué registro queremos empezar a traer los datos (el
primero es 0) y el segundo cuántos valores, por lo que la consulta anterior va a traer desde
el producto con id 6 al 15.

A TRABAJAR!

1. Cree una BD con el nombre de: UponicBDLab4


2. Cree una tabla con el nombre: ESTUDIANTE

create table ESTUDIANTE (


Carne char(8) not null,
Nombre1 char(15) not null,
Nombre2 char(15) null,
Apellido1 char(15) not null,
Apellido2 char(15) null,
Sexo char(1) not null
);

3. Ingrese registro a la tabla ESTUDIANTE con los siguientes datos (en orden)

'qb960240','Jaime',null,'Quintanilla','Blanco','m'
'mm960201','Ethel',null,'Montes','Martínez','f'
'mm960213','Oscar',null,'Melara',null,'m'
' mm960217','Karen','María','Melara','Morán','f'
'gl960254','Elena','Susana','Gomez','Lopez','f'

2
Néstor Traña Obando

4. Cree una tabla con el nombre de: GRUPO

create table GRUPO (


IdGrupo char(4) not null,
Descripcion char(60) not null
);
5. Ingrese registros a la tabla GRUPO con los siguientes datos

'BDD1','Grupo 01, Base de datos'


'BDD2','Grupo 02, Base de datos'
'BDD3','Grupo 03, Base de datos'

6. Cree una tabla con el nombre: EVALUACION

create table EVALUACION (


IdEvaluacion int not null,
Descripcion char(60) not null
);

7. Ingrese registros a la tabla EVALUACION con los siguientes datos

1, 'Parcial práctico 1'


2, 'Parcial práctico 2'
3, 'Parcial práctico 3'

8. Cree una tabla con el nombre: NOTAS

create table nota (


IdGrupo char(4) not null,
Carne char(8) not null,
IdEvaluacion int not null,
Nota int null
);

9. Ingrese las notas del estudiantes con el numero de carne: qb960240, mm960201,
mm960213, mm960217

'BDD1','qb960240',1,80
'BDD1','qb960240',2,60
'BDD1','qb960240',3,40

'BDD1','mm960201',1,100
'BDD1','mm960201',2,95
'BDD1','mm960201',3,90

3
Néstor Traña Obando

'BDD2','mm960213',1,70
'BDD2','mm960213',2,90
'BDD2','mm960213',3,null

'BDD3','mm960217',1,90
'BDD3','mm960217',2,50
'BDD3','mm960217',3,60

CONSULTAS CON DISTINTOS NIVELES DE DIFICULTAD

1. Se desea un listado de los Estudiantes


SELECT * FROM ESTUDIANTE;
2. Se desea un listado de los estudiantes inscritos ordenados ascendentemente
SELECT Nombre1 FROM ESTUDIANTE ORDER BY Nombre1 ASC;
3. Se desea eliminar las filas duplicadas de los resultados de una instrucción
SELECT
SELECT DISTINCT Apellido1 FROM ESTUDIANTE;
4. Se desea obtener los nombres de los estudiantes con notas mayores de 70
SELECT DISTINCT Nombre1, Apellido1, Apellido2, Nota FROM ESTUDIANTE, NOTA
WHERE Nota > 70;
5. Se desea obtener el promedio de tres notas que posee el estudiante con carne:
mm960217
SELECT Carne, SUM(Nota)/3 AS Promedio FROM NOTA WHERE Carne =
‘mm960217’ GROUP BY Carne;
6. Se desea saber cuantos estudiantes hay por cada genero
SELECT COUNT(*) AS SexoMasculino FROM ESTUDIANTE WHERE Sexo=’m’;
SELECT COUNT(*) AS SexoFemenino FROM ESTUDIANTE WHERE Sexo=’f’
7. Se desea conocer el promedio de notas con base a su número de carne
SELECT AVG(Nota) AS Promedio FROM NOTA WHERE Carne=’qb960240’;
8. Se desea conocer la nota promedio para cada estudiante del grupo01 de BD
SELECT Carne, AVG(Nota) AS Promedio FROM NOTA WHERE IdGrupo= ‘BDD1’
GROUP BY Carne;
9. Se desea conocer la nota mayor de tres parciales para cada estudiante
SELECT IdGrupo, Carne, MAX(Nota) AS NotaMayor FROM NOTA GROUP BY
IdGrupo, Carne;
10. Se desea obtener las notas mínimas y máximas de los estudiantes que estén
entre 50 y 90
SELECT Carne, MAX(Nota) AS MaxNota, MIN(Nota) AS MinNota FROM NOTA
WHERE Nota BETWEEN50 AND 90 GROUP BY Carne;

4
Néstor Traña Obando

EJERCICIOS:
1. Se desea conocer los promedios de notas para todos los estudiantes que cursan
Base de Datos ordenados de mayor a menor
Escribir consulta

2. Se desea conocer solo aquellos promedios que fueron mayores o iguales a 60


Escribir consulta

3. Muestre el número de estudiantes que han obtenido notas mayores de 70


Escribir consulta

4. Investigue y explique:
 Para que sirven las funciones de agregado: “SUM”, “VAR” Y “STDEV”
 Para que sirve y como se crea la integridad referencial
 Como funcionan y para que se utilizan los operadores “LIKE” Y “IN”