Está en la página 1de 21

INSTRUCCIONES SQL

Instrucción SELECT
Mostrar todo
Indica al motor de base de datos Microsoft Access que devuelva información de la base de datos como un
conjunto de registros.

SINTAXIS
SELECT [predicado] { * | tabla.* | [tabla.]campo1 [AS alias1] [, [tabla.]campo2 [AS alias2] [, ...]]}
FROM expresióndetabla [, ...] [IN basededatosexterna]
[WHERE... ]
[GROUP BY... ]
[HAVING... ]
[ORDER BY... ]
[WITH OWNERACCESS OPTION]

La instrucción SELECT consta de las siguientes partes:

PARTE DESCRIPCIÓN
predicado Uno de los siguientes predicados: ALL, DISTINCT, DISTINCTROW o TOP. Utilice el predicado para
restringir el número de registros devueltos. Si no se especifica ninguno, el predeterminado es ALL.
* Especifica que se han seleccionado todos los campos de la tabla o tablas especificadas.
tabla Nombre de la tabla que contiene los campos de los cuales se seleccionan los registros.
campo1, campo2 Nombres de los campos que contienen los datos que desea recuperar. Si incluye más de un campo, se
recuperan en el orden en que se han enumerado.
alias1, alias2 Nombres que se utilizan como encabezados de columna en tabla en vez de los nombres de columna
originales.
expresióndetabla Nombre de la tabla o tablas que contienen los datos que se desean recuperar.
basededatosextern Nombre de la base de datos que contiene las tablas de expresión de tabla si éstas no están en la base de
a datos actual.

COMENTARIOS
Para realizar esta operación, el motor de base de datos Microsoft Access busca la tabla o tablas
especificadas, extrae las columnas elegidas, selecciona las filas que cumplen con los criterios y ordena o
agrupa las filas resultantes en el orden especificado.

Las instrucciones SELECT no modifican los datos de la base de datos.

SELECT es normalmente la primera palabra en una . La mayoría de las instrucciones SQL son instrucciones
SELECT o SELECT...INTO.

La sintaxis mínima de una instrucción SELECT es:

SELECT campos FROM tabla

Puede utilizar un asterisco (*) para seleccionar todos los campos de una tabla. En el siguiente ejemplo se
seleccionan todos los campos de la tabla Employees (Empleados):
SELECT * FROM Employees;
Si se incluye un nombre de campo en más de una tabla en la cláusula FROM, ponga delante el nombre de la
tabla y el operador . (punto). En el ejemplo siguiente, el campo Department (Departamento) está en la tabla
Employees (Empleados) y la tabla Supervisors (Supervisores). La instrucción SQL selecciona departamentos
de la tabla Employees y nombres de supervisores de la tabla Supervisors:

SELECT Employees.Department, Supervisors.SupvName FROM Employees INNER JOIN Supervisors

WHERE Employees.Department = Supervisors.Department;


Cuando se crea un objeto Recordset, el motor de base de datos Microsoft Access utiliza el nombre de campo
de la tabla como nombre de objeto Field del objeto Recordset. Si desea un nombre de campo diferente o la
expresión utilizada no implica ningún nombre para generar el campo, utilice la AS. En el siguiente ejemplo se
utiliza el título Birth (Nacimiento) para denominar al objeto devuelto Field en el objeto Recordset resultante:

SELECT BirthDate AS Birth FROM Employees;


Siempre que utilice funciones de agregado o consultas que devuelvan nombres de objeto Field ambiguos o
duplicados, debe utilizar la cláusula AS para proporcionar un nombre diferente para el objeto Field. En el
ejemplo siguiente se utiliza el título HeadCount (Personal) para denominar al objeto Field en el objeto
Recordset resultante:

SELECT COUNT(EmployeeID) AS HeadCount FROM Employees;


Puede utilizar el resto de las cláusulas de la instrucción SELECT para aplicar restricciones adicionales y
organizar los datos devueltos. Para obtener más información, vea el tema de la Ayuda relativo a la cláusula
que esté utilizando

Cláusula FROM
Mostrar todo
Especifica las tablas o consultas que contienen los campos enumerados en la instrucción SELECT.

SINTAXIS
SELECT listadecampos
FROM expresióndetabla [IN basededatosexterna]

Una instrucción SELECT que contiene una cláusula FROM consta de las siguientes partes:

PARTE DESCRIPCIÓN
listadecampos Nombre del campo o campos que se van a recuperar junto con cualquier de nombre de campo, funciones
de agregado de SQL, predicados de selección (ALL, DISTINCT, DISTINCTROW o TOP) u otras opciones de
la instrucción SELECT.
expresióndetabla Expresión que identifica una varias tablas de las que se recuperan datos. La expresión puede ser un solo
nombre de tabla, un nombre de consulta guardado o un compuesto resultante de INNER JOIN, LEFT JOIN,
o RIGHT JOIN.
basededatosextern Ruta de acceso completa de una base de datos externa que contiene todas las tablas de expresióndetabla.
a
COMENTARIOS
Se requiere FROM después de cualquier instrucción SELECT.

El orden de los nombres de tabla de expresióndetabla no es importante.

Para un mejor funcionamiento y facilidad de uso, se recomienda la utilización de una en vez de una cláusula
IN para recuperar datos de una base de datos externa.

En el siguiente ejemplo se muestra cómo se pueden recuperar datos de la tabla Employees (Empleados):

SELECT LastName, FirstName

FROM Employees;

Cláusula WHERE
Mostrar todo
Especifica a qué registros de las tablas enumeradas en la cláusula FROM afecta una instrucción SELECT,
UPDATE o DELETE.

