Documente Academic
Documente Profesional
Documente Cultură
conceptos bsicos,
vocabulario y sintaxis
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 computacin que se asemeja al ingls, 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 adems de solucionar una
consulta que no brinda los resultados deseados.
ste es uno de varios artculos acerca de Access SQL. En este artculo se describe el uso bsico de
SQL para seleccionar datos y se usan ejemplos para ilustrar la sintaxis de SQL.
En este artculo
Qu es SQL?
Clusulas SQL bsicas: SELECT, FROM y WHERE
Ordenar los resultados: ORDER BY
Trabajar con datos resumidos: GROUP BY y HAVING
Combinar los resultados de la consulta: UNION
Qu es SQL?
SQL es un lenguaje de computacin 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 computacin, SQL no es difcil de leer
y entender, incluso para un usuario inexperto. Al igual que muchos lenguajes de computacin, SQL
es un estndar internacional que es reconocido por organismos de estndares, como ISO y ANSI.
SQL se usa para describir conjuntos de datos que pueden ayudarle a responder preguntas. Cuando
usa SQL, debe emplear la sintaxis correcta. La sintaxis es el conjunto de reglas mediante las cuales
se combinan los elementos de un lenguaje correctamente. La sintaxis de SQL se basa en la sintaxis
del ingls y usa muchos de los mismos elementos que la sintaxis de Visual Basic para Aplicaciones
(VBA).
Por ejemplo, una simple instruccin SQL que recupera una lista de los apellidos de contactos cuyo
nombre es Mara podra ser similar a esto:
SELECT Apellidos
FROM Contactos
WHERE Nombre = 'Mara';
NOTA SQL no se usa slo para manipular datos, sino tambin para crear y modificar el diseo 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 definicin de datos (DDL). Este tema no cubre el
DDL. Para obtener ms informacin, vea el artculo Crear o modificar tablas o ndices mediante una
consulta de definicin de datos.
Instrucciones SELECT
Para describir un conjunto de datos mediante SQL, escriba una instruccin SELECT. Una
instruccin SELECT contiene una descripcin completa del conjunto de datos que desea obtener de
una base de datos. Incluye lo siguiente:
Si se deben ordenar los datos y, en caso de ser as, cmo deben ordenarse.
Clusulas de SQL
Al igual que una frase, una instruccin SQL tiene clusulas. Cada clusula realiza una funcin para
la instruccin SQL. Algunas clusulas son obligatorias en una instruccin SELECT. En la siguiente
tabla se enumeran las clusulas SQL ms comunes.
Clusula
SQL
Funcin
Obligatoria
SELECT
FROM
WHERE
Especifica los criterios de campo que cada registro debe cumplir para poder ser incluido
en los resultados.
No
ORDER
BY
No
GROUP BY
En una instruccin SQL que contiene funciones de agregado, muestra los campos que
no se resumen en la clusula SELECT.
Slo si estn e
campos
HAVING
En una SQL instruccin que contiene funciones de agregado, especifica las condiciones
que se aplican a los campos que se resumen en la instruccin SELECT.
No
Trminos de SQL
Cada clusula SQL consta de trminos, comparables a diferentes partes de la oracin. En la siguiente
tabla se enumeran los tipos de trminos de SQL.
Trmino de
SQL
Parte de la oracin
comparable
Definicin
Ejemplo
identificador
sustantivo
Clientes.[Nmero de
telfono]
operador
verbo o adverbio
AS
Trmino de
SQL
Parte de la oracin
comparable
Definicin
Ejemplo
constante
sustantivo
42
expresin
adjetivo
> = Productos.[Precio
por unidad]
Volver al principio
Access pasa por alto los saltos de lnea en una instruccin SQL. Sin embargo, conviene usar
una lnea para cada clusula 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 clusula o solo en una lnea al final de la instruccin SQL.
Un ejemplo en Access
A continuacin se muestra el aspecto que podra tener en Access una instruccin SQL para una
consulta de seleccin simple:
1. Clusula SELECT
2. Clusula FROM
3. Clusula WHERE
Este ejemplo de instruccin SQL indica "Seleccionar los datos almacenados en los campos Direccin
de correo electrnico y Empresa de la tabla llamada Contactos, especficamente aquellos registros en
los cuales el valor del campo Ciudad sea Seattle".
Veamos el ejemplo, una clusula cada vez, para ver cmo funciona la sintaxis de SQL.
La clusula SELECT
SELECT [Direccin de correo electrnico], Empresa
sta es la clusula SELECT. Se compone de un operador (SELECT) seguido de dos identificadores
([Direccin de correo electrnico] y Empresa).
Si un identificador contiene espacios en blanco o caracteres especiales (como "Direccin de correo
electrnico"), se debe escribir entre corchetes.
Una clusula 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 clusula SELECT siempre aparece antes que la clusula FROM en una instruccin SELECT.
La clusula FROM
FROM Contactos
sta es la clusula FROM. Se compone de un operador (FROM) seguido de un identificador
(Contactos).
Una clusula FROM no enumera los campos que desea seleccionar.
La clusula WHERE
WHERE Ciudad="Seattle"
sta es la clusula WHERE. Se compone de un operador (WHERE) seguido de un identificador
(Ciudad="Seattle").
NOTA A diferencia de las clusulas SELECT y FROM, la clusula WHERE no es un elemento
mayor). Use la palabra clave DESC para ordenar los valores en orden descendente.
Para obtener ms informacin sobre la clusula ORDER BY, vea el tema Clusula ORDER BY.
Volver al principio
Por ejemplo, suponga que usa la funcin COUNT (que devuelve un nmero de filas) con el primer
campo de la clusula SELECT:
SELECT COUNT([Direccin de correo electrnico]), Empresa
Si desea que la consulta limite los resultados segn el valor de la funcin COUNT, no puede usar un
criterio para dicho campo en la clusula WHERE. Por el contrario, debe colocar el criterio en una
clusula HAVING. Por ejemplo, si slo desea que la consulta indique las filas en caso de que exista
ms de una direccin de correo electrnico asociada con la empresa, la clusula HAVING debera
parecerse a la siguiente:
HAVING COUNT([Direccin de correo electrnico])>1
NOTA Una consulta puede incluir una clusula WHERE y una clusula HAVING: los criterios para
los campos que no se usan en una funcin de agregado corresponden a la clusula WHERE y los
criterios de los campos que se usan en las funciones de agregado corresponden a la clusula
HAVING.
Para obtener ms informacin sobre la clusula HAVING, vea el tema Clusula HAVING.
Volver al principio
Cuando usa el operador UNION, tambin puede especificar si los resultados de la consulta deben
incluir las filas duplicadas, si existe alguna, mediante la palabra clave ALL.
La sintaxis bsica de SQL para una consulta de unin 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 garanta del servicio o de garanta del producto, y si el producto o servicio se
ofrece de forma exclusiva. Si bien en la tabla Productos se almacena informacin de garanta del
producto y en la tabla Servicios se almacena informacin de garanta del servicio, la informacin
bsica es la misma (si un determinado producto o servicio viene acompaado de una garanta de
calidad). Puede usar una consulta de unin, como la que figura a continuacin, para combinar los
cuatro campos de las dos tablas:
SELECT nombre, precio, garanta_disponible, oferta_exclusiva
FROM Productos
UNION ALL
SELECT nombre, precio, garanta_disponible, oferta_exclusiva
FROM Servicios
;