Días
0

:

Horas
23

:

Minutos
40

:

Segundos
48
Días
0

:

Horas
23

:

Minutos
40

:

Segundos
48
SQL

¿Qué es SQL?

15 set. 2022

Autor(es): Augusto Huerta. | Demuestra tu aprendizaje y comparte este artículo:

SQL: ¿Qué es y cuál es su importancia?

Día a día los científicos de datos necesitan encontrar información precisa que, en la mayoría de casos, solo se puede acceder a tráves de consultas (en inglés queries) a las bases de datos.

Estas deben seguir un orden y estructura preciso, esto para que la base de datos (Desde ahora BS) las entienda y no de errores.

De ahí el acrónimo SQL (Structured query language) que en español significa lenguaje estructurado de consultas, o, en resumen: el lenguaje universal para consultar a las bases de datos.

¿Cómo funciona?

TABLA

                                    Una tabla en SQL

Estos datos organizados son una tabla, la estructura principal de la mayoría de bases de datos.

Igual que una hoja de cáculo, cada tabla debe tener un nombre único que la identifique.

Como esta tiene información de personas, la podemos llamar ‘personas1’.

Sí, lo sé, las tablas SQL se parecen a un Excel de toda la vida, pero se diferencian en varios aspectos:

TABLA 2

La última diferencia es la más importante, ya que el motor de bases de datos (O MBS para abreviar) es el co-protagonista de este show.

Podríamos decir que el MBS es como un almacen especial, en vez de materiales y objetos, guardan datos y tablas.

Estos almacenes pueden ser grandes o pequeños, optimizados para objetivos específicos (Como rápidez o seguridad) o todo-terreno, con o sin extensiones, etc.

De ahí su gran variedad. Como ejemplo están: Postgresql, Mysql, MS SQL, etc. Cada uno con su diferencial.

Pero, siendo francos, eso no importa ahora. Es hora de crear tu primer gran query.

Tu primera sentencia: SELECT y FROM

¡Felicidades! Has sido contratado como científico de datos en Marketing.SAC, un conglomerado de call centers, y hoy es tu primer día. 😃

Es lunes a las 8 a. m., abres tu computadora y te encuentras con un email del Jefe de Marketing:

'Buenos días. Porfavor enviame los nombres, apellidos y edades de los vendedores registrados en Postgres. Necesitamos hacer un análisis de colaboradores urgente. Lo espero hasta las 9:30 a. m.'

Vaya inicio, pero nada que no se pueda manejar. Abres la base de datos en tu computadora y te acuerdas que la tabla ‘vendedores1’ contiene toda la información necesaria.

TABLA3

Nota: Para este y los siguientes ejercicios utilizaremos data ya generada. Puedes encontrar los comandos SQL para insertarla ya listos en el siguiente archivo:

Vendedores

Utilizar SELECT y FROM es la clave aquí. Ambas son palabras clave (O keywords) SQL que le dicen a la BS:

  • SELECT: Cuáles columnas mostrar y cuáles no.
  • FROM: De qué tabla obtener la información.

Tranquilo si no lo entiendes ahora, en breve lo explicaremos más a detalle. Ejemplo: Como no sabemos cómo es, sería buena idea mostrar la tabla.

INPUT:

SELECT * FROM vendedores1;

OUTPUT:

TABLA 4

Genial pero nosotros solo queremos obtener los nombres, apellidos y edades. En este caso notamos que estos datos están en las columnas ‘edades1’, ‘names01’ y ‘apellidos’.

Podemos realizar el siguiente query para mostrar solo estas columnas: ‘SELECT edades1, names01, apellidos FROM vendedores;’

INPUT:

SELECT names01, apellidos, años FROM vendedores1;

OUTPUT:

TABLA 5

Como te puedes dar cuenta, SELECT sirve para seleccionar las columnas que quieres mostrar de la tabla. Si quisieramos obtener columnas específicas, podemos su nombre al costado de ‘SELECT’, si quisieramos todas ponemos un ‘*’.

FROM solo le dice a la base de datos de qué tabla obtener la información. Si pusieramos ‘usuarios’ en vez de ‘vendedores’, adivina de que grupo mostraría la info.

Si has sido observador notarás que existen vendedores con ¿6 años de edad? Y , aunque no lo creas, en una situación real te toparás con datos que no tienen sentido.

A estos datos los llamamos: ‘datos basura’ o ‘datos dañados’ y se tratan en otro tema aparte: limpieza de datos.