SINTAXIS
SELECT listadecampos
FROM expresióndetabla
WHERE criterios

Una instrucción SELECT que contiene una cláusula WHERE consta de las siguientes partes:

PARTE DESCRIPCIÓN
listadecampos Nombre del campo o campos que se van a recuperar junto con cualquier de nombre de campo, predicados de
selección (ALL, DISTINCT, DISTINCTROW o TOP) u otras opciones de la instrucción SELECT.
expresióndetabl Nombre de la tabla o tablas de las cuales se recuperan datos.
a
criterios que deben cumplir los registros para ser incluidos en los resultados de la consulta.

COMENTARIOS
El motor de base de datos Microsoft Access selecciona los registros que cumplen las condiciones
enumeradas en la cláusula WHERE. Si no especifica una cláusula WHERE, la consulta devuelve todas las
filas de la tabla. Si especifica más de una tabla en la consulta y no incluye una cláusula WHERE ni una
cláusula JOIN, la consulta genera un de las tablas.

WHERE es opcional, pero cuando se incluye, sigue a FROM. Por ejemplo, puede seleccionar todos los

empleados del departamento de ventas (WHERE Dept = 'Sales') o todos los clientes de edades

comprendidas entre los 18 y los 30 años (WHERE Age Between 18 And 30).
Si no utiliza una cláusula JOIN para realizar operaciones de combinación de SQL en varias tablas, el objeto
Recordset resultante no se podrá actualizar.

WHERE es similar a HAVING. WHERE determina los registros que se seleccionan. De igual modo, una vez
que los registros se agrupan con GROUP BY, HAVING determina qué registros se muestran.

Utilice la cláusula WHERE para eliminar registros que no desea que se agrupen mediante la cláusula GROUP
BY.

Utilice varias expresiones para determinar los registros que devuelve la instrucción SQL. Por ejemplo, la
siguiente instrucción SQL selecciona a todos los empleados cuyos salarios superan los 21.000 $:

SELECT LastName, Salary FROM Employees WHERE Salary > 21000;


Una cláusula WHERE puede contener hasta un máximo de 40 expresiones unidas por operadores lógicos,
como And y Or.

Cuando introduzca un nombre de campo que contiene un espacio o puntuación, escriba el nombre entre
corchetes ([ ]). Por ejemplo, una tabla de información de clientes puede incluir información acerca de clientes
específicos:

SELECT [Customer’s Favorite Restarant]


Cuando especifique el argumento de los criterios, los deben estar en el formato de EE.UU., aunque no esté
utilizando el motor de base de datos Microsoft Access con la versión de EE.UU. Por ejemplo, el 10 de mayo
de 1996, se escribe 10/5/96 en el Reino Unido y 5/10/96 en los Estados Unidos. Asegúrese de escribir los
literales de fecha entre el símbolo de almohadilla (#) como se muestra en los siguientes ejemplos.

Para buscar registros fechados el 10 de mayo de 1996 en una base de datos del Reino Unido, debe utilizar la
siguiente instrucción SQL:

SELECT * FROM Orders WHERE ShippedDate = #5/10/96#;


También puede utilizar la función DateValue que tiene en cuenta la configuración internacional establecida
por Microsoft Windows®. Por ejemplo, utilice este código para los Estados Unidos:

SELECT * FROM Orders WHERE ShippedDate = DateValue('5/10/96');


Utilice este código para el Reino Unido:

SELECT * FROM Orders WHERE ShippedDate = DateValue('10/5/96');


 NOTA    Si la columna a la que se hace referencia en la cadena de criterios es de tipo , la expresión de
criterios utiliza una sintaxis un poco diferente:

WHERE ReplicaID = {GUID {12345678-90AB-CDEF-1234-567890ABCDEF}}


Asegúrese de incluir los corchetes y guiones anidados de la forma indicada

Cláusula GROUP BY
Mostrar todo
Combina registros con valores idénticos en la lista de campos especificados en un único registro. Si incluye
una función de agregado de SQL, como Suma o Cuenta en la instrucción SELECT, se crea un valor de
resumen.

SINTAXIS
SELECT listadecampos
FROM tabla
WHERE criterios
[GROUP BY listadecamposdegrupo]

Una instrucción SELECT que contiene una cláusula GROUP BY consta de las siguientes partes:

PARTE DESCRIPCIÓN
listadecampos Nombre del campo o campos que se van a recuperar junto con cualquier de nombre de campo, funciones
de agregado de SQL, predicados de selección (ALL, DISTINCT, DISTINCTROW o TOP) u otras opciones
de la instrucción SELECT.
tabla Nombre de la tabla de la cual se recuperan los registros.
criterios Criterios de selección. Si la instrucción incluye una cláusula WHERE, el motor de base de datos Microsoft
Access agrupa los valores después de aplicar las condiciones WHERE a los registros.
listadecamposdegrup Nombres de hasta un máximo de 10 campos utilizados para agrupar registros. El orden de los nombres de
o campo de listadecamposdegrupo determina los niveles de agrupación desde el nivel más alto al nivel más
bajo.

COMENTARIOS
GROUP BY es opcional.

Los valores de resumen se omiten si no hay una función de agregado de SQL en la instrucción SELECT.

Los valores de los campos GROUP BY se agrupan y no se omiten. No obstante, los valores Nulos no se
evalúan en ninguna función de agregado de SQL.

Utilice la cláusula WHERE para excluir filas que no desea que estén agrupadas; utilice la cláusula HAVING
para filtrar registros después de que hayan sido agrupados.

A menos que contenga datos o un , un campo de la lista de campos GROUP BY puede hacer referencia a
cualquier campo de cualquier tabla enumerada en la cláusula FROM, incluso si el campo no se incluye en la
instrucción SELECT, siempre y cuando la instrucción SELECT incluya al menos una función de agregado de
SQL. El motor de base de datos Microsoft Access no puede formar grupos en los campos Memo u Objeto
OLE.

Todos los campos de la lista de campos SELECT deben estar incluidos en la cláusula GROUP BY o estar
incluidos como argumentos de una función de agregado de SQL

Cláusula GROUP BY
Mostrar todo
Combina registros con valores idénticos en la lista de campos especificados en un único registro. Si incluye
una función de agregado de SQL, como Suma o Cuenta en la instrucción SELECT, se crea un valor de
resumen.

SINTAXIS
SELECT listadecampos
FROM tabla
WHERE criterios
[GROUP BY listadecamposdegrupo]

Una instrucción SELECT que contiene una cláusula GROUP BY consta de las siguientes partes:

PARTE DESCRIPCIÓN
listadecampos Nombre del campo o campos que se van a recuperar junto con cualquier de nombre de campo, funciones
de agregado de SQL, predicados de selección (ALL, DISTINCT, DISTINCTROW o TOP) u otras opciones
de la instrucción SELECT.
tabla Nombre de la tabla de la cual se recuperan los registros.
criterios Criterios de selección. Si la instrucción incluye una cláusula WHERE, el motor de base de datos Microsoft
Access agrupa los valores después de aplicar las condiciones WHERE a los registros.
listadecamposdegrup Nombres de hasta un máximo de 10 campos utilizados para agrupar registros. El orden de los nombres de
o campo de listadecamposdegrupo determina los niveles de agrupación desde el nivel más alto al nivel más
bajo.

COMENTARIOS
GROUP BY es opcional.

Los valores de resumen se omiten si no hay una función de agregado de SQL en la instrucción SELECT.

Los valores de los campos GROUP BY se agrupan y no se omiten. No obstante, los valores Nulos no se
evalúan en ninguna función de agregado de SQL.

Utilice la cláusula WHERE para excluir filas que no desea que estén agrupadas; utilice la cláusula HAVING
para filtrar registros después de que hayan sido agrupados.

A menos que contenga datos o un , un campo de la lista de campos GROUP BY puede hacer referencia a
cualquier campo de cualquier tabla enumerada en la cláusula FROM, incluso si el campo no se incluye en la
instrucción SELECT, siempre y cuando la instrucción SELECT incluya al menos una función de agregado de
SQL. El motor de base de datos Microsoft Access no puede formar grupos en los campos Memo u Objeto
OLE.

Todos los campos de la lista de campos SELECT deben estar incluidos en la cláusula GROUP BY o estar
incluidos como argumentos de una función de agregado de SQL.

Cláusula ORDER BY
Mostrar todo
Ordena los registros resultantes de una consulta en un campo o campos especificados en orden ascendente o
descendente.

SINTAXIS
SELECT listadecampos
FROM tabla
WHERE criteriosdeselección
[ORDER BY campo1 [ASC | DESC ][, campo2 [ASC | DESC ]][, ...]]]

