Volver a la lista de artículos Artículos
Lectura de 8 minutos

¿Qué son las consultas SQL básicas?

Puedes acceder a los datos de una base de datos utilizando algunas consultas SQL básicas. En este artículo, repasamos las consultas SQL fundamentales que todo principiante debe conocer.

Las bases de datos están por todas partes y contienen distintos tipos de datos. Casi todas admiten SQL, un lenguaje que permite leer y manipular los datos de una base de datos. En este artículo, te mostraré las consultas SQL básicas que puedes utilizar para realizar muchas tareas cotidianas con datos.

La mejor manera de aprender SQL es nuestro SQL para principiantes interactivo. Tiene más de 120 ejercicios, comenzando con ejemplos muy sencillos y avanzando luego hacia conceptos como JOINs y condiciones de WHERE. Puede obtener más información sobre SQL en nuestro artículo ¿Qué es SQL? También puede descubrir por qué SQL no es difícil de aprender.

¿Qué es una consulta SQL?

Una base de datos es un programa informático que almacena grandes cantidades de datos. Las bases de datos suelen organizarse en tablas. Cada tabla almacena los datos de una cosa, persona, lugar u otro objeto (por ejemplo, la descripción de clientes, productos, citas o empleados). Una vez que se tienen los datos almacenados en una base de datos, se pueden crear informes utilizando estos datos; por ejemplo, se puede crear una lista de los clientes que realizaron transacciones en el último mes.

Los informes de base de datos se crean con la ayuda de SQL, o lenguaje de consulta estructurado. SQL es el lenguaje de programación utilizado para comunicarse con las bases de datos. Una consulta SQL es una expresión, similar a una frase en inglés, que define el conjunto de datos que deben recuperarse de la base de datos. Puedes pensar en una consulta SQL como una pregunta que envías a la base de datos; después, esperas que la base de datos responda a la pregunta devolviendo los datos.

En este artículo, le mostraremos las consultas SQL más básicas. Éstas se pueden utilizar para realizar tareas de datos comunes. Puedes modificar fácilmente estas consultas SQL y utilizarlas en tu propia base de datos.

Antes de comenzar con las consultas, veamos los datos que utilizaremos.

Nuestra tabla de ejemplo

Las consultas se basarán en una tabla llamada products. Esta tabla almacena toda la información de los productos de una empresa de comercio electrónico. Puede ver las columnas de la tabla en la siguiente imagen:

prod_codenameprod_ familycostpricestockproviderstatus
1001Cell Phone A200Phones50085035Trixavailable
1002Cell Phone A310Phones740120050Trixavailable
1003HeadsetAudio2450150Zeysold out
2001Portable SpeakerAudio14023050Zeyavailable
2002Sound Box Hulk1Audio2203400Zeydiscontinued
2003Sound Box Hulk2Audio32053012Zeyavailable
2004HeadsetAudio325885Zeyavailable
3001Tablet X8 8 inchTablets15530035MiniSOftavailable
3002Tablet X12 12 inchTablets21543040MiniSoftavailable

Los nombres de las columnas se explican por sí mismos. Quizá la columna más importante sea prod_code. Almacena un código numérico que identifica cada producto (es decir, el ID de cada producto). Además, es bueno tener en cuenta que la columna de estado sólo puede tener cuatro valores válidos: "disponible", "agotado", "próximamente" o "descatalogado".

Ahora que ya sabemos qué datos esperar, empecemos a escribir algunas consultas SQL.

Consultas SQL básicas

Consulta 1: Seleccionar todos los datos de una tabla

La primera consulta es una forma sencilla de recuperar toda la información de una tabla de la base de datos. La siguiente consulta muestra todos los registros en todas las columnas de la tabla product columnas de la tabla:

SELECT * 
FROM products

Esta sentencia SELECT utiliza el símbolo * para representar "todas las columnas". A continuación, la cláusula FROM indica la tabla que debe leerse. Como podemos ver a continuación, el resultado es la tabla completa: todos los registros y todas las columnas. Puede utilizar esta consulta para echar un vistazo a una tabla y saber qué tipo de datos hay en ella.

