Machete MySQL(Cheatsheet) level 1
Nahuel Segovia
Posted on August 26, 2020
¡Hola!👋, se me ocurrió empezar a postear machetes(Cheatsheet) sobre diferentes cosas que los devs necesitamos tener a mano, sobre todo para repasar conceptos olvidados.
Así que acá va el de MySQL:
CONSULTAS CON SELECT
SELECT * FROM usuarios;
- Devuelve todos los registros de una tabla, en este caso la tabla es usuarios.
SELECT nombre FROM usuarios;
- Devuelve el nombre(columna) de los usuarios registrados en la tabla usuarios.
SELECT nombre, correo FROM usuarios;
- Devuelve nombre y correo(columnas) de la tabla usuarios.
CONSULTAS CON WHERE
SELECT publicaciones FROM usuarios WHERE id = 20;
- Devuelve las publicaciones del usuario que tiene el id 20
SELECT correo, direccion FROM usuarios where id = 1;
- Devuelve el correo electrónico y la dirección del usuario con id 1
SELECT publicaciones FROM usuarios WHERE nombre = 'Nahuel'
- Devuelve todas las publicaciones del usuario con el nombre Nahuel.
ORDENAR REGISTROS - ORDER BY
SELECT clases, idUsuario FROM facultad ORDER BY(idUsuario);
- Devuelve las clases a las que está inscripto el usuario ordenado por id(En el caso de que sea string ORDER BY lo ordena por posición alfabética)
SELECT clases, idUsuario from facultad ORDER BY(idUsuario)DESC;
- Devuelve las clases a la que está inscripto el usuario ordenado por id de forma descendiente(DESC)
SELECT clases, idUsuario from facultad ORDER BY(idUsuario) ASC;
- Devuelve las clases a la que está inscirpto el usuario ordenado por id de forma ascendente(ASC), este es el valor por default en la que ordena ORDER BY los registros, en el caso de que usemos ORDER BY con una columna que contiene strings se va a ordenar alfabéticamente(Descendente y/o Ascendente)
AGRUPAR CON GROUP BY
GROUP BY como su nombre lo indica nos sirve para agrupar filas que tienen los mismos valores, en términos simples nos permite "resumir los datos de una consulta", por ejemplo tenemos una tabla que tiene datos repetidos:
+---------------------+
| facultad |
+---------------------+
| Ciencias Economicas |
| Veterinaria |
| Leyes |
| Ciencias exactas |
| Informatica |
| Medicina |
| Arquitectura |
| Ingenieria |
| Ingenieria |
| Ciencias exactas |
| Ciencias sociales |
+---------------------+
pero queremos saber las facultades que hay en la universidad
SELECT facultad FROM facultades GROUP BY facultad;
RESULTADO:
+---------------------+
| facultad |
+---------------------+
| Ciencias Economicas |
| Veterinaria |
| Leyes |
| Ciencias exactas |
| Informatica |
| Medicina |
| Arquitectura |
| Ingenieria |
| Ciencias sociales |
+---------------------+
Otro ejemplo de uso es, tenemos usuarios registrados en el sistema y queremos saber cuantos son, pero también saber cuantas hombres, mujeres, y sexo indefinido hay, la tabla es la siguiente:
+----------+------------+
| nombre | sexo |
+----------+------------+
| Nahuel | Hombre |
| Catalina | Mujer |
| Sabrina | Mujer |
| Alberto | Hombre |
| Brian | Indefinido |
| Carla | Indefinido |
| Sofia | Indefinido |
| Brandon | Indefinido |
+----------+------------+
así que podríamos definir el problema en partes mas pequeñas:
Contar los usuarios, ¿Dónde? En la tabla usuarios
Saber cuantos hombres, mujeres y sexo indefinido existen
SELECT sexo, count(*) CANTIDAD from usuarios2 GROUP BY sexo;
RESULTADO:
+------------+----------+
| sexo | CANTIDAD |
+------------+----------+
| Hombre | 2 |
| Mujer | 2 |
| Indefinido | 4 |
+------------+----------+
FUNCIONES DE AGREGADO
COUNT: Cuenta y devuelve el numero total de un campo seleccionado, de ejemplo tenemos una tabla con números:
+--------+
| numero |
+--------+
| 10 |
| 30 |
| 6 |
| 2 |
| 1 |
| 200 |
| 50 |
| 90 |
| 10 |
| 4 |
| 18 |
+--------+
y queremos saber cuantos números contiene:
SELECT COUNT(numero) FROM numeros;
RESULTADO:
+---------------+
| COUNT(numero) |
+---------------+
| 11 |
+---------------+
también podemos asignarle un nombre al resultado que esperamos
SELECT COUNT(numero) numeros_totales FROM numeros;
+-----------------+
| numeros_totales |
+-----------------+
| 11 |
+-----------------+
MIN: Devuelve el número mas chico de un campo(solo campos numéricos)
SELECT MIN(numero) numero_mas_chico FROM numeros;
RESULTADO:
+------------------+
| numero_mas_chico |
+------------------+
| 1 |
+------------------+
MAX: Devuelve el número más grande de un campo(solo campos numéricos)
SELECT MAX(numero) numero_mas_grande FROM numeros;
RESULTADO:
+-------------------+
| numero_mas_grande |
+-------------------+
| 200 |
+-------------------+
AVG: Devuelve un valor promedio de un campo(solo campos numéricos)
SELECT AVG(numero) numero_promedio FROM numeros;
RESULTADO:
+-----------------+
| numero_promedio |
+-----------------+
| 38.2727 |
+-----------------+
SUM: Suma los valores de un campo(solo campos numéricos)
SELECT SUM(numero) numeros_sumados FROM numeros;
RESULTADO:
+-----------------+
| numeros_sumados |
+-----------------+
| 421 |
+-----------------+
Posted on August 26, 2020
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
November 30, 2024