Una instrucción SELECT que contiene una cláusula ORDER BY consta de las siguientes partes:

PARTE DESCRIPCIÓN
listadecampos Nombre del campo o campos que se van a recuperar junto con cualquier de nombre de campo, funciones de
agregado de SQL, predicados de selección (ALL, DISTINCT, DISTINCTROW o TOP) u otras opciones de la
instrucción SELECT.
tabla Nombre de la tabla de la cual se recuperan los registros.
criteriosdeselecció Criterios de selección. Si la instrucción incluye una cláusula WHERE, el motor de base de datos Microsoft
n Access ordena los valores después de aplicar las condiciones WHERE a los registros.
campo1, campo2 Nombres de los campos en los que se ordenan registros.

COMENTARIOS
ORDER BY es opcional. Sin embargo, si desea que los datos se muestren ordenados, debe utilizarla.

El predeterminado es ascendente (A a la Z, 0 a 9). Los dos ejemplos siguientes ordenan los nombres de los
empleados por los apellidos:

SELECT LastName, FirstName

FROM Employees

ORDER BY LastName;

SELECT LastName, FirstName

FROM Employees

ORDER BY LastName ASC;

Para ordenar en forma descendente (Z a la A, 9 a 0), agregue la palabra reservada DESC al final de cada
campo que desee ordenar en forma descendente. En el ejemplo siguiente se seleccionan los salarios y se
colocan en orden descendente:

SELECT LastName, Salary

FROM Employees

ORDER BY Salary DESC, LastName;


Si especifica un campo que contiene datos o un en la cláusula ORDER BY, se produce un error. El motor de
base de datos Microsoft Access no ordena en estos tipos de campos.

ORDER BY es normalmente el último elemento en una .

Puede incluir campos adicionales en la cláusula ORDER BY. Los registros se ordenan empezando por el
primer campo enumerado después de ORDER BY. Los registros que tienen valores iguales en ese campo se
ordenan por el valor del segundo campo enumerado, y así sucesivamente.

Cláusula HAVING
Mostrar todo
Especifica qué registros agrupados se muestran en una instrucción SELECT con una cláusula GROUP BY.
Después de que GROUP BY combine los registros, HAVING muestra cualquier registro agrupado por la
cláusula GROUP BY que satisfaga las condiciones de la cláusula HAVING.

SINTAXIS
SELECT listadecampos
FROM tabla
WHERE criteriosdeselección
GROUP BY listadecamposdegrupo
[HAVING criteriosdegrupo]

Una instrucción SELECT que contiene una cláusula HAVING consta de las siguientes partes:

