Qué es SELECT?
Condicionar datos…
NOTA: Si quieres una función muy puntual probablemente ya exista.
NOTA: Podemos pensar en SELECT como una tabla que creamos de forma temporal, para extraer información.
SELECT es la herramienta modular más importante de MySQL, ya que de esta forma podemos sacar datos para obtener información.
# La forma más básica de un select es:
SELECT * FROM "table_name";
# Ejemplo:
SELECT * FROM clients;
# Datos de una sola columna (name)
SELECT name FROM clients;
# Datos de varias columnas
SELECT name, email, gender FROM clients;
La mayoría de veces no es necesario traer todos los datos por lo que debemos filtrarlos.
Con LIMIT puedes traer los datos que especifiques, junto a un DESC de la tabla, te puede dar una idea de la DB.
SELECT name, email, gender FROM clients LIMIT 10;
WHERE es muy importante porque nos permite hacer los filtros de las columnas que seleccionamos.
# Trae todas las columnas especificadas de hombres.
SELECT name, email, gender FROM clients
WHERE gender = 'M';
Usar funciones es algo útil que nos permite hacer cosas especificas, llevan paréntesis.
# Treará solo el año de nacimiento
SELECT YEAR(birthdate) FROM clients;
# Nos trae la fecha y hora especifica
# de la computadora.
SELECT NOW();
Operaciones y otras funciones:
Con las funciones dependiendo del tipo de dato podemos hacer ciertas operaciones:
# Muestra el nombre y edad de cada persona.
SELECT name, YEAR(NOW()) - YEAR(birthdate)
FROM clients LIMIT 10;
Podemos usar LIKE que nos permite hacer un filtro por palabras, similar a las expresiones regulares.
SELECT * FROM clients
WHERE name LIKE '%Saave%';
Creando un query completo:
SELECT name, YEAR(NOW()) - YEAR(birthdate) AS age, gender
FROM clients WHERE gender = 'F'
AND name LIKE '%Lop%';
<aside> 📌 Resumen: Con SELECT podemos extraer información, filtrarla y obtener insights poderosos, pensemos en SELECT como un creador de tablas temporal que nos ayuda a manipular y observar la información de un query.
</aside>
Qué es JOIN?
NOTA: Los JOINS es tomar dos tablas relacionarlas y mostrar la información.
Cómo usamos un JOIN?
NOTA: Usamos los alias para hacer más rápida la tarea, si no estuvieran tendríamos que colocar todo el nombre de la tabla.
JOIN es una forma que tenemos de cruzar información entre tablas, ya que no me sirve solo tener su llave de referencia.
# Conteo de datos
SELECT COUNT(*) FROM books;
# Rango de los datos
SELECT book_id, author_id, title FROM books
WHERE author_id BETWEEN 1 AND 5;
Un JOIN lo usamos para pivotear (técnica que permite el intercambio y transposición de filas y columnas) datos.
SELECT c.name, b.title, t.type
FROM transactions AS t
JOIN books AS b
ON t.book_id = b.book_id
JOIN clients AS c
ON t.client_id = c.client_id;
Lo que acaba de ocurrir es que ligamos los id’s a los que pertenecen en sus tablas y reemplazamos esos id’s para mostrar un dato que solicitemos de la tabla que hemos ligado.
Se pueden hacer tantos JOIN como se necesite y al mismo tiempo filtrar con un WHERE los campos.
SELECT c.name, b.title, a.name, t.type
FROM transactions AS t
JOIN books AS b
ON t.book_id = b.book_id
JOIN clients AS c
ON t.client_id = c.client_id
JOIN authors AS a
ON b.author_id = a.author_id
WHERE c.gender = 'F' AND t.type IN('sell', 'lend');
<aside> 📌 Resumen: Con JOIN podemos traer información de otras tablas y colocarla filtrada por los valores que necesitemos, que es algo muy útil.
</aside>
Qué es un JOIN implícito y explícito?
NOTA: Se recomienda no usar el JOIN implícito ya que dificulta la lectura del query y puede ser deprecado.
Usando ORDER BY
<aside> 📌 Resumen: Un LEFT JOIN nos permite agregar información faltante y de este modo poder manejar de mejor forma los datos que no se emparejan, para saber que existen y procesarlos de la mejor forma.
</aside>