Base de datos - Restaurant
Jhon Ismael Flores Pacheco
Alex Mamani Quispe
1 Estructura básica de consultas
1.1 Cláusula SELECT
Usamos esta clásusula para consultar todos los datos de una determinada tabla, por ejemplo:
1 SELECT * FROM reservaciones
1 SELECT * FROM categoria
1
1 SELECT * FROM platillos
En la cláusula podemos hacer una búsqueda especı́fica de las columnas que deseemos, estas se colocan
separadas por comas.
1 SELECT id , nombre , precio FROM platillos
2
La cláusula select también puede contener operaciones aritméticas que contengan los operadores +,-,/,*
operen sobre constantes o atributos de las tuplas
1 SELECT id , nombre , precio -50 from platillos
3
1.2 Cláusula Where
1 SELECT id , nombre , precio
2 FROM platillos
3 WHERE precio <100
1 SELECT id , nombre , apellido , hora , cantidadmesa
2 FROM reservaciones
3 WHERE cantidadmesa BETWEEN 2 AND 3
4
1 SELECT c . nombre , p . nombre , p . precio
2 FROM categoria c , platillos p
3 WHERE precio >90
1.3 Renombramiento
Para esta operación se usa la cláusula AS, en el ejemplo anterior notamos que el atributo nombre se repite,
ambos nombres provienen de diferentes tablas, por lo que para evitar confusión podemos renombrar el nombre
5
del atributo
1 SELECT c . nombre AS categoria , p . nombre , p . precio
2 FROM categoria c , platillos p
3 WHERE precio BETWEEN 50 AND 90
1.4 Operaciones con cadenas de caracteres
1 SELECT id , nombre , apellido , hora
2 FROM reservaciones
3 WHERE hora LIKE ’ 10% ’
1 SELECT nombre , precio , categoriaId
2 FROM platillos
3 WHERE precio LIKE ’ ___ ’
6
1.5 Funciones de agregación
Estas funciones son avg, sum, max, min y count; donde las 2 primeras sólo pueden usarse con datos numéricos.
Podemos hallar el promedio del precio de platillos de categorı́a 4
1 SELECT avg ( precio )
2 FROM platillos
3 WHERE categoriaId =4
Podrı́amos también solicitar el precio medio de cada categorı́a de platillos
1 SELECT categoriaId AS categoria , AVG ( precio )
2 FROM platillos
3 GROUP BY categoriaId
Cantidad de reservaciones por cada categorı́a de comida
1 SELECT c . nombre , COUNT ( p . categoriaId )
2 FROM categoria c , platillos p
3 WHERE c . id = p . categoriaId
4 GROUP BY nombre
En el ejercicio anterior podrı́amos solicitar la cantidad de reservaciones por categorı́a que sean mayores a
5, para ello hacemos uso de la cláusula “having”
7
1 SELECT c . nombre , COUNT ( p . categoriaId )
2 FROM categoria c , platillos p
3 WHERE c . id = p . categoriaId
4 GROUP BY nombre
5 HAVING COUNT ( p . categoriaId ) >5