PARTE DESCRIPCIÓN
listadecampos Nombre del campo o campos que se van a recuperar junto con cualquier de nombre de campo, funciones
de agregado de SQL, predicados de selección (ALL, DISTINCT, DISTINCTROW o TOP) u otras opciones
de la instrucción SELECT.
tabla Nombre de la tabla de la cual se recuperan los registros.
criteriosdeselección Criterios de selección. Si la instrucción incluye una cláusula WHERE, el motor de base de datos Microsoft
Access agrupa los valores después de aplicar las condiciones WHERE a los registros.
listadecamposdegrup Nombres de hasta un máximo de 10 campos utilizados para agrupar registros. El orden de los nombres de
o campo de listadecamposdegrupo determina los niveles de agrupación desde el nivel más alto al nivel más
bajo.
criteriosdegrupo Expresión que determina los registros agrupados que se muestran.

COMENTARIOS
HAVING es opcional.

HAVING es similar a WHERE, que determina los registros que se seleccionan. Después de que los registros
se agrupen con GROUP BY, HAVING determina qué registros se muestran:

SELECT CategoryID,

Sum(UnitsInStock)
FROM Products

GROUP BY CategoryID

HAVING Sum(UnitsInStock) > 100 And Like "BOS*";

Una cláusula HAVING puede contener hasta un máximo de 40 expresiones unidas por operadores lógicos,
como And y Or.

Instrucción SELECT...INTO
Mostrar todo
Crea una .

SINTAXIS
SELECT campo1[, campo2[, ...]] INTO tablanueva [IN basededatosexterna]
FROM origen

La instrucción SELECT...INTO consta de las siguientes partes:

PARTE DESCRIPCIÓN
campo1, campo2 Nombre de los campos que se van a copiar en la tabla nueva.
tablanueva Nombre de la tabla que se va a crear. Si tablanueva tiene el mismo nombre que una tabla existente, se
produce un error interceptable.
basededatosextern Ruta de acceso a una . Si desea una descripción de la ruta de acceso, vea la cláusula IN.
a
origen Nombre de la tabla existente de la cual se seleccionan los registros. Pueden ser una o varias tablas o una
consulta.

COMENTARIOS
Puede utilizar consultas de creación de tabla para archivar registros, hacer copias de seguridad de las tablas,
hacer copias para exportar a otra base de datos o copias para utilizar como base de informes que muestran
datos de un período de tiempo determinado. Por ejemplo, podría producir un informe sobre Ventas mensuales
por región ejecutando la misma consulta de creación de tabla cada mes.

 NOTAS 

 Es posible que desee definir una para la tabla nueva. Cuando crea la tabla, los campos de la tabla

nueva heredan el y el tamaño de campo de cada uno de los campos de las tablas subyacentes de la

consulta, pero no se transfiere ninguna otra propiedad de tabla o de campo.

 Para agregar datos a una tabla existente, utilice la instrucción INSERT INTO en lugar de crear una .
 Para averiguar qué registros se van a seleccionar antes de ejecutar la consulta de creación de tabla,

examine antes los resultados de una instrucción SELECT que utilice los mismos criterios de selección.

 Instrucción INSERT INTO


 Mostrar todo
 Agrega uno o varios registros a una tabla. Se conoce como .

 SINTAXIS
 Consulta de datos anexados de varios registros:
 INSERT INTO destino [(campo1[, campo2[, ...]])] [IN basededatosexterna]
