SQL es un lenguaje que nos permite ejecutar instrucciones en una base de datos. Este se usa para guardar, obtener y manipular información. Es uno de los lenguajes mas populares de la industria por varios motivos:
- Su sintáxis es sencilla y compacta.
- Muchos proveedores de datos permiten usar el lenguaje SQL para acceder a su información.
Es un estándar en la industria. Conociendo el lenguaje, puedes acceder a multiples fuentes de información usando la mismas instrucciones SQL. Por ejemplo puedes acceder a las ventas de tu web con Stripe Sigma, o tener tus datos globalmente accesibles con Google Cloud Spanner.
En definitiva, conocer SQL es un valor en alza para cualquier empresa, es práctico para muchisimos roles como consultores, analistas de negocio, financieros y sobretodo para desarrolladores frontend, backend e ingenieros de datos.
Servidor SQL
Un servidor SQL es un software que tiene la tarea de operar nuestras instrucciones en lenguaje SQL. En resumen, con SQL especificaremos qué queremos hacer: guardar datos o hacer consultas, pero es tarea del servidor usar esas instrucciones internamente para que esto sea posible. Guardar y ordenar información facilmente accesible no es sencillo, por ello que delegamos en el servidor de base de datos esta tarea.
Entre los servidores de base de datos mas populares tenemos los siguientes:
- MariaDB, PostrgreSQL. De código abierto, podemos instalar un servidor por nosotros mismos.
- SQLite. En vez de usar un servidor, guarda los datos en un fichero. Por ejemplo, esta base de datos la usa Whatsapp para guardar tus chats en tu iPhone/Android
- Amazon RDS. Una base de datos relacional en la nube, gestionada por Amazon Web Services, es decir, que con un click tienes un servidor listo para usar 🤘🏻.
SQL Playground
Para que no tengas que instalar por tu propia cuenta un servidor de SQL. Los ejemplos que encontrarás aquí los puedes ejecutar en DB Fiddle. En esta web puedes poner tus sentencias SQL para crear datos y probar a realizar consultas.
Ahora que ya tenemos todo listo, toca empezar con la sintáxis
CREATE
Crea una tabla
Nuestro servidor es un folio en blanco. Como cuando abres un documento nuevo en excel, nos toca definir como serán las columnas y tablas donde guardaremos nuestra información.
Vamos a crear una tabla para guardar los nombres de algunos participantes de una competición deportiva. La sentencia CREATE TABLE
creará una tabla, definiendo las columnas y el tipo de datos de estas.
sqlCREATE TABLE participantes ( nombre varchar(32), apellido varchar(32), nacido_en INT, rol varchar(32) );
Al definir el esquema de la tabla especificamos que la columna nombre
será del tipo varchar(32)
. Podremos guardar texto de hasta 32 carácteres en esta
columna.
INSERT
Escribe datos en la tabla
Usamos la sentencia INSERT
, especificamos la tabla, y los valores de las columnas.
sqlINSERT INTO participantes VALUES ("Pepe", "Pérez", 1989, "entrenador");
Es importante que te fijes en los detalles de la sintáxis como:
- Los parentesis al definir los valores de las columnas
- El
;
que indica el final de una sentencia
Al tener la tabla creada ya podemos empezar a realizar consultas. Nuestras consultas serán mas interesantes cuantos más datos tengamos, así que vamos a crear unos cuantos más.
sqlINSERT INTO participantes VALUES ("Luis", "Pérez", 1987, "jugador"); INSERT INTO participantes VALUES ("Luis", "Enrique", 1970, "entrenador"); INSERT INTO participantes VALUES ("Neymar", "da Silva", 1992, "jugador"); INSERT INTO participantes VALUES ("Kylian", "Mbappé", 1998, "jugador"); INSERT INTO participantes VALUES ("Cristiano", "Ronaldo", 1985, "jugador"); INSERT INTO participantes VALUES ("Robert", "Lewandowski", 1988, "jugador"); INSERT INTO participantes VALUES ("Lionel", "Messi", 1987, "jugador");
SELECT
para realizar consultas
Para consultar los datos en nuestra tabla usamos SELECT
. Podemos realizar consultas complejas, pero empecemos con algo sencillo:
sqlSELECT * FROM participantes;
La tabla con los resultados de la consulta SELECT
contendrá todos los datos insertados en la tabla participantes
.
bash| nombre | apellido | nacido_en | rol | | --------- | ----------- | --------- | ---------- | | Luis | Pérez | 1987 | jugador | | Luis | Enrique | 1970 | entrenador | | Neymar | da Silva | 1992 | jugador | | Kylian | Mbappé | 1998 | jugador | | Cristiano | Ronaldo | 1985 | jugador | | Robert | Lewandowski | 1988 | jugador | | Lionel | Messi | 1987 | jugador |
El asterisco *
especifica que queremos que devuelva todas las columnas de la tabla a consultar en el resultado.
En su lugar, podríamos realizar una consulta seleccionando solo algunas columnas.
sqlSELECT nombre, rol FROM participantes;
☝🏻 Tip: Es recomendable seleccionar sólo las columnas que necesitemos. Al seleccionar solo las columnas necesarias, ayudamos a que el servidor tenga que sólo los datos que vamos a necesitar. Esto es relevante en casos en los que tienes tablas muchas columnas.
Este es el resultado:
bash| nombre | rol | | --------- | ---------- | | Luis | jugador | | Luis | entrenador | | Neymar | jugador | | Kylian | jugador | | Cristiano | jugador | | Robert | jugador | | Lionel | jugador |
WHERE
Filtrado de datos
Cuando tenemos una tabla con muchos registros lo habitual es querer extraer sólo las filas
que son de nuestro interés. Para ello podemos especificar una expresión que filtra y devuelve
sólo los resultados que cumplan una condición usando WHERE
;
Si queremos sólo los entrenadores:
sqlSELECT nombre, apellido FROM participantes WHERE rol="entrenador";
bash| nombre | apellido | | ------ | -------- | | Luis | Enrique |
El resultado, contendrá las filas cuyo valor de la columna rol
sea entrenador
.