Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Este es otro post en donde simplemente me dedico a resolver ejercicios, nada de tutoriales. Sólo explico el problema y resuelvo todo lo que se tenga
que hacer.
En este caso resolveremos ejercicios de consultas SQL usando el SGBD más popular y más querido: MySQL. Son consultas básicas, pues no
haremos uniones ni otra cosa más que proyecciones o “selects”, repasando también un poco las expresiones regulares usando LIKE, agrupando
con GROUP BY y utilizando algunas funciones de agregación como SUM, AVG, MIN, etc.
Nota: estas son soluciones propuestas por mí; algunas pueden ser erróneas o puede que existan mejores formas de resolver dichas consultas.
Tabla SQL
Para trabajar con estos ejercicios utilizaremos la siguiente tabla. Si quieres, puedes copiar todo el script en la CLI de MySQL para que la base de datos
y la tabla sean creadas automáticamente.
Si quieres trabajar en una base de datos existente, entonces sólo copia la definición de la tabla y los datos. De todas maneras, dejaré un sqlfiddle al
final para que se pueda probar en línea.
CREATE
TABLE
tblUsuarios
(
idx INT PRIMARY KEY AUTO_INCREMENT,
usuario VARCHAR(20),
nombre VARCHAR(20),
sexo VARCHAR(1),
nivel TINYINT,
email VARCHAR(50),
telefono VARCHAR(20),
marca VARCHAR(20),
compañia VARCHAR(20),
saldo FLOAT,
activo BOOLEAN
);
Consultas
#Listar nombre y teléfono de los usuarios con teléfono NOKIA, BLACKBERRY o SONY
SELECT nombre, telefono FROM tblUsuarios WHERE marca IN('NOKIA', 'BLACKBERRY', 'SONY');
#Listar nombre y teléfono de los usuarios con teléfono LG, SAMSUNG o MOTOROLA
SELECT nombre, telefono FROM tblUsuarios WHERE marca IN('LG', 'SAMSUNG', 'MOTOROLA');
Bloque 2
Consultas
1. Listar nombre y teléfono de los usuarios con teléfono que no sea de la marca LG o SAMSUNG
2. Listar el login y teléfono de los usuarios con compañia telefónica IUSACELL
3. Listar el login y teléfono de los usuarios con compañia telefónica que no sea TELCEL
4. Calcular el saldo promedio de los usuarios que tienen teléfono marca NOKIA
5. Listar el login y teléfono de los usuarios con compañia telefónica IUSACELL o AXEL
6. Mostrar el email de los usuarios que no usan yahoo
7. Listar el login y teléfono de los usuarios con compañia telefónica que no sea TELCEL o IUSACELL
8. Listar el login y teléfono de los usuarios con compañia telefónica UNEFON
9. Listar las diferentes marcas de celular en orden alfabético descendentemente
10. Listar las diferentes compañias en orden alfabético aleatorio
11. Listar el login de los usuarios con nivel 0 o 2
12. Calcular el saldo promedio de los usuarios que tienen teléfono marca LG
Soluciones# Listar nombre y teléfono de los usuarios con teléfono que no sea de la marca LG o SAMSUNG
SELECT nombre, telefono FROM tblUsuarios WHERE marca NOT IN('LG', 'SAMSUNG');
# Listar el login y teléfono de los usuarios con compañia telefónica que no sea TELCEL
SELECT usuario, telefono FROM tblUsuarios WHERE compañia <> "TELCEL";
# Calcular el saldo promedio de los usuarios que tienen teléfono marca NOKIA
SELECT AVG(saldo) FROM tblUsuarios WHERE marca = 'NOKIA';
# Listar el login y teléfono de los usuarios con compañia telefónica IUSACELL o AXEL
SELECT usuario, telefono FROM tblUsuarios WHERE compañia IN('IUSACELL', 'AXEL');
# Listar el login y teléfono de los usuarios con compañia telefónica que no sea TELCEL o IUSACELL
SELECT usuario, telefono FROM tblUsuarios WHERE compañia NOT IN('TELCEL', 'IUSACELL');
# Listar el login y teléfono de los usuarios con compañia telefónica UNEFON
SELECT usuario, telefono FROM tblUsuarios WHERE compañia = 'UNEFON';
Bloque 3
Consultas
# Listar nombre y teléfono de los usuarios con teléfono que no sea de la marca BLACKBERRY
SELECT nombre, telefono FROM tblUsuarios WHERE marca <> "BLACKBERRY";
Bloque 4
Consultas
# Listar el login y teléfono de los usuarios con compañia telefónica IUSACELL o TELCEL
SELECT usuario, telefono FROM tblUsuarios WHERE compañia IN('IUSACELL', 'TELCEL');
# Listar el login y teléfono de los usuarios con compañia telefónica IUSACELL o UNEFON
SELECT usuario, telefono FROM tblUsuarios WHERE compañia IN('IUSACELL', 'UNEFON');
# Listar nombre y teléfono de los usuarios con teléfono que no sea de la marca MOTOROLA o NOKIA
SELECT nombre, telefono FROM tblUsuarios WHERE marca NOT IN('MOTOROLA', 'NOKIA');