SELECT [origen.]campo1[, campo2[, ...]
FROM expresióndetabla
 Consulta de datos anexados de un solo registro:
 INSERT INTO destino [(campo1[, campo2[, ...]])]
VALUES (valor1[, valor2[, ...])
 La instrucción INSERT INTO consta de las siguientes partes:

PARTE DESCRIPCIÓN
destino Nombre de la tabla o consulta a la que se van a anexar registros.
campo1, campo2 Nombres de los campos a los que se van a anexar datos, si van a continuación de un argumento destino, o
nombres de los campos de los que se obtienen datos, si van a continuación de un argumento origen.
basededatosextern Ruta de acceso a una . Si desea una descripción de la ruta de acceso, vea la cláusula IN.
a
origen Nombre de la tabla o consulta de la que se van a copiar datos.
expresióndetabla Nombre de la tabla o tablas de las cuales se insertan datos. Este argumento puede ser un solo nombre de
tabla o un compuesto resultante de una operación INNER JOIN, LEFT JOIN o RIGHT JOIN o una consulta
guardada.
valor1, valor2 Valores a insertar dentro de campos específicos de un registro nuevo. Cada valor se inserta en el campo
que corresponde a la posición del valor en la lista: el valor1 se inserta en el campo1 del nuevo registro, el
valor2 en el campo2, y así sucesivamente. Debe separar los valores con una coma y escribir los campos de
texto entre comillas (' ').

 COMENTARIOS
 Puede utilizar la instrucción INSERT INTO para agregar un solo registro a una tabla mediante la
sintaxis de consulta de datos anexados de un solo registro como se ha mostrado anteriormente. En
este caso, el código especifica el nombre y el valor de cada campo del registro. Debe especificar
cada uno de los campos del registro a los que se va a asignar un valor y un valor para ese campo.
Si no especifica cada campo, el valor predeterminado o se inserta para las columnas que faltan.
Los registros se agregan al final de la tabla.
 También puede utilizar INSERT INTO para anexar un conjunto de registros de otra tabla o consulta
mediante la cláusula SELECT ... FROM como se ha mostrado previamente en la sintaxis de
consulta de datos anexados de varios registros. En este caso, la cláusula SELECT especifica los
campos que se van a anexar a la tabla destino especificada.
 La tabla origen o destino puede especificar una tabla o una consulta. Si se especifica una consulta,
el motor de base de datos Microsoft Access anexa registros a todas y cada una de las tablas
especificadas en la consulta.
 INSERT INTO es opcional, pero cuando se utiliza, precede a la instrucción SELECT.
 Si la tabla de destino contiene una , asegúrese de que anexa valores exclusivos no Null al campo o
campos de la clave principal; si no lo hace, el motor de base de datos Microsoft Access no anexará
los registros.
 Si anexa registros a una tabla con un campo y desea volver a numerar los registros anexados, no
incluya el campo Autonumérico en su consulta. Pero inclúyalo si desea conservar los valores
originales del campo.
 Utilice la cláusula IN para anexar registros a una tabla de otra base de datos.
 Para crear una tabla nueva, utilice la instrucción SELECT... INTO en vez de crear una .
 Para averiguar qué registros se van a anexar antes de ejecutar una consulta de datos anexados,
ejecute y vea primero los resultados de una que utilice los mismos criterios de selección.
 Las consultas de datos anexados copian registros de una o varias tablas a otra. Estas consultas no
afectan a las tablas que contienen los registros que se anexan.
 En vez de anexar registros existentes de otra tabla, puede especificar el valor de cada campo de
un solo registro nuevo mediante la cláusula VALUES. Si omite la lista de campos, la cláusula
VALUES debe incluir un valor para cada campo de la tabla; de lo contrario, se producirá un error en
la operación INSERT. Utilice una instrucción adicional INSERT INTO con una cláusula VALUES
para cada registro adicional que desee crear

Cláusula IN
Mostrar todo
Identifica las tablas de cualquier a la cual se puede conectar el motor de base de datos Microsoft Access,
como las bases de datos dBASE o Paradox, o una base de datos Microsoft Access externa.

SINTAXIS
Para identificar una tabla de destino:

[SELECT | INSERT] INTO destino IN


{ruta de acceso | ["ruta de acceso" "tipo"] | ["" [tipo; DATABASE = ruta de acceso]]}

Para identificar una tabla de origen:

FROM expresióndetabla IN
{ruta de acceso | ["ruta de acceso" "tipo"] | ["" [tipo; DATABASE = ruta de acceso]]}

Una instrucción SELECT que contiene una cláusula IN consta de las siguientes partes:

PARTE DESCRIPCIÓN
destino Nombre de la tabla externa en la cual se insertan datos.
expresióndetabl Nombre de la tabla o tablas de las cuales se recuperan datos. Este argumento puede ser un solo nombre de
a tabla, un nombre de consulta guardado o un compuesto que es el resultado de INNER JOIN, LEFT JOIN o
RIGHT JOIN.
ruta de acceso Ruta de acceso completa del directorio o archivo que contiene tabla.
tipo Nombre del tipo de base de datos utilizado para crear tabla si no se trata de una base de datos Microsoft
Access (por ejemplo, dBASE III, dBASE IV, Paradox 3.x o Paradox 4.x).

COMENTARIOS
Puede utilizar IN para conectarse a una sola base de datos externa la vez.

En algunos casos, el argumento de la ruta de acceso hace referencia al directorio que contiene los archivos
de la base de datos. Por ejemplo, cuando trabaje con tablas de bases de datos dBASE, Microsoft FoxPro o
Paradox, el argumento de la ruta de acceso especifica el directorio que contiene archivos .dbf o .db. El
nombre de archivo de la tabla depende del argumento destino o expresióndetabla.

Para especificar una base de datos que no sea Microsoft Access, se anexa un punto y coma (;) al nombre y se
escribe entre comillas simples (' ') o dobles (" "). Por ejemplo, se acepta 'dBASE IV;' o "dBASE IV;".

También puede utilizar la palabra reservada DATABASE para especificar la base de datos externa. Por
ejemplo, las siguientes líneas especifican la misma tabla:

... FROM Table IN "" [dBASE IV; DATABASE=C:DBASEDATASALES;];

... FROM Table IN "C:DBASEDATASALES" "dBASE IV;"


 NOTAS 
Para un mejor funcionamiento y facilidad de uso, utilice una en vez de IN.

También puede utilizar la palabra reservada IN como operador de comparación de una .

Operación INNER JOIN


Mostrar todo
Combina registros de dos tablas siempre que haya valores coincidentes en un campo común.

SINTAXIS
FROM tabla1 INNER JOIN tabla2 ON tabla1.campo1 operadordecomparación tabla2.campo2

La operación INNER JOIN consta de las siguientes partes:

PARTE DESCRIPCIÓN
tabla1, tabla2 Nombres de las tablas cuyos registros se combinan.
campo1, campo2 Nombres de los campos que se combinan. Si no son numéricos, los campos deben ser del mismo y
contener la misma clase de datos, pero no tienen que tener el mismo nombre.
operadordecomparació Cualquier operador de comparación relacional: "=", "<", ">", "<=", ">=" o "<>".
n

COMENTARIOS
Puede utilizar una operación INNER JOIN en cualquier cláusula FROM. Éste es el tipo más común de
combinación. La combinación interna combina registros de dos tablas siempre que haya valores coincidentes
en un campo común a ambas tablas.
Puede utilizar INNER JOIN con las tablas Departamentos y Empleados para seleccionar todos los empleados
de cada departamento. Por el contrario, para seleccionar todos los departamentos (incluso si algunos no
tienen asignado ningún empleado) o todos los empleados (incluso si algunos no están asignados a un
departamento), puede utilizar una operación LEFT JOIN o RIGHT JOIN a fin de crear una .

Si trata de combinar campos que contienen datos o un , se producirá un error.

Puede combinar cualquier par de campos numéricos de tipos similares. Por ejemplo, puede combinar los
campos y porque son tipos similares. Sin embargo, no puede combinar los tipos de campos y .

En el siguiente ejemplo se muestra cómo se pueden combinar las tablas Categories (Categorías) y Products
(Productos) en el campo CategoryID (IdCategoría):

SELECT CategoryName, ProductName

FROM Categories INNER JOIN Products

ON Categories.CategoryID = Products.CategoryID;

En el ejemplo anterior, CategoryID (IdCategoría) es el campo combinado, pero no está incluido en el resultado

de la consulta porque no está incluido en la instrucción SELECT. Para incluir el campo combinado, incluya el

nombre del campo en la instrucción SELECT, en este caso, Categories.CategoryID.


También puede unir varias cláusulas ON en una instrucción JOIN mediante la siguiente sintaxis:

SELECT campos
FROM tabla1 INNER JOIN tabla2
ON tabla1.campo1 operadordecomparación tabla2.campo1 AND
ON tabla1.campo2 operadordecomparación tabla2.campo2) OR
ON tabla1.campo3 operadordecomparación tabla2.campo3)];

