Actualizado el 21 de Marzo del 2018 (Publicado el 13 de Marzo del 2018)
18.419 visualizaciones desde el 13 de Marzo del 2018
158,3 KB
38 paginas
Creado hace 11a (08/07/2013)
SQL para Access – VB de manejandodatos.es Página 1
1.- INTRODUCCION
El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos
normalizado, utilizado por el motor de base de datos de Microsoft Jet. SQL
se utiliza para crear objetos QueryDef, como el argumento de origen del
método OpenRecordSet y como la propiedad RecordSource del control de
datos. También se puede utilizar con el método Execute para crear y
manipular directamente las bases de datos Jet y crear consultas SQL de
paso a través para manipular bases de datos remotas cliente - servidor.
1.1. Componentes del SQL
El lenguaje SQL está compuesto por comandos, cláusulas, operadores y funciones de
agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y
manipular las bases de datos.
1.2 Comandos
Existen dos tipos de comandos SQL:
•
•
los DLL que permiten crear y definir nuevas bases de datos, campos
e índices.
los DML que permiten generar consultas para ordenar, filtrar y
extraer datos de la base de datos.
Comandos DLL
Comando Descripción
CREATE Utilizado para crear nuevas tablas, campos e índices
DROP
Empleado para eliminar tablas e índices
Utilizado para modificar
cambiando la definición de los campos.
ALTER
las tablas agregando campos o
Comandos DML
Comando Descripción
SELECT Utilizado para consultar registros de la base de datos que
satisfagan un criterio determinado
INSERT Utilizado para cargar lotes de datos en la base de datos en una
única operación.
UPDATE Utilizado para modificar los valores de los campos y registros
especificados
DELETE Utilizado para eliminar registros de una tabla de una base de
datos
www.manejandodatos.es @manejandodatos 2013
SQL para Access – VB de manejandodatos.es Página 2
1.3 Cláusulas
Las cláusulas son condiciones de modificación utilizadas para definir los datos que
desea seleccionar o manipular.
Cláusula Descripción
FROM
Utilizada para especificar la tabla de la cual se van a seleccionar
los registros
WHERE Utilizada para especificar las condiciones que deben reunir los
registros que se van a seleccionar
Utilizada para separar los registros seleccionados en grupos
específicos
GROUP
BY
HAVING Utilizada para expresar la condición que debe satisfacer cada
ORDER
BY
grupo
Utilizada para ordenar los registros seleccionados de acuerdo con
un orden específico
1.4 Operadores Lógicos
Operador Uso
AND
OR
NOT
Es el "y" lógico. Evalua dos condiciones y devuelve un valor de
verdad sólo si ambas son ciertas.
Es el "o" lógico. Evalúa dos condiciones y devuelve un valor de
verdar si alguna de las dos es cierta.
Negación lógica. Devuelve el valor contrario de la expresión.
1.5 Operadores de Comparación
Operador Uso
<
>
<>
<=
>=
=
BETWEEN Utilizado para especificar un intervalo de valores.
LIKE
Menor que
Mayor que
Distinto de
Menor ó Igual que
Mayor ó Igual que
Igual que
Utilizado en la comparación de un modelo
Utilizado para especificar registros de una base de datos
In
www.manejandodatos.es @manejandodatos 2013
SQL para Access – VB de manejandodatos.es Página 3
1.6 Funciones de Agregado
Las funciones de agregado se usan dentro de una cláusula SELECT en grupos de
registros para devolver un único valor que se aplica a un grupo de registros.
Función Descripción
AVG
Utilizada para calcular el promedio de los valores de un campo
determinado
COUNT Utilizada para devolver el número de registros de la selección
Utilizada para devolver la suma de todos los valores de un campo
determinado
Utilizada para devolver el valor más alto de un campo especificado
Utilizada para devolver el valor más bajo de un campo especificado
SUM
MAX
MIN
2. Consultas de Selección
Las consultas de selección se utilizan para indicar al motor de datos que
devuelva información de las bases de datos, esta información es devuelta
en forma de conjunto de registros que se pueden almacenar en un objeto
recordset. Este conjunto de registros es modificable.
2.1 Consultas básicas
La sintaxis básica de una consulta de selección es la siguiente:
SELECT Campos FROM Tabla;
En donde campos es la lista de campos que se deseen recuperar y tabla es el origen de
los mismos, por ejemplo:
SELECT Nombre, Telefono FROM Clientes;
Esta consulta devuelve un recordset con el campo nombre y teléfono de la tabla clientes.
2.2 Ordenar los registros
Adicionalmente se puede especificar el orden en que se desean recuperar los registros
de las tablas mediante la claúsula ORDER BY Lista de Campos. En donde Lista de
campos representa los campos a ordenar. Ejemplo:
SELECT CodigoPostal, Nombre, Telefono FROM Clientes ORDER BY Nombre;
Esta consulta devuelve los campos CodigoPostal, Nombre, Telefono de la tabla Clientes
ordenados por el campo Nombre.
Se pueden ordenar los registros por mas de un campo, como por ejemplo:
www.manejandodatos.es @manejandodatos 2013
SQL para Access – VB de manejandodatos.es Página 4
SELECT CodigoPostal, Nombre, Telefono FROM Clientes ORDER BY
CodigoPostal, Nombre;
Incluso se puede especificar el orden de los registros: ascendente mediante la claúsula
(ASC -se toma este valor por defecto) ó descendente (DESC)
SELECT CodigoPostal, Nombre, Telefono FROM Clientes ORDER BY
CodigoPostal DESC , Nombre ASC;
2.3 Consultas con Predicado
El predicado se incluye entre la claúsula y el primer nombre del campo a recuperar, los
posibles predicados son:
Predicado
ALL
TOP
DISTINCT
Descripción
Devuelve todos los campos de la tabla
Devuelve un determinado número de registros de la tabla
Omite los registros cuyos campos seleccionados coincidan
totalmente
DISTINCTROW Omite los registros duplicados basandose en la totalidad del
registro y no sólo en los campos seleccionados.
ALL
Si no se incluye ninguno de los predicados se asume ALL. El Motor de base de datos
selecciona todos los registros que cumplen las condiciones de la instrucción SQL. No se
conveniente abusar de este predicado ya que obligamos al motor de la base de datos a
analizar la estructura de la tabla para averiguar los campos que contiene, es mucho más
rápido indicar el listado de campos deseados.
SELECT ALL FROM Empleados;
SELECT * FROM Empleados;
TOP
Devuelve un cierto número de registros que entran entre al principio o al final de un
rango especificado por una cláusula ORDER BY. Supongamos que queremos recuperar
los nombres de los 25 primeros estudiantes del curso 1994:
SELECT TOP 25 Nombre, Apellido FROM Estudiantes
ORDER BY Nota DESC;
Si no se incluye la cláusula ORDER BY, la consulta devolverá un conjunto arbitrario de
25 registros de la tabla Estudiantes .El predicado TOP no elige entre valores iguales. En
el ejemplo anterior, si la nota media número 25 y la 26 son iguales, la consulta
devolverá 26 registros. Se puede utilizar la palabra reservada PERCENT para devolver
un cierto porcentaje de registros que caen al principio o al final de un rango
www.manejandodatos.es @manejandodatos 2013
SQL para Access – VB de manejandodatos.es Página 5
especificado por la cláusula ORDER BY. Supongamos que en lugar de los 25 primeros
estudiantes deseamos el 10 por ciento del curso:
SELECT TOP 10 PERCENT Nombre, Apellido FROM Estudiantes
ORDER BY Nota DESC;
El valor que va a continuación de TOP debe ser un Integer sin signo.TOP no afecta a la
posible actualización de la consulta.
DISTINCT
Omite los registros que contienen datos duplicados en los campos seleccionados. Para
que los valores de cada campo listado en la instrucción SELECT se incluyan en la
consulta deben ser únicos.
Por ejemplo, varios empleados listados en la tabla Empleados pueden tener el mismo
apellido. Si dos registros contienen López en el campo Apellido, la siguiente instrucción
SQL devuelve un único registro:
SELECT DISTINCT Apellido FROM Empleados;
Con otras palabras el predicado DISTINCT devuelve aquellos registros cuyos campos
indicados en la cláusula SELECT posean un contenido diferente. El resultado de una
consulta que utiliza DISTINCT no es actualizable y no refleja los cambios subsiguientes
realizados por otros usuarios.
DISTINCTROW
Devuelve los registros diferentes de una tabla; a diferencia del predicado anterior que
sólo se fijaba en el contenido de los campos seleccionados, éste lo hace en el contenido
del registro completo independientemente de los campo indicados en la cláusula
SELECT.
SELECT DISTINCTROW Apellido FROM Empleados;
Si la tabla empleados contiene dos registros: Antonio López y Marta López el ejemplo
del predicado DISTINCT devuleve un único registro con el valor López en el campo
Apellido ya que busca no duplicados en dicho campo. Este último ejemplo devuelve dos
registros con el valor López en el apellido ya que se buscan no duplicados en el registro
completo.
2.4 Alias
En determinadas circunstancias es necesario asignar un nombre a alguna columna
determinada de un conjunto devuelto, otras veces por simple capricho o por otras
circunstancias. Para resolver todas ellas tenemos la palabra reservada AS que se encar
Comentarios de: Tutorial SQL para Access (1)