Consultas SQL base de datos
Enviado por el_mapache_sucio • 1 de Diciembre de 2018 • Trabajo • 1.032 Palabras (5 Páginas) • 1.004 Visitas
Actividad 1 – Bares
- Utilizando la sentencia JOIN listar el nombre de todas las personas que asisten al bar cuyo id es 4, ordenadas de forma ascendente:
SELECT cliente.nombre
FROM bares.cliente
JOIN bares.asiste
ON cliente.id=idCLIENTE
WHERE asiste.idBAR=4
ORDER BY cliente.nombre ASC;
- Listar el número de clientes que tiene cada bar, ordenados ascendentemente de acuerdo al nombre del bar, pero solo los que empiezan con “L” y tienen más de 25 clientes:
SELECT nombre,count(*)
FROM bares.asiste
JOIN bares.bar
ON idBAR=id
WHERE nombre LIKE 'L%'
GROUP BY nombre
HAVING count(*) > 25
ORDER BY nombre;
- Mostrar el id de todas las personas a los que le gusta la cerveza cuyo id es 2, de forma ascendiente:
SELECT idCLIENTE
FROM bares.gusta
WHERE idCERVEZA='2'
ORDER BY idCLIENTE ASC;
- Listar en forma descendente los nombres de todos los bares que sirven 'CORONA':
SELECT bar.nombre
FROM bares.bar, bares.sirve, bares.cerveza
WHERE bar.id=idBAR AND cerveza.id=idCERVEZA AND cerveza.nombre='CORONA'
ORDER BY bar.nombre DESC;
- Combinando una proyección y un producto cartesiano y usando la clausula IN listar el nombre de todas las cervezas que le gustan a los clientes cuyos id’s sean 12, 4 y 5 y 2:
SELECT cerveza.nombre
FROM bares.cerveza, bares.gusta, bares.cliente
WHERE CERVEZA.id=idCERVEZA AND GUSTA.idCLIENTE=cliente.id AND cliente.id NOT IN (12,4,5,2)
GROUP BY CERVEZA.id;
- Listar los nombres de todas las cervezas que se sirven en el bar 'MI OFICINA' y que además le gustan a 'RAFAEL SALGADO':
SELECT CERVEZA.nombre
FROM bares.SIRVE, bares.CERVEZA, bares.BAR
WHERE CERVEZA.id=SIRVE.idCERVEZA AND BAR.nombre=’MI OFICINA’
GROUP BY cerveza.nombre
INTERSECT
SELECT CERVEZA.nombre
FROM bares.CERVEZA, bares.GUSTA , bares.CLIENTE
WHERE CERVEZA.id=GUSTA.idCERVEZA AND CLIENTE.nombre= ‘RAFAEL SALGADO'
GROUP BY CERVEZA.nombre;
- Listar los nombres de los clientes que ni asisten al bar 'MIXELADA', ni les gusta la cerveza 'HEINEKEN':
SELECT CLIENTE.nombre
FROM bares.CLIENTE
GROUP BY CLIENTE.nombre
EXCEPT
SELECT cliente.nombre
FROM bares.bar, bares.asiste, bares.cliente , bares.cerveza, bares.gusta
WHERE bar.id=asiste.idBAR AND cerveza.id=gusta.idCERVEZA AND bar.nombre<>'MIXELADA' AND CERVEZA.nombre <>’HEINEKEN’
GROUP BY CLIENTE.nombre;
- Combinando una proyección y un producto cartesiano listar los nombres de todos los bares que sirven 'BOHEMIA':
SELECT BAR.nombre
FROM bares.BAR, bares.SIRVE, bares.CERVEZA
WHERE BAR.id=SIRVE.idBAR AND CERVEZA.nombre='BOHEMIA’
GROUP BY BAR.nombre;
- Combinando una proyección y un producto cartesiano listar las cervezas que le gustan a 'MARTHA ORTEGA':
SELECT CERVEZA.nombre
FROM bares.GUSTA, bares.CLIENTE, bares.CERVEZA
WHERE CERVEZA.id=GUSTA.idCERVEZA AND CLIENTE.nombre='MARTHA ORTEGA'
GROUP BY CERVEZA.nombre;
- Usando la clausula IN mostrar el id de todos los bares a los que asiste el cliente cuyo id no sea ni 6, ni 3, ni 9:
SELECT BAR.id
FROM bares.BAR, bares.CLIENTE, bares.ASISTE
WHERE BAR.id=ASISTE.idBAR AND CLIENTE.id NOT IN (6,3,9)
GROUP BY BAR.id;
- Listar en forma ascendente los nombres de todas las cervezas que se sirven en 'MASCUSIA':
SELECT CERVEZA.nombre
FROM bares.CERVEZA, bares.SIRVE, bares.bar
WHERE CERVEZA.id=SIRVE.idCERVEZA AND BAR.nombre=’MASCUSIA’
GROUP BY CERVEZA.nombre
ORDER BY CERVEZA.nombre ASC;
- Mostrar los nombres de las cervezas que les gustan a más personas que la 'BOHEMIA':
SELECT nombre ,count(*)
FROM bares.GUSTA
JOIN bares.CERVEZA
ON idCERVEZA=id
GROUP BY nombre
HAVING count(*) > (SELECT count(*)
FROM bares.GUSTA,bares.CERVEZA
WHERE nombre='BOHEMIA' AND id=idCERVEZA);
- Utilizando la sentencia JOIN y usando la clausula IN, listar el nombre de todas las cervezas que le gustan a los clientes cuyos id’s sean 12, 4 y 5 y 2:
SELECT nombre
FROM bares.GUSTA
JOIN bares.CERVEZA
ON idCERVEZA=id AND CERVEZA.id IN (12,4,5,2)
GROUP BY nombre;
- Listar los nombres de las cervezas que no se sirven en el bar 'EL TARRO':
SELECT CERVEZA.nombre
FROM bares.CERVEZA
EXCEPT
SELECT CERVEZA.nombre
FROM bares.CERVEZA
JOIN bares.SIRVE
ON idCERVEZA=id
JOIN bares.bar
ON bar.id=idBAR
WHERE bar.nombre='EL TARRO'
GROUP BY CERVEZA. nombre;
- Combinando una proyección y un producto cartesiano listar los nombres de todos los bares que sirven la cerveza cuyo id esté entre 5 y 9:
SELECT bar.nombre
FROM bares.cerveza, bares.sirve, bares.bar
WHERE CERVEZA.id=idCERVEZA AND bar.id=idBAR AND SIRVE.idCERVEZA IN (5,6,7,8,9)
...