Cuando 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.
¿Qué es SQL?
SQL es un lenguaje de computación que sirve para trabajar con conjuntos de datos y las relaciones entre ellos. Los programas de bases 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 internacional que es reconocido por organismos de estándares, como ISO y ANSI.“SQL no es difícil de leer y entender, incluso para un usuario inexperto.” |
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 esto:
SELECT Apellidos
FROM Contactos
WHERE Nombre = 'María';
Nota SQL no se usa sólo para manipular datos, sino también para crear y modificar el diseño de objetos de una base de datos, como 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). Este tema no cubre el DDL. Para obtener más información, vea el artículo 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 de 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. | Sí |
FROM | Muestra las tablas que contienen los campos de la cláusula SELECT. | Sí |
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. | Sólo si están estos campos |
HAVING | En una SQL instrucción 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 NULO. | 42 |
expresión | adjetivo | Combinación de identificadores, operadores, constantes y funciones que se evalúa como un valor único. | > = Productos.[Precio por unidad] |
Cláusulas SQL básicas: SELECT, FROM y WHERE
Una instrucción SQL tiene el formato general:SELECT campo_1
FROM tabla_1
WHERE criterio_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 mejorar la legibilidad de las instrucciones SQL.
- 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:
Cláusula SELECT
Cláusula FROM
Cláusula WHERE
Este ejemplo de instrucción SQL 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”.Veamos el ejemplo, una cláusula cada vez, para ver cómo funciona la sintaxis de SQL.
La cláusula SELECT
SELECT [Dirección de correo electrónico], Empresa
É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 en blanco 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.
La cláusula FROM
FROM Contactos
É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 desea seleccionar.
La cláusula WHERE
WHERE Ciudad="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:
Ordenar los resultados: ORDER BY
Al igual que Microsoft Office Excel, Access le permite ordenar los resultados de la consulta en una hoja de datos. También puede especificar en la consulta cómo desea ordenar los resultados cuando se ejecuta 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 que desea aplicar las operaciones de ordenación.
Por ejemplo, suponga que desea ordenar sus 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 también por el valor indicado en el campo Dirección de correo electrónico en orden ascendente. Su cláusula ORDER BY podría parecerse a la siguiente:
ORDER BY Empresa DESC, [Dirección de correo electrónico]
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 obtener más información sobre la cláusula ORDER BY, vea el tema Cláusula ORDER BY.
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 (función de agregado: función, como Suma, Cuenta, Promedio o Var, que se utiliza para calcular totales.) 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([Dirección de correo electrónico]), Empresa
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 artículo Funciones de agregado de SQL.Especificar campos que no se usan en una función de agregado: la 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 encuentra 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 se parecería a la siguiente:
GROUP BY Empresa
Para obtener más información sobre la cláusula GROUP BY, vea el tema Cláusula GROUP BY.Limitar los valores de agregado mediante los criterios de agrupación: la 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. Por el contrario, 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([Dirección de correo electrónico]), Empresa
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 colocar el criterio en una cláusula HAVING. Por ejemplo, si sólo 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 parecerse a la siguiente:HAVING COUNT([Dirección de correo electrónico])>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 corresponden a la cláusula WHERE y los criterios de los campos que se usan en las funciones de agregado corresponden a la cláusula HAVING.Para obtener más información sobre la cláusula HAVING, vea el tema Cláusula HAVING.
Combinar los resultados de la consulta: UNION
Cuando 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 la misma cantidad de campos de resultado, en el mismo orden y con el mismo tipo de datos o con tipos de datos compatibles. Cuando ejecuta 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 tendrá la misma cantidad 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.
Cuando usa el operador UNION, también puede especificar si los resultados de la consulta deben incluir las filas duplicadas, si existe alguna, mediante la palabra clave ALL.
La sintaxis básica de SQL para una consulta de unión que combina dos instrucciones SELECT es la siguiente:
SELECT campo_1
FROM tabla_1
UNION [ALL]
SELECT campo_a
FROM tabla_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. Si bien 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 determinado producto o servicio viene acompañado de una garantía de calidad). Puede usar una consulta de unión, como la que figura a continuación, para combinar los cuatro campos de las dos tablas:SELECT nombre, precio, garantía_disponible, oferta_exclusiva
FROM Productos
UNION ALL
SELECT nombre, precio, garantía_disponible, oferta_exclusiva
FROM Servicios
;
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.
No comments:
Post a Comment