También puede anidar instrucciones JOIN mediante la siguiente sintaxis:

SELECT campos
FROM tabla1 INNER JOIN
(tabla2 INNER JOIN [( ]tabla3
[INNER JOIN [( ]tablax [INNER JOIN ...)]
ON tabla3.campo3 operadordecomparación tablax.campox)]
ON tabla2.campo2 operadordecomparación tabla3.campo3)
ON tabla1.campo1 operadordecomparación tabla2.campo2;

Las operaciones LEFT JOIN o RIGHT JOIN pueden estar anidadas dentro de una operación INNER JOIN,
pero una operación INNER JOIN no puede estar anidada dentro de las operaciones LEFT JOIN o RIGHT
JOIN.

Operaciones LEFT JOIN, RIGHT JOIN


Mostrar todo
Combina registros de la tabla origen cuando se utiliza en cualquier cláusula FROM.

SINTAXIS
FROM tabla1 [ LEFT | RIGHT ] JOIN tabla2
ON tabla1.campo1 operadordecomparación tabla2.campo2

Las operaciones LEFT JOIN y RIGHT JOIN constan de las siguientes partes:

PARTE DESCRIPCIÓN
tabla1, tabla2 Nombres de las tablas cuyos registros se combinan.
campo1, campo2 Nombres de los campos que se combinan. Estos campos deben ser del mismo y contener la misma
clase de datos, pero no tienen que tener el mismo nombre.
operadordecomparació Cualquier operador de comparación relacional: "=", "<", ">", "<=", ">=" o "<>".
n

COMENTARIOS
Utilice una operación LEFT JOIN para crear una . Las combinaciones externas por la izquierda incluyen todos
los registros de la primera de las dos tablas (izquierda), incluso si no hay valores coincidentes para los
registros en la segunda tabla (derecha).

Utilice una operación RIGHT JOIN para crear una . Las combinaciones externas por la derecha incluyen todos
los registros de la segunda de las dos tablas (derecha), incluso si no hay valores coincidentes para los
registros en la primera tabla (izquierda).

Por ejemplo, podría utilizar LEFT JOIN con las tablas Departamentos (izquierda) y Empleados (derecha) para
seleccionar todos los departamentos, incluyendo aquellos que no tienen asignados ningún empleado. Para
seleccionar todos los empleados, incluyendo los que no están asignados a ningún departamento, podría
utilizar RIGHT JOIN.

En el siguiente ejemplo se muestra cómo se pueden combinar las tablas Categories (Categorías) y Products
(Productos) en el campo CategoryID (IdCategoría). La consulta genera una lista de todas las categorías,
incluyendo las que no contienen ningún producto:

SELECT CategoryName, ProductName FROM Categories LEFT JOIN Products ON Categories.CategoryID

= Products.CategoryID;

En este ejemplo, CategoryID (IdCategoría) es el campo combinado, pero no está incluido en los resultados de

la consulta porque no está incluido en la instrucción SELECT. Para incluir el campo combinado, introduzca el

nombre del campo en la instrucción SELECT, en este caso, Categories.CategoryID.


 NOTAS 
Para crear un consulta que incluya sólo los registros en los que los datos de los campos combinados son los
mismos, utilice una operación INNER JOIN.
 Las operaciones LEFT JOIN o RIGHT JOIN pueden estar anidadas dentro de una operación INNER

JOIN, pero una operación INNER JOIN no puede estar anidada dentro de las operaciones LEFT JOIN o

RIGHT JOIN. Vea la descripción del procedimiento para anidar unas combinaciones dentro de otras en el

tema INNER JOIN.

 Puede unir varias cláusulas ON. Vea la descripción del procedimiento para vincular cláusulas en el

tema INNER JOIN.

Si trata de combinar campos que contienen datos o un , se producirá un error.

Operación UNION
Mostrar todo
Crea una , que combina los resultados de dos o más tablas o consultas independientes.

SINTAXIS
[TABLE] consulta1 UNION [ALL] [TABLE] consulta2 [UNION [ALL] [TABLE] consultan [ ... ]]

La operación UNION consta de las siguientes partes:

PARTE DESCRIPCIÓN
consulta1- Una instrucción SELECT, el nombre de una consulta almacenada o el nombre de una tabla almacenada precedida
n por la palabra clave TABLE.

COMENTARIOS
Puede combinar los resultados de dos o más consultas, tablas e instrucciones SELECT en cualquier
combinación, con una única operación UNION. En el siguiente ejemplo se combina una tabla existente
denominada New Accounts (Nuevas cuentas) con una instrucción SELECT:

