DEV Community

Nahuel Segovia
Nahuel Segovia

Posted on • Updated on

Machete MySQL(Cheatsheet) level 1

¡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; 
Enter fullscreen mode Exit fullscreen mode
  • Devuelve todos los registros de una tabla, en este caso la tabla es usuarios.
SELECT nombre FROM usuarios; 
Enter fullscreen mode Exit fullscreen mode
  • Devuelve el nombre(columna) de los usuarios registrados en la tabla usuarios.
SELECT nombre, correo FROM usuarios;
Enter fullscreen mode Exit fullscreen mode
  • Devuelve nombre y correo(columnas) de la tabla usuarios.

CONSULTAS CON WHERE

SELECT publicaciones FROM usuarios WHERE id = 20;
Enter fullscreen mode Exit fullscreen mode
  • Devuelve las publicaciones del usuario que tiene el id 20
SELECT correo, direccion FROM usuarios where id = 1;
Enter fullscreen mode Exit fullscreen mode
  • Devuelve el correo electrónico y la dirección del usuario con id 1
SELECT publicaciones FROM usuarios WHERE nombre = 'Nahuel'
Enter fullscreen mode Exit fullscreen mode
  • Devuelve todas las publicaciones del usuario con el nombre Nahuel.

ORDENAR REGISTROS - ORDER BY

SELECT clases, idUsuario FROM facultad ORDER BY(idUsuario);
Enter fullscreen mode Exit fullscreen mode
  • 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;
Enter fullscreen mode Exit fullscreen mode
  • 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;
Enter fullscreen mode Exit fullscreen mode
  • 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   |
+---------------------+
Enter fullscreen mode Exit fullscreen mode

pero queremos saber las facultades que hay en la universidad

SELECT facultad FROM facultades GROUP BY facultad;
Enter fullscreen mode Exit fullscreen mode

RESULTADO:

+---------------------+
| facultad            |
+---------------------+
| Ciencias Economicas |
| Veterinaria         |
| Leyes               |
| Ciencias exactas    |
| Informatica         |
| Medicina            |
| Arquitectura        |
| Ingenieria          |
| Ciencias sociales   |
+---------------------+
Enter fullscreen mode Exit fullscreen mode

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 |
+----------+------------+
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode
SELECT sexo, count(*) CANTIDAD from usuarios2 GROUP BY sexo;
Enter fullscreen mode Exit fullscreen mode

RESULTADO:

+------------+----------+
| sexo       | CANTIDAD |
+------------+----------+
| Hombre     |        2 |
| Mujer      |        2 |
| Indefinido |        4 |
+------------+----------+
Enter fullscreen mode Exit fullscreen mode

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 |
+--------+
Enter fullscreen mode Exit fullscreen mode

y queremos saber cuantos números contiene:

SELECT COUNT(numero) FROM numeros;
Enter fullscreen mode Exit fullscreen mode

RESULTADO:

+---------------+
| COUNT(numero) |
+---------------+
|            11 |
+---------------+
Enter fullscreen mode Exit fullscreen mode

también podemos asignarle un nombre al resultado que esperamos

SELECT COUNT(numero) numeros_totales FROM numeros;
Enter fullscreen mode Exit fullscreen mode
+-----------------+
| numeros_totales |
+-----------------+
|              11 |
+-----------------+
Enter fullscreen mode Exit fullscreen mode

MIN: Devuelve el número mas chico de un campo(solo campos numéricos)

SELECT MIN(numero) numero_mas_chico FROM numeros;
Enter fullscreen mode Exit fullscreen mode

RESULTADO:

+------------------+
| numero_mas_chico |
+------------------+
|                1 |
+------------------+
Enter fullscreen mode Exit fullscreen mode

MAX: Devuelve el número más grande de un campo(solo campos numéricos)

SELECT MAX(numero) numero_mas_grande FROM numeros;
Enter fullscreen mode Exit fullscreen mode

RESULTADO:

+-------------------+
| numero_mas_grande |
+-------------------+
|               200 |
+-------------------+
Enter fullscreen mode Exit fullscreen mode

AVG: Devuelve un valor promedio de un campo(solo campos numéricos)

SELECT AVG(numero) numero_promedio FROM numeros;
Enter fullscreen mode Exit fullscreen mode

RESULTADO:

+-----------------+
| numero_promedio |
+-----------------+
|         38.2727 |
+-----------------+
Enter fullscreen mode Exit fullscreen mode

SUM: Suma los valores de un campo(solo campos numéricos)

SELECT SUM(numero) numeros_sumados FROM numeros;
Enter fullscreen mode Exit fullscreen mode

RESULTADO:

+-----------------+
| numeros_sumados |
+-----------------+
|             421 |
+-----------------+
Enter fullscreen mode Exit fullscreen mode

Discussion (0)