CORE Code School

Crear una Tabla y hacer consultas en SQL con CREATE, INSERT, SELECT y WHERE

20 minutos

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.

DB Fiddle

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.

sql
CREATE 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.

sql
INSERT 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.

sql
INSERT 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:

sql
SELECT * 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.

sql
SELECT 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:

sql
SELECT 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.

Referencias