prod_codenameprod_ familycostpricestockproviderstatus
1001Cell Phone A200Phones50085035Trixavailable
1002Cell Phone A310Phones740120050Trixavailable
1003HeadsetAudio2450150Zeysold out
2001Portable SpeakerAudio14023050Zeyavailable
2002Sound Box Hulk1Audio2203400Zeydiscontinued
2003Sound Box Hulk2Audio32053012Zeyavailable
2004HeadsetAudio325885Zeyavailable
3001Tablet X8 8 inchTablets15530035MiniSOftavailable
3002Tablet X12 12 inchTablets215430140MiniSoftavailable

Consulta 2: Seleccionar columnas específicas de una tabla

También puede mostrar sólo algunas columnas de una tabla. Supongamos que queremos una lista de precios con las columnas name, provider, prod_family y price. La consulta es muy sencilla:

SELECT 
  name, 
  provider, 
  prod_family, 
  price 
FROM products

Especificamos las columnas que queremos extraer de la tabla: name, provider, prod_family, y price. En la segunda línea de la consulta, utilizamos la cláusula FROM para indicar la tabla que hay que leer. El resultado es:

nameproviderprod_familyprice
Cell Phone A200TrixPhones850
Cell Phone A310TrixPhones1200
HeadsetZeyAudio50
Portable SpeakerZeyAudio230
Sound Box Hulk1ZeyAudio340
Sound Box Hulk2ZeyAudio530
HeadsetZeyAudio58
Tablet X8 8 inchMiniSOftTablets300
Tablet X12 12 inchMiniSoftTablets430

Consulta 3: Realización de cálculos sencillos

Podemos realizar cálculos dentro de una consulta SQL. Éstas nos permiten obtener un valor calculado derivado de otros valores almacenados en la tabla de la base de datos.

Calculemos los importes de rentabilidad de los productos utilizando las columnas price y cost y, a continuación, mostremos el importe junto al nombre del producto. He aquí la consulta que utilizaríamos:

SELECT 
  name,
  price - cost AS rentability
FROM products

La segunda línea de la consulta contiene la expresión aritmética price - cost. La palabra clave AS permite asignar el nombre rentability al resultado de esta expresión aritmética. La nueva información se muestra como una columna en el resultado de la consulta:

namerentability
Cell Phone A200350
Cell Phone A310460
Headset26
Portable Speaker90
Sound Box Hulk1120
Sound Box Hulk2210
Headset26
Tablet X8 8 inch145
Tablet X12 12 inch215

Consulta 4: Filtrado de datos

Normalmente no se quieren ver todos los datos de una base de datos. Quiere ver sólo las filas que coinciden con ciertos criterios: productos de una familia de productos o con un precio por debajo de cierto umbral. En SQL, esto se denomina filtrar los datos.

La cláusula WHERE filtra los datos que desea del resto de los datos de la tabla. Extrae los registros que cumplen determinadas condiciones. Por ejemplo, supongamos que queremos una lista de precios de los productos de la familia "Audio". Podemos utilizar la siguiente consulta para obtener el resultado:

SELECT 
  name, 
  provider, 
  prod_family, 
  price 
FROM products
WHERE prod_family = ‘Audio’

La cláusula WHERE indica que sólo queremos obtener aquellos registros en los que la condición prod_family = ‘Audio’ sea TRUE. Los demás registros (los pertenecientes a las familias Teléfonos o Tabletas) no formarán parte del resultado. En otras palabras, estamos filtrando registros de la tabla products.

nameproviderprod_ familyprice
HeadsetZeyAudio50
Sound Box Hulk1ZeyAudio340
Portable SpeakerZeyAudio230
Sound Box Hulk2ZeyAudio530
HeadsetZeyAudio58

Consulta 5: Ordenación de datos en el resultado de la consulta

