Access SQL: conceptos básicos, vocabulario y sintaxis

Si desea recuperar datos de una base de datos, puede solicitar los datos mediante el Lenguaje de consulta estructurado o SQL. SQL es un lenguaje de computación que se asemeja al inglés y que los programas de bases de datos comprenden. Cada consulta que se ejecuta usa SQL en segundo plano.

Si comprende el funcionamiento de SQL podrá crear mejores consultas además de solucionar una consulta que no brinda los resultados deseados.

Éste es uno de varios artículos acerca de Access SQL. En este artículo se describe el uso básico de SQL para seleccionar datos y se usan ejemplos para ilustrar la sintaxis de SQL.

En este artículo

¿Qué es SQL?

Cláusulas SQL básicas: SELECT, FROM y WHERE

Ordenar los resultados: ORDER BY

Trabajar con datos resumidos: GROUP BY y HAVING

Combinar los resultados de las consultas: UNION

¿Qué es SQL?

SQL es un lenguaje de computación para trabajar con conjuntos de hechos y las relaciones entre ellos. Los programas de base de datos relacionales, como Microsoft Office Access, usan SQL para trabajar con datos. A diferencia de muchos lenguajes de computación, SQL no es difícil de leer y entender, incluso para un usuario inexperto. Al igual que muchos lenguajes de computación, SQL es un estándar de internacional reconocido por organismos de estándares como ISO y ANSI.

"SQL no es difícil de leer y entender, incluso para un usuario inexperto."

Puede usar SQL para describir conjuntos de datos que pueden ayudarle a responder preguntas. Al usar SQL, debe emplear la sintaxis correcta. La sintaxis es el conjunto de reglas mediante las que se combinan correctamente los elementos de un lenguaje. La sintaxis de SQL se basa en la sintaxis del inglés y usa muchos de los mismos elementos que la sintaxis de Visual Basic para aplicaciones (VBA).

Por ejemplo, una simple instrucción SQL que recupera una lista de los apellidos de contactos cuyo nombre es María podría ser similar a la siguiente:

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

Nota: SQL no se usa solo para manipular datos, sino también para crear y modificar el diseño de los objetos de una base de datos (por ejemplo, las tablas). La parte de SQL que se usa para crear y modificar objetos de una de base de datos se denomina lenguaje de definición de datos (DDL). En este tema no se describe el DDL. Para obtener más información, vea el tema acerca de cómo crear o modificar tablas o índices mediante una consulta de definición de datos.

Instrucciones SELECT

Para describir un conjunto de datos mediante SQL, escriba una instrucción SELECT. Una instrucción SELECT contiene una descripción completa del conjunto de datos que desea obtener de una base de datos. Incluye lo siguiente:

  • Qué tablas contienen los datos.

  • Cómo se relacionan los datos de orígenes diferentes.

  • Qué campos o cálculos proporcionarán los datos.

  • Criterios que los datos deben cumplir para ser incluidos.

  • Si se deben ordenar los datos y, en caso de ser así, cómo deben ordenarse.

Cláusulas SQL

Al igual que una frase, una instrucción SQL tiene cláusulas. Cada cláusula realiza una función para la instrucción SQL. Algunas cláusulas son obligatorias en una instrucción SELECT. En la siguiente tabla se enumeran las cláusulas SQL más comunes.

Cláusula SQL

Función

Obligatoria

SELECT

Muestra una lista de los campos que contienen datos de interés.

FROM

Muestra las tablas que contienen los campos de la cláusula SELECT.

WHERE

Especifica los criterios de campo que cada registro debe cumplir para poder ser incluido en los resultados.

No

ORDER BY

Especifica la forma de ordenar los resultados.

No

GROUP BY

En una instrucción SQL que contiene funciones de agregado, muestra los campos que no se resumen en la cláusula SELECT.

Solo si están estos campos

HAVING

En una instrucción SQL que contiene funciones de agregado, especifica las condiciones que se aplican a los campos que se resumen en la instrucción SELECT.

No

Términos de SQL

Cada cláusula SQL consta de términos, comparables a diferentes partes de la oración. En la siguiente tabla se enumeran los tipos de términos de SQL.

Término de SQL

Parte de la oración comparable

Definición

Ejemplo

identificador

sustantivo

Nombre que se usa para identificar un objeto de la base de datos, como el nombre de un campo.

Clientes.[Número de teléfono]

operador

verbo o adverbio

Palabra clave que representa o modifica una acción.

AS

constante

sustantivo

Valor que no cambia, como un número o un valor nulo (NULL).