Por ahora digamos que estos datos se corregirán automáticamente al hacer los reportes, que el excel pasará toda edad menor a 18 años a 18 años.

¡Listo! Pasas la información a un reporte de Excel y lo envías.

¿Dónde está WHERE?

Todo es paz y tranquilidad hasta que vez un email del vicepresidente de ventas:

‘Bienvenido a la compañia. Necesitamos los datos de los vendedores menores a 25 años. Los jóvenes son el futuro y queremos ver sus resultados’

WHERE es 2 cosas aquí: Tu mejor amigo y la palabra clave que filtra los datos en base a una condición.

Igual que el primero, WHERE está allí dónde más lo necesitas.

Como ahora. 😎

Ejemplo: Si quisieramos obtener los datos de solo los vendedores peruanos, este sería nuestro query:

INPUT:

SELECT * FROM vendedores1 WHERE pais='Peru';

OUTPUT:

TABLA 6

En este caso queremos filtrar por años, de modo cambiamos el condicional:

INPUT:

SELECT * FROM vendedores1 WHERE años<25;

OUTPUT:

TABLA 7

Genial. Justo toca hora de almuerzo. Envias la información y vas por un café.

Organiza y vencerás: LIMIT y ORDER BY:

Regresas y notas ¿Otro email? Acabará el almuerzo pero no el día jeje.

Esta vez del mismo CEO de la empresa. ¿Qué buscará?

‘Buenas tardes. Hoy es la ceremonia de progreso para los 10 mejores vendedores menores a 21 años. Se les debe de dar su bono y ascenso antes de acabar el turno laboral. Porfavor enviarme sus identificadores, edades y número de ventas.’

En este caso necesitaremos de LIMIT y ORDER BY, que, como se puede inferir, sirven para limitar el número de datos mostrados y para ordenarlos en base a un criterio.

Ejemplo de LIMIT: Si quisieramos los datos de solo 10 personas, esta sería nuestra consulta:

INPUT:

SELECT * FROM vendedores1 LIMIT 10;

OUTPUT:

TABLA 8

Ejemplo de ORDER BY: Ordenar los datos en base al número de ventas de manera descendente.

INPUT:

SELECT * FROM vendedores1 ORDER BY numero_ventas DESC;

OUTPUT:

TABLA 9

Si quisieramos verlo de manera ascendente, cambiamos DESC por ASC.

INPUT:

SELECT * FROM vendedores ORDER BY ventas ASC;

OUTPUT:

TABLA 10

Las palabras ASC y DESC son opcionales. ¿Qué sucede si no ponemos ninguna? Por defecto se ordenará de manera descendente.

La palabra DESC es opcional, determina si quieres ver los datos de manera descendente. De manera ascendente sería ASC.

La ‘;‘ y el orden. Final de temporada.

Te tengo que contar un secreto: hasta ahora hemos visto las keyword por separado, pero para que funcionen juntas (Y no salgan errores) deben estar en un orden especial. Además de, casi, siempre finalizar con un ‘;‘.

Este es su orden:

  1. SELECT
  2. FROM
  3. WHERE
  4. ORDER BY
  5. LIMIT

Tal vez te parezca un secreto aburrido, pero creeme que te evitará dolores para ti y tus dedos.

Con esto por fin estamos listos para escribir el siguiente y último query. ¡Valla primer día!

Nota: Existe un truco para el aprendizaje: Intentar y fallar. La mente aprende más al tratar y equivocarse que de no tratar para nada. Te reto a encontrar el input de este email por ti mismo. Nadie nace experto, no temas equivocarte.

¿Listo? Este es:

INPUT:

SELECT * FROM vendedores1 WHERE años<21 ORDER BY numero_ventas DESC LIMIT 10;

OUTPUT:

TABLA 12

¡Felicidades! Lograste aprender que es SQL, crear tu primer gran query y culminar tu primer día en Marketing.SAC.

Puede que te preguntes ¿Pero que hay de los JOINS o GROUP BY? ¿No los veremos?

Y la verdad es que: No. Estas sí son funciones importantes del día a día, pero a la vez abarcan conceptos matemáticos un poco más complejos. Pero te prometo que pronto estará el post: ¿Qué son y cómo funcionan los GROUP BY y JOINS en SQL?

Cuentame. ¿Alguna duda que quisieras resolver? Te leo en la caja de comentarios. ;D

Por el momento es todo de mi parte. Soy Augusto Huerta, estudiante de ciencias de datos, amante de los RTS y libros. Me puedes encontrar en mi página personal y linkedin.

Últimas publicaciones