TABLE [New Accounts] UNION ALL

SELECT *

FROM Customers

WHERE OrderAmount > 1000;

Cuando se utiliza una operación UNION, de forma predeterminada no se devuelven registros duplicados; no
obstante, puede incluir el predicado ALL para asegurarse de que se devuelven todos los registros, lo cual
hace que la consulta se ejecute más rápido.

Todas las consultas de una operación UNION deben solicitar el mismo número de campos; sin embargo, los
campos no tienen que ser del mismo tamaño ni del mismo .
Utilice solamente en la primera instrucción SELECT ya que se pasan por alto en las restantes. En la cláusula
ORDER BY, haga referencia a los campos según se denominan en la primera instrucción SELECT.

 NOTAS 

 Puede utilizar una cláusula GROUP BY o HAVING en cada argumento de la consulta para agrupar

los datos devueltos.

 Puede utilizar una cláusula ORDER BY al final del último argumento de la consulta para mostrar los

datos devueltos en un orden especificado.

Operador Como (Like)


Mostrar todo
Compara una con un modelo de una expresión .

SINTAXIS
expresión Like “modelo”

La sintaxis del operador Como (Like) consta de las siguientes partes:

PARTE DESCRIPCIÓN
expresió Expresión SQL utilizada en una cláusula WHERE.
n
modelo Cadena o cadena de caracteres con la que se compara
expresión.

COMENTARIOS

Puede utilizar el operador Como para buscar los valores de un campo que coinciden con el modelo que ha

especificado. En modelo, puede especificar el valor completo (por ejemplo, Like “Smith”), o puede utilizar

para buscar un intervalo de valores (por ejemplo, Like “Sm*”).

En una expresión, puede utilizar el operador Como para comparar el valor de un campo con una expresión de

cadena. Por ejemplo, si especifica Like “C*” en una consulta SQL, la consulta devuelve todos los valores del

campo que empiezan con la letra C. En una , puede pedir al usuario un modelo de búsqueda.
En el siguiente ejemplo se devuelven los datos que comienzan con la letra P seguida de cualquier letra entre
la A y la F y tres dígitos:

Like “P[A-F]###”
La siguiente tabla muestra cómo puede utilizar Como para probar expresiones para diferentes modelos.
COINCIDE NO COINCIDE
TIPO DE COINCIDENCIA MODELO (DEVUELVE (DEVUELVE FALSE)
TRUE)
Caracteres múltiples a*a aa, aBa, aBBBa aBC
*ab* abc, AABB, Xab aZb, bac
Carácter especial a[*]a a*a aaa
Caracteres múltiples ab* abcdefg, abc cab, aab
Carácter individual a?a aaa, a3a, aBa aBBBa
Un único dígito a#a a0a, a1a, a2a aaa, a10a
Intervalo de caracteres [a-z] f, p, j 2, &
Fuera de un intervalo [!a-z] 9, &, % b, a
No es un dígito [!0-9] A, a, &, ~ 0, 1, 9
Combinado a[!b-m]# An9, az0, a99 abc, aj0

Sum (función)
Mostrar todo
Devuelve la suma de un conjunto de valores de un campo específico de una consulta.

SINTAXIS
Sum(expr)

El marcador de posición expr representa una que identifica el campo que contiene los datos numéricos que
desea sumar o una expresión que realiza un cálculo utilizando los datos de ese campo. Los operandos de
expr pueden incluir el nombre de un campo de tabla, una constante o una función (que puede ser intrínseca o
definida por el usuario, pero no puede ser ninguna de las otras funciones de agregado de SQL).

COMENTARIOS
La función Suma suma los valores de un campo. Por ejemplo, puede utilizar la función Suma para determinar
el costo total de los gastos de envío.

La función Suma pasa por alto los registros que contienen campos . En el siguiente ejemplo se muestra cómo
se puede calcular la suma de los productos de los campos UnitPrice (Precio de la unidad) y Quantity
(Cantidad):

SELECT Sum(UnitPrice * Quantity) AS [Total Revenue]

FROM [Order Details];

Puede utilizar la función Sum en una expresión de consulta. También puede utilizar esta expresión en la
propiedad SQL de un objeto o cuando cree un objeto basado en una consulta SQL

Count (función)
Mostrar todo
Calcula el número de registros que devuelve una consulta.

SINTAXIS
Cuenta(expr)

El marcador de posición expr representa una que identifica el campo que contiene los datos que desea contar
o una expresión que realiza un cálculo utilizando los datos de ese campo. Los operandos de expr pueden
incluir el nombre de un campo de tabla o una función (que puede ser intrínseca o definida por el usuario, pero
no puede ser ninguna de las otras funciones de agregado de SQL). Puede contar cualquier clase de datos,
incluido texto.

COMENTARIOS
Puede utilizar Cuenta para contar el número de registros de una consulta base. Por ejemplo, puede utilizar
Cuenta para contar el número de pedidos enviados a un determinado país.

Aunque expr puede realizar el cálculo de un campo, Cuenta cuenta simplemente el número de registros, sin
importar los valores que estén almacenados en los mismos.

La función Cuenta no cuenta los registros que tienen campos a no ser que expr sea el asterisco (*). Si utiliza
un asterisco, Cuenta calcula el número total de registros, incluyendo aquéllos que contienen campos Nulos.
Cuenta(*) es considerablemente más rápido que Cuenta([Nombre de columna]). No ponga el asterisco entre
comillas (' '). En el siguiente ejemplo se calcula el número de registros de la tabla Orders (Pedidos):

SELECT Count(*) AS TotalOrders FROM Orders;