42

expresión

adjetivo

Combinación de identificadores, operadores, constantes y funciones que se evalúa como un valor único.

> = Productos.[Precio por unidad]

Principio de página

Cláusulas SQL básicas: SELECT, FROM y WHERE

Una instrucción SQL tiene el formato general:

SELECT field_1
FROM table_1
WHERE criterion_1
;

Notas: 

  • Access pasa por alto los saltos de línea en una instrucción SQL. Sin embargo, conviene usar una línea para cada cláusula para que las instrucciones SQL sean más fáciles de leer por todos.

  • Cada una de las instrucciones SELECT termina con un punto y coma (;). El punto y coma (;) puede aparecer al final de la última cláusula o solo en una línea al final de la instrucción SQL.

Un ejemplo en Access

A continuación se muestra el aspecto que podría tener en Access una instrucción SQL para una consulta de selección simple:

Pestaña del objeto SQL en la que se muestra una instrucción SELECT

1. Cláusula SELECT

2. Cláusula FROM

3. Cláusula WHERE

En este ejemplo de instrucción SQL, se indica "Seleccionar los datos almacenados en los campos Dirección de correo electrónico y Empresa de la tabla llamada Contactos, específicamente aquellos registros en los cuales el valor del campo Ciudad sea Seattle".

A continuación se incluye un ejemplo y se describe cada cláusula para mostrar cómo funciona la sintaxis de SQL.

Cláusula SELECT

SELECT [E-mail Address], Company

Ésta es la cláusula SELECT. Se compone de un operador (SELECT) seguido de dos identificadores ([Dirección de correo electrónico] y Empresa).

Si un identificador contiene espacios o caracteres especiales (como "Dirección de correo electrónico"), se debe escribir entre corchetes.

Una cláusula SELECT no tiene que mencionar las tablas que contienen los campos y no puede especificar las condiciones que deben cumplir los datos que se van a incluir.

La cláusula SELECT siempre aparece antes que la cláusula FROM en una instrucción SELECT.

Cláusula FROM

FROM Contacts

Ésta es la cláusula FROM. Se compone de un operador (FROM) seguido de un identificador (Contactos).

Una cláusula FROM no enumera los campos que se van a seleccionar.

Cláusula WHERE

WHERE City="Seattle"

Ésta es la cláusula WHERE. Se compone de un operador (WHERE) seguido de un identificador (Ciudad="Seattle").

Nota: A diferencia de las cláusulas SELECT y FROM, la cláusula WHERE no es un elemento obligatorio en una instrucción SELECT.

Puede realizar muchas de las acciones que SQL permite realizar mediante las cláusulas SELECT, FROM y WHERE. En los siguientes artículos adicionales encontrará más información sobre cómo usar estas cláusulas:

Principio de página

Ordenar los resultados: ORDER BY

Al igual que Microsoft Office Excel, Access permite ordenar los resultados de la consulta en una hoja de datos. Además, puede especificar en la consulta cómo desea ordenar los resultados al ejecutar la consulta mediante una cláusula ORDER BY. Si usa una cláusula ORDER BY, ésta será la última cláusula en la instrucción SQL.

Una cláusula ORDER BY contiene una lista de los campos que desea usar para ordenar, en el mismo orden en el que desea aplicar las operaciones de ordenación.

Por ejemplo, suponga que desea ordenar los resultados por el valor del campo Empresa en orden descendente y,  en caso de que haya registros con el mismo valor para Empresa , desea ordenarlos además por el valor indicado en el campo Dirección de correo electrónico en orden ascendente. La cláusula ORDER BY podría ser similar a la siguiente:

ORDER BY Company DESC, [E-mail Address]

Nota: De forma predeterminada, Access ordena los valores de forma ascendente (A-Z, de menor a mayor). Use la palabra clave DESC para ordenar los valores en orden descendente.

Para más información acerca de la cláusula ORDER BY, consulte el tema La cláusula ORDER BY.

Principio de página

Trabajar con datos resumidos: GROUP BY y HAVING

A veces, desea trabajar con datos resumidos, como las ventas totales de un mes o los elementos más caros en el inventario. Para ello, debe aplicar una función de agregado a un campo en la cláusula SELECT. Por ejemplo, si desea que la consulta muestre la cantidad de direcciones de correo electrónico para cada una de las empresas, la cláusula SELECT debería parecerse a la siguiente:

SELECT COUNT([E-mail Address]), Company