A menudo se desea ver los resultados de la consulta en un orden determinado, como los productos del más barato al más caro o los nombres de los productos en orden alfabético. La cláusula ORDER BY se utiliza para definir cómo se ordenarán los registros en el resultado de la consulta.

Supongamos que queremos ordenar los productos de nuestra consulta anterior por nombre. Observe cómo utilizamos ORDER BY en esta consulta:

SELECT 	
  name, 
  provider, 
  prod_family, 
  price 
FROM products
WHERE prod_family = ‘Audio’
ORDER BY name

Podemos ver los mismos registros ordenados alfabéticamente por nombre de producto:

nameproviderprod_ familyprice
HeadsetZeyAudio50
HeadsetZeyAudio58
Portable SpeakerZeyAudio230
Sound Box Hulk1ZeyAudio340
Sound Box Hulk2ZeyAudio530

Combinarlo todo para resolver problemas empresariales

Puede combinar todas las funciones SQL mostradas en este artículo en una sola consulta. Combinando las funciones SQL de esta forma se crea una consulta más compleja que puede resolver problemas empresariales reales.

El resultado de la última consulta de la sección anterior es similar a una lista de precios de los productos de la familia Audio. Sin embargo, muestra los productos descatalogados o agotados. En la siguiente consulta, añadiremos una segunda condición lógica en la cláusula WHERE para incluir sólo los productos que están disponibles actualmente:

SELECT 	
  name, 
  provider, 
  prod_family, 
  price 
FROM products
WHERE prod_family = ’Audio’  
  AND status = ’available’
ORDER BY name

Las condiciones de la cláusula WHERE están conectadas con el conector lógico AND; así, el resultado incluirá sólo los registros en los que ambas condiciones lógicas sean TRUE. Podemos ver esto en los siguientes resultados:

nameproviderprod_ familyprice
HeadsetZeyAudio50
HeadsetZeyAudio58
Portable SpeakerZeyAudio230
Sound Box Hulk2ZeyAudio530

En la siguiente consulta de ejemplo, intentaremos combinar todas las cláusulas SQL tratadas en este artículo. Supongamos que estamos planificando una campaña de marketing y tenemos que elegir dos productos para promocionar. Queremos productos con una rentabilidad superior a 200 dólares y con un stock superior a 25 unidades. También ordenaremos el informe por una métrica llamada "rentabilidad potencial" que se calcula con la fórmula : (price - cost) * stock. Esta es la consulta:

SELECT 
  name, 
  price - cost AS rentability,
  stock, 
  (price - cost) * stock AS potential_rentability
FROM products
WHERE price - cost > 200  
AND stock > 25
ORDER BY (price - cost) * stock DESC;

La consulta anterior calcula dos métricas. Una métrica es rentability que se calcula con la fórmula price - cost. La otra métrica es potential_rentability, que se calcula mediante la fórmula (price - cost) * stock. En la cláusula WHERE, la consulta especifica dos condiciones: los registros a devolver deben tener un rentability superior a 200 y un stock superior a 25 unidades. Por último, el resultado de la consulta se ordena por la métrica potential_rentability en orden descendente (de mayor a menor). A continuación se muestra el resultado:

namerentabilitystockpotential rentability
Tablet X12 12 inch21514030100
Cell Phone A3104605023000
Cell Phone A2003503512250

Sigue Aprendiendo Consultas SQL Básicas

En este artículo, cubrimos las consultas SQL básicas que pueden utilizarse para realizar tareas de datos simples. Sin embargo, SQL ofrece muchas más cláusulas y técnicas que permiten realizar más operaciones con los datos.

Nuestro curso SQL para principiantes es la mejor manera de dominar el SQL básico. Contiene más de 120 ejercicios que cubren consultas SQL básicas (como las que se muestran en este artículo) y otras construcciones SQL que permiten combinar datos de varias tablas y calcular diversas estadísticas.

Si ya conoce los conceptos básicos de SQL, nuestra Hoja de consulta de SQL básico es un práctico recurso de referencia. Le proporcionará un recordatorio conciso de la sintaxis SQL con consultas de ejemplo.