Si expr identifica varios campos, la función Count (Cuenta) cuenta un registro sólo si al menos uno de los
campos no es Nulo. Si todos los campos especificados son Nulos, el registro no se cuenta. Separe los
nombres del campo con el signo &. En el ejemplo siguiente se muestra cómo se puede limitar el recuento a
los registros en los cuales ShippedDate (Fecha de envío) o Freight (Gastos de envío) no es Null:

SELECT Count('ShippedDate & Freight') AS [Not Null] FROM Orders;


Puede utilizar Count (Cuenta) en una expresión de consulta. También puede utilizar esta expresión en la
propiedad de un objeto o cuando cree un objeto basado en una consulta SQL.

Avg (función)
Mostrar todo
Calcula la media aritmética de un conjunto de valores de un campo específico de una consulta.

SINTAXIS
Prom(expr)
El marcador de posición expr representa una que identifica el campo que contiene los datos numéricos de los
que desea obtener el promedio o una expresión que realiza un cálculo utilizando los datos de ese campo. Los
operandos de expr pueden incluir el nombre de un campo de tabla, una constante o una función (que puede
ser intrínseca o definida por el usuario, pero no puede ser ninguna de las otras funciones de agregado de
SQL).

COMENTARIOS
El promedio calculado por Prom es la media aritmética (la suma de los valores dividida entre el número de
valores). Puede utilizar Prom, por ejemplo, para calcular el promedio de los gastos de envío.

La función Prom (Avg) no incluye ningún campo en el cálculo.

Se puede utilizar Prom (Avg) en una expresión de consulta y en la propiedad del objeto o al crear un objeto
basado en una consulta SQL.

Funciones First y Last


Mostrar todo
Devuelven un valor de campo del primer o del último registro en el conjunto de resultados devueltos por una
consulta.

SINTAXIS
First(expr)

Last(expr)

El marcador de posición expr representa una que identifica el campo que contiene los datos que desea
utilizar o una expresión que realiza un cálculo utilizando los datos de ese campo. Los operandos de expr
pueden incluir el nombre de un campo de tabla, una constante o una función (que puede ser intrínseca o
definida por el usuario, pero no puede ser ninguna de las otras funciones de agregado de SQL).

COMENTARIOS
Estas funciones devuelven el valor de un campo especificado en el primer o el último registro,
respectivamente, del conjunto de resultados devueltos por una consulta. Si la consulta no incluye una cláusula
ORDER BY, los valores devueltos por estas funciones serán arbitrarios porque los registros no se devuelven
normalmente en ningún orden concreto.

Funciones Mín y Máx (Min, Max)


Mostrar todo
Devuelven el mínimo o el máximo de un conjunto de valores de un campo especificado en una consulta.
SINTAXIS
Mín(expr)

Máx(expr)

El marcador de posición expr representa una que identifica el campo que contiene los datos que desea
evaluar o una expresión que realiza un cálculo utilizando los datos de ese campo. Los operandos de expr
pueden incluir el nombre de un campo de tabla, una constante o una función (que puede ser intrínseca o
definida por el usuario, pero no puede ser ninguna de las otras funciones de agregado de SQL).

COMENTARIOS
Puede utilizar Mín y Máx para determinar los valores superiores e inferiores de un campo basándose en la
agregación especificada o agrupación. Por ejemplo, podría utilizar estas funciones para devolver los gatos de
envío más altos y más bajos. Si no hay ninguna agregación especificada, se utiliza la tabla completa.

Puede utilizar Mín y Máx en una expresión de consulta y en la propiedad del objeto o cuando cree un objeto
basado en una consulta SQL.

Funciones DesvEst (StDev) y DesvEstP (StDevP)


Mostrar todo
Devuelven cálculos de la de una población y una muestra de población para un conjunto de valores de un
campo especificado en una consulta.

SINTAXIS
StDev(expr)

StDevP(expr)

El marcador de posición expr representa una que identifica el campo que contiene los datos numéricos que
desea evaluar o una expresión que realiza un cálculo utilizando los datos de ese campo. Los operandos de
expr pueden incluir el nombre de un campo de tabla, una constante o una función (que puede ser intrínseca o
definida por el usuario, pero no puede ser ninguna de las otras funciones de agregado de SQL).

COMENTARIOS
La función DesvEstP (StDevP) evalúa una población y la función DesvEst (StDev) evalúa una muestra de
población.

Si la consulta subyacente contiene menos de dos registros (o ningún registro para la función DesvEstP),
estas funciones devuelven un valor (que indica que no se puede calcular la desviación estándar).

Puede utilizar las funciones DesvEst y DesvEstP en una expresión de consulta. También puede utilizar esta
expresión en la propiedad SQL de un objeto o cuando cree un objeto basado en una consulta SQL.
Funciones Var y VarP
Mostrar todo
Devuelven cálculos de la de una población o una muestra de población representada como un conjunto de
valores de un campo especificado en una consulta.

SINTAXIS
Var(expr)

VarP(expr)

El marcador de posición expr representa una que identifica el campo que contiene los datos numéricos que
desea evaluar o una expresión que realiza un cálculo utilizando los datos de ese campo. Los operandos de
expr pueden incluir el nombre de un campo de tabla, una constante o una función (que puede ser intrínseca o
definida por el usuario, pero no puede ser ninguna de las otras funciones de agregado de SQL).

COMENTARIOS
La función VarP evalúa una población y la función Var evalúa una muestra de población.

Si la consulta subyacente contiene menos de dos registros, las funciones Var y VarP devuelven un valor , que
indica que no se puede calcular la varianza.

Puede utilizar las funciones Var y VarP en una expresión de consulta o en una .

También podría gustarte