Aprende SQL

Consultas básicas con SELECT

Antes de escribir tu primera consulta, vamos a entender dónde viven los datos. Una base de datos es, simplemente, un lugar organizado para almacenar información. Piensa en ella como una hoja de cálculo muy potente: los datos se guardan en tablas, y cada tabla tiene columnas (los tipos de información) y filas (cada registro individual).

Por ejemplo, si quisiéramos guardar información sobre videojuegos, crearíamos una tabla con columnas como title, developer o year. Cada fila sería un videojuego distinto. SQL es el lenguaje que usamos para hacer preguntas a esa base de datos: “¿qué videojuegos hay?”, “¿cuáles salieron después de 2010?”, y mucho más.

Columnas (tipos de información)
Filas (registros)
videogames
title developer year
The Legend of Zelda Nintendo 1986
Super Mario Bros. Nintendo 1985
Final Fantasy VII Square Enix 1997
... ... ...

La sentencia SELECT te permite recuperar datos de una base de datos. Es una de las sentencias más importantes en SQL y la que más usarás en tu día a día.

La sintaxis y estructura básica de una consulta SELECT es la siguiente:

SELECT columnas
FROM tabla;
  • SELECT: La palabra clave que indica que queremos recuperar datos.
  • FROM: Indica de qué tabla provienen los datos.
  • columnas: Especifica las columnas que deseas recuperar.
  • tabla: Es el nombre de la tabla de la que deseas obtener los datos.

Tu primera consulta

Para hacer una consulta, primero debemos conocer la estructura de nuestra tabla. En este caso, tenemos una tabla llamada videogames con los siguientes campos:

Nombre de la Tabla: videogames
idtitledeveloperyearplaytime_hours
1The Legend of ZeldaNintendo198620
2Super Mario Bros.Nintendo198510
3Final Fantasy VIISquare Enix199740
4The Witcher 3CD Projekt Red2015100
5MinecraftMojang Studios20119999
6Grand Theft Auto VRockstar Games201380
7Dark SoulsFromSoftware201160
8Portal 2Valve20118
9Red Dead Redemption 2Rockstar Games201870
10The Last of UsNaughty Dog201315
11Halo: Combat EvolvedBungie200110
12God of WarSanta Monica Studio201825

Seleccionar todas las columnas

Si quieres recuperar todas las columnas de una tabla, puedes usar el asterisco *:

SELECT * FROM videogames;

Seleccionar columnas específicas

Para recuperar solo algunas columnas, escribe sus nombres separados por comas:

SELECT title, year FROM videogames;
SELECT *
id title year hrs
1 Zelda 1986 20
2 Mario 1985 10
3 FF VII 1997 40
Todas las columnas
SELECT title, year
id title year hrs
· Zelda 1986 ·
· Mario 1985 ·
· FF VII 1997 ·
Solo las columnas elegidas

Limitar resultados: LIMIT

Cuando una tabla tiene miles o millones de filas, no siempre quieres verlas todas. La cláusula LIMIT te permite indicar cuántas filas quieres obtener como máximo:

SELECT * FROM videogames LIMIT 5;

Esta consulta devuelve solo las 5 primeras filas de la tabla. Es muy útil para echar un vistazo rápido a los datos sin cargar toda la tabla.

También puedes combinar LIMIT con otras cláusulas. Por ejemplo, seleccionar solo el título de los 3 primeros videojuegos:

SELECT title FROM videogames LIMIT 3;
SELECT * FROM videogames
title year
The Legend of Zelda 1986
Super Mario Bros. 1985
Final Fantasy VII 1997
The Witcher 3 2015
Minecraft 2011
... ...
LIMIT 3
Resultado
title year
The Legend of Zelda 1986
Super Mario Bros. 1985
Final Fantasy VII 1997
3 filas

Comentarios en SQL

Al igual que en otros lenguajes, SQL permite escribir comentarios que el motor de base de datos ignora. Son muy útiles para explicar qué hace una consulta o para desactivar temporalmente una línea. Verás que los ejercicios de este curso los usan como guía.

Para un comentario de una sola línea, usa dos guiones --:

-- Esto es un comentario
SELECT * FROM videogames; -- Esto también

Para comentarios de varias líneas, usa /* ... */:

/* Esta consulta obtiene
   todos los videojuegos */
SELECT * FROM videogames;

Consejo para producción: Evita usar SELECT * en aplicaciones reales. Seleccionar solo las columnas que necesitas reduce la cantidad de datos que viaja entre la base de datos y tu aplicación, lo que mejora el rendimiento y hace tu código más claro. Reserva SELECT * para exploraciones rápidas o pruebas.

Ejercicios