Las funciones de agregado que se pueden usar dependen del tipo de datos del campo o la expresión que desea emplear. Para obtener más información acerca de las funciones de agregado disponibles, vea el tema sobre las funciones de agregado de SQL.

Especificar campos que no se usan en una función de agregado: cláusula GROUP BY

Al usar las funciones de agregado, normalmente debe crear una cláusula GROUP BY. Una cláusula GROUP BY muestra una lista de todos los campos a los que no se aplica una función de agregado. Si aplica las funciones de agregado a todos los campos de una consulta, no es necesario crear la cláusula GROUP BY.

Una cláusula GROUP BY se incluye inmediatamente después de la cláusula WHERE o la cláusula FROM si no hay una cláusula WHERE. La cláusula GROUP BY muestra una lista de los campos que aparecen en la cláusula SELECT.

Por ejemplo, siguiendo con el ejemplo anterior, si la cláusula SELECT aplica una función de agregado a [Dirección de correo electrónico] pero no a Empresa, la cláusula GROUP BY sería similar a la siguiente:

GROUP BY Company

Para más información acerca de la cláusula GROUP BY, consulte el tema La cláusula GROUP BY.

Limitar los valores de agregado mediante los criterios de agrupación: cláusula HAVING

Si desea usar criterios para limitar sus resultados, pero el campo al que desea aplicar el criterio se usa en una función de agregado, no puede usar una cláusula WHERE. En su lugar, debe usar una cláusula HAVING. La cláusula HAVING funciona como la cláusula WHERE, pero se usa para los datos agregados.

Por ejemplo, suponga que usa la función COUNT (que devuelve un número de filas) con el primer campo de la cláusula SELECT:

SELECT COUNT([E-mail Address]), Company

Si desea que la consulta limite los resultados según el valor de la función COUNT, no puede usar un criterio para dicho campo en la cláusula WHERE. Por el contrario, debe incluir el criterio en una cláusula HAVING. Por ejemplo, si solo desea que la consulta indique las filas en caso de que exista más de una dirección de correo electrónico asociada con la empresa, la cláusula HAVING debería ser similar a la siguiente:

HAVING COUNT([E-mail Address])>1

Nota: Una consulta puede incluir una cláusula WHERE y una cláusula HAVING: los criterios para los campos que no se usan en una función de agregado se corresponden con la cláusula WHERE y los criterios de los campos que se usan en las funciones de agregado se corresponden con la cláusula HAVING.

Para más información acerca de la cláusula HAVING, consulte el tema La cláusula HAVING.

Principio de página

Combinar los resultados de la consulta: UNION

Si desea revisar todos los datos obtenidos en conjunto de varias consultas de selección similares, como un conjunto combinado, use el operador UNION.

El operador UNION le permite combinar dos instrucciones SELECT en una. Las instrucciones SELECT que combine deben tener el mismo número de campos de resultado, en el mismo orden y con el mismo tipo de datos o con tipos de datos compatibles. Al ejecutar la consulta, los datos de cada conjunto de campos correspondientes se combinan en un único campo de resultado de modo que el resultado de la consulta tenga el mismo número de campos que cada una de las instrucciones de selección.

Nota: A efectos de una consulta de unión, los tipos de datos Texto y Número son compatibles.

Si usa el operador UNION, también puede usar la palabra clave ALL para especificar si los resultados de la consulta deben incluir las filas duplicadas, si existe alguna.

La sintaxis básica de SQL para una consulta de unión que combina dos instrucciones SELECT es la siguiente:

SELECT field_1
FROM table_1
UNION [ALL]
SELECT field_a
FROM table_a
;

Por ejemplo, supongamos que tiene una tabla denominada Productos y otra tabla denominada Servicios. Ambas tablas tienen campos que contienen el nombre del producto o servicio, el precio, la disponibilidad de garantía del servicio o de garantía del producto, y si el producto o servicio se ofrece de forma exclusiva. Aunque en la tabla Productos se almacena información de garantía del producto y en la tabla Servicios se almacena información de garantía del servicio, la información básica es la misma (si un producto o servicio determinado incluye una garantía de calidad). Puede usar una consulta de unión, como la que se muestra a continuación, para combinar los cuatro campos de las dos tablas:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services
;

Para obtener más información acerca de cómo combinar instrucciones SELECT mediante el operador UNION, vea el artículo Combinar los resultados de varias consultas de selección mediante una consulta de unión.

Principio de página

¿Le ha sido útil esta información?

De acuerdo. ¿Algún comentario más?

¿Cómo podemos mejorarlo?

¡Gracias por sus comentarios!

×