Saltar al contenido

Trabajar con SQL en Base – 1

Escrito por un humano, no por una IA

SQL (structured query language) es un lenguaje de programación, concretamente de tipo declarativo, utilizado principalmente para acceder e interactuar con bases de datos. Programas como Microsoft Access, OpenOffice o LibreOffice son en realidad un disfraz bajo el que se esconde SQL. Todas estas aplicaciones ejecutan instrucciones SQL cada vez que creamos una tabla, añadimos datos, implementamos una consulta, etc.

¿Por qué utilizar SQL entonces? Tal y como pasa con otras aplicaciones ofimáticas, Base tiene ciertas limitaciones a la hora de realizar operaciones complejas con los datos almacenados en las tablas de una base de datos y es en estos casos en los que deberemos recurrir a SQL.

Las aplicaciones que daremos a SQL dentro de Base y que explicaremos en este y en el siguiente post tienen que ver con el apartado de consultas, eliminación de registros y actualizaciones masivas en las tablas.

Consultas con SQL

Para este tutorial hemos preparado una sencilla base de datos con la que tener controlados a los alumnos de un centro. La primera de las tablas de la base de datos con la que vamos a trabajar se llama «alumnos» y se encuentra formada por los siguientes campos: id, nombre, apellidos, fecha de nacimiento y nacionalidad.

Para comenzar a crear consultas con SQL tenemos que pulsar sobre la opción «Consultas» situada en el margen izquierdo del menú, para después pulsar sobre «Crear una consulta en modo SQL», con lo que se abrirá una nueva ventana de diseño de consultas SQL. Con la primera consulta que realizaremos intentaremos seleccionar todos los registros de la tabla «alumnos»:

[codesyntax lang=»sql»]

SELECT * FROM alumnos

[/codesyntax]

Ventana de diseño de consulta SQL.

Una vez introducida la consulta, pulsamos sobre el botón Ejecutar consulta o la tecla función 5 (F5). El resultado es la lista de todos los registros de la tabla. La consulta que hemos realizado es bastante transparente: SELECT (selecciona), * (asterisco = todo), FROM (de), la tabla denominada alumnos.

Resultado de la sentencia SELECT.

Sentencia SELECT

En el ejemplo anterior ya hemos podido ver en acción a la sentencia SELECT. La sentencia SELECT es una de las que utilizaremos con más frecuencia. Mediante ella podremos seleccionar registros de tablas o consultas, aplicar filtros o incluso agrupar o calcular totales.

En la consulta anterior hemos ordenado que el sistema nos devolviese todos los campos de todos los registros de la tabla «alumnos». Si por el contrario sólo deseamos seleccionar uno o más de sus campos utilizaremos una sentencia similar a esta:

[codesyntax lang=»sql»]

SELECT Nombre, Apellidos FROM alumnos

[/codesyntax]

 

Si ejecutamos la consulta anterior en el resultado sólo aparecerán los campos Nombre y Apellidos.

 

Cláusula WHERE

La cláusula WHERE permite obtener como resultado de una consulta, sólo aquellos registros que cumplan una condición determinada. Por ejemplo, en la tabla «alumnos» sólo aquellos alumnos de nacionalidad española. En el siguiente ejemplo vamos a combinar la sentencia SELECT utilizada en el apartado anterior con una cláusula WHERE:

[codesyntax lang=»sql»]

SELECT Nombre, Apellidos FROM alumnos WHERE Nacionalidad ='Española'

[/codesyntax]

 

El resultado es la lista con el nombre y apellidos de los alumnos de nuestra tabla con nacionalidad española.

En el ejemplo anterior es importante utilizar las comillas simples (generalmente bajo el símbolo de interrogación del teclado)

En el ejemplo anterior hemos visto uno de los operadores lógicos que podemos utilizar para construir consultas SQL, el signo igual (=). Otros operadores son:

Operador Significado Resultado
= Igual a Devuelve los registros que cumplen una condición
 < Menor que Devuelve los registros cuyos valores son menores al de la condición
 > Mayor que Devuelve los registros cuyos valores son mayores al de la condición
 <= Menor o igual que Devuelve los registros cuyos valores son menores o iguales al de la condición
 >= Mayor o igual que Devuelve los registros cuyos valores son mayores o iguales al de la condición
 <> Distinto de Devuelve los registros cuyos valores son diferentes al de la condición

 

Condiciones AND y OR en la cláusula WHERE

Los operadores booleanos AND y OR nos permiten combinar diferentes criterios en una consulta. Por ejemplo si deseamos saber que alumnos de nuestra base de datos han nacido en el año 1989 podemos utilizar la siguiente sentencia:

[codesyntax lang=»sql»]

SELECT * FROM alumnos WHERE Fechanacimiento >= '1989-01-01' AND Fechanacimiento <= '1989-12-31'

[/codesyntax]

A diferencia del operador AND que obliga a que dos o más condiciones se cumplan en el momento de determinar los resultados de una consulta, con el operador OR sólo se debe cumplir alguna de las condiciones propuestas. Por ejemplo, para mostrar todos los alumnos de nacionalidad española o colombiana la expresión sería la siguiente:

[codesyntax lang=»sql»]

SELECT * FROM alumnos WHERE Nacionalidad = 'Española' OR Nacionalidad = 'Colombiana'

[/codesyntax]

Los operadores AND y OR se pueden combinar y utilizar sin límite en una misma sentencia SQL. En este caso tenemos que utilizar paréntesis para separar las condiciones de criterios AND y OR. Por ejemplo:

[codesyntax lang=»sql»]

SELECT * FROM alumnos WHERE (Nacionalidad = 'Española' AND Fechanacimiento >= '1989-01-01' AND Fechanacimiento <= '1989-12-31') OR (Nacionalidad = 'Colombiana' AND Fechanacimiento >= '1989-01-01' AND Fechanacimiento <= '1989-12-31')

[/codesyntax]

 

Order by

Con la cláusula Order by podemos ordenar el resultado de una consulta a partir de los valores de uno o más campos. En el ejemplo de nuestra tabla alumnos, podemos ordenar los resultados por el apellido:

[codesyntax lang=»sql»]

SELECT * FROM alumnos ORDER BY Apellidos

[/codesyntax]

La cláusula ORDER BY se puede combinar con cualquier tipo de consulta. Por ejemplo:
[codesyntax lang=»sql»]

SELECT * FROM alumnos WHERE Nacionalidad = 'Española' ORDER BY Apellidos

[/codesyntax]

También podemos ordenar por más de un campo:

La cláusula ORDER BY se puede combinar con cualquier tipo de consulta. Por ejemplo:
[codesyntax lang=»sql»]

SELECT * FROM alumnos WHERE Nacionalidad = 'Española' ORDER BY Apellidos, Nombre

[/codesyntax]

En este último ejemplo, los resultados de la consulta (alumnos españoles) se ordenarán en primer lugar por el apellido y en segundo lugar por el nombre.


Artículos relacionados


Comentarios

  1. ¡Hola! Tengo una pregunta bastante urgente sobre las consultas SQL y espero que me puedas ayudar. Aquí no muestras cómo se haría una consulta con una condición booleana, es decir, si en una tabla tengo un dominio booleano, ¿cómo pondría en SQL que quiero que me haga la consulta con la opción del «sí»? He probado con: where activo=’si’ («activo» es el nombre que tiene mi cammpo booleano), pero no me muestra los que tienen esa casilla marcada. Te agradecería que me dijeses de qué forma tengo que ponerlo. Siento mucho si no se entiende lo que he puesto.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.


Archivo

BY-SA 4.0 — Pinakes, 2026. Desarrollado con WordPress.

Uso de cookies

Este sitio web utiliza cookies para recoger datos de analítica. Si continúas navegando estás dando tu consentimiento para la aceptación de las mencionadas cookies y la aceptación de la política de cookies.

ACEPTAR
Aviso de cookies