Publicado el 28/03/2004 por Enrique Martínez Montejo. Enlace original
Contenido
- A modo de pequeña introducción
- Los componentes de SQL
- Comandos
- Cláusulas
- Operadores
- Funciones de agregado
A modo de pequeña introducción
El motor de base de datos Microsoft Jet proporciona un modelo relacional basado en el Lenguaje de Consulta Estructurado (SQL) estándar, con pequeñas diferencias existentes con respecto al lenguaje SQL de ANSI, utilizándose fundamentalmente para ejecutar consultas de manipulación y definición de datos mediante los objetos correspondientes de las bibliotecas de DAO y ADO, bien para recuperar un conjunto de registros de la base de datos, bien para diseñar o modificar directamente la estructura de una base de datos Microsoft Jet.
El Lenguaje de Consulta Estructurado es un lenguaje de programación de bases de datos que tiene como antecedente al lenguaje Sequel, motivo por el cual sus iniciales se continúen pronunciando como sequel en lugar de pronunciarlas letra a letra.
Los orígenes del SQL se remontan a comienzos de la década de los 70, cuando el doctor norteamericano E. F. Codd creó el modelo de bases de datos relacionales, evolucionando desde entonces hasta alcanzar el modelo estándar y normalizado en el que se ha convertido en la actualidad, modelo este que se encuentra implementado en un amplio abanico de bases de datos relacionales existentes en el mercado, que aunque presentan algunas variaciones respecto al estándar ANSI que define la norma (incluyendo la versión SQL para el motor Microsoft Jet), existe una gran cohesión en lo que concierne a la estructura y funcionamiento general del lenguaje utilizado por los diferentes fabricantes de bases de datos relacionales.
Los componentes de SQL
El lenguaje SQL se compone de una serie de comandos, cláusulas, operadores y funciones de agregado que se combinan entre ellas para formar las instrucciones necesarias que se ejecutaran utilizando los correspondientes métodos de los objetos de acceso a datos, de tal forma que podamos crear, actualizar y manipular nuestras bases de datos.
A continuación se enumerarán los distintos componentes que pone a nuestra disposición el SQL del motor Microsoft Jet, los cuales se explicarán detalladamente en sus correspondientes apartados dentro de este manual.
Comandos
Los comandos son aquellas instrucciones que se pueden ejecutar directamente, entendiendo por instrucción la expresión de consulta SQL generada por el nombre del comando y los restantes parámetros requeridos por el mismo.
SQL proporciona dos tipos de comandos: los que pertenecen al lenguaje de definición de datos (DDL) y los que forman parte del lenguaje de manipulación de datos (DML). Los primeros permiten crear y definir nuevas tablas, campos, índices, usuarios, grupos de trabajo, procedimientos almacenados y vistas, mientras que los segundos, permiten crear consultas para ordenar, filtrar y extraer los datos de la base de datos. En las siguientes tablas se detallan las instrucciones de las dos clases comandos actualmente soportadas por la versión 4.0 del motor de base de datos Microsoft Jet.
Comando | Descripción | |
ADD USER | Agrega uno o varios usuarios a un grupo de trabajo. | SÓLO ADO |
ALTER DATABASE | Cambia la contraseña de una base de datos. | SÓLO ADO |
ALTER TABLE | Modifica el diseño de una tabla, permitiendo asimismo cambiar el tipo de dato y el tamaño de un campo. | |
ALTER USER | Cambia la contraseña de un usuario. | SÓLO ADO |
CREATE GROUP | Crea uno o más grupos de trabajo. | SÓLO ADO |
CREATE INDEX | Crea un índice en una tabla existente. | |
CREATE PROCEDURE | Crea un procedimiento almacenado. | SÓLO ADO |
CREATE TABLE | Crea una tabla nueva. | |
CREATE USER | Crea uno o varios usuarios. | SÓLO ADO |
CREATE VIEW | Crea una nueva vista o consulta. | SÓLO ADO |
DROP GROUP | Elimina uno o varios grupos de trabajo. | SÓLO ADO |
DROP INDEX | Elimina un índice existente en una tabla. | |
DROP PROCEDURE | Elimina un procedimiento almacenado. | SÓLO ADO |
DROP TABLE | Elimina una tabla. | |
DROP USER | Elimina uno o varios usuarios, o quita uno o varios usuarios de un grupo de trabajo. | SÓLO ADO |
DROP VIEW | Elimina una vista existente. | SÓLO ADO |
EXECUTE | Ejecuta un procedimiento almacenado. | SÓLO ADO |
TRANSACTION | Comienza y finaliza transacciones explícitas. | SÓLO ADO |
Comando | Descripción |
DELETE | Elimina uno o varios registros de la tabla especificada. |
INSERT | Añade registros por lotes en una única operación. |
SELECT | Selecciona registros que cumplan con un criterio determinado. |
UPDATE | Actualiza los valores de los campos y registros especificados. |
Cláusulas
Las cláusulas son condiciones de modificación que se utilizan para definir los datos que deseamos seleccionar o manipular.
Cláusula | Descripción |
AS | Indica un nombre de campo alternativo para el nombre del campo de la tabla o para el nombre del valor del campo resultante de la llamada a una función agregada. |
CONSTRAINT | Especifica un índice, y se utiliza para crear o eliminar índices. |
FROM | Especifica la tabla de la que se van a seleccionar los registros. |
GROUP BY | Separa los registros seleccionados en grupos específicos. |
HAVING | Expresa la condición que debe satisfacer cada grupo. |
ORDER BY | Ordena los registros seleccionados de acuerdo con un orden especificado. |
PROCEDURE | Define un nombre y parámetros opcionales de una consulta. |
WHERE | Especifica las condiciones que deben cumplir los registros que se van a seleccionar. |
Operadores
Existen dos tipos de operadores en SQL: operadores lógicos y operadores de comparación.
Operadores lógicos
Los operadores lógicos se utilizan para evaluar expresiones, generalmente dentro de una cláusula WHERE.
Operador | Descripción |
AND | Es el y lógico. Evalúa dos condiciones, devolviendo un valor verdadero sólo si las dos condiciones son ciertas. |
NOT | Negación lógica. Devuelve el valor contrario de la expresión. |
OR | Es el o lógico. Evalúa dos condiciones, devolviendo un valor verdadero si alguna de las dos condiciones es cierta. |
Ejemplos
SELECT * FROM Alumnos WHERE Nombre = ‘Juan’ AND Edad = 23
Devolverá todos los registros de los alumnos cuyo nombre sea Juan y tengan 23 años de edad.
SELECT * FROM Alumnos WHERE Nombre = ‘Juan’ OR Edad = 23
Devolverá todos los registros de los alumnos cuyo nombre sea Juan, o que tengan 23 años de edad, aunque no se llamen Juan.
SELECT * FROM Alumnos WHERE Nombre = ‘Juan’ AND NOT Edad = 23
Devolverá todos los registros de los alumnos cuyo nombre sea Juan pero que su edad sea distinta a 23 años.
Operadores de comparación
Los operadores de comparación se utilizan para comparar valores relativos de dos expresiones con el fin de determinar la acción que debe ejecutarse.
Operador | Descripción |
< | Menor que. |
<= | Menor o igual que. |
> | Mayor que. |
>= | Mayor o igual que. |
= | Igual que. |
<> | Distinto de. |
BETWEEN | Se utiliza para especificar un intervalo de valores. |
IN | Se utiliza para especificar registros de una base de datos. |
LIKE | Se utiliza en la comparación de modelos. |
Ejemplos
SELECT * FROM Alumnos WHERE Nombre = ‘Juan’
Devolverá todos los registros de los alumnos cuyo nombre sea Juan
SELECT * FROM Alumnos WHERE Apellidos BETWEEN ‘Ma%’ AND ‘Mu%’
Devolverá todos los registros de los alumnos cuyos Apellidos estén comprendidos entre las sílabas ‘Ma’ y ‘Mu’
SELECT * FROM Alumnos WHERE IdAlumno IN (39, 75, 139, 264)
Devolverá los registros de los alumnos cuyo identificador corresponda con el conjunto de valores especificados
SELECT * FROM Alumnos WHERE Nombre LIKE ‘Ma%’
Devolverá todos los registros de los alumnos cuyo Nombre empiece por la sílaba ‘Ma’
Funciones de agregado
Las funciones de agregado se utilizan 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 de agregado | Descripción |
AVG | Devuelve el promedio de los valores de un determinado campo. |
COUNT | Devuelve el número de registros de la selección. |
FIRST | Devuelve el valor del campo del primer registro del conjunto de resultados obtenido. |
LAST | Devuelve el valor del campo del último registro del conjunto de resultados obtenido. |
MAX | Devuelve el valor más alto de un campo especificado. |
MIN | Devuelve el valor más bajo de un campo especificado. |
STDEV | Devuelve una estimación de la desviación estándar de una muestra de población representada como un conjunto de valores contenidos en un campo especificado de una consulta. |
STDEVP | Devuelve una estimación de la desviación estándar de una población representada como un conjunto de valores contenidos en un campo especificado de una consulta. |
SUM | Devuelve la suma de todos los valores de un determinado campo. |
VAR | Devuelve la estimación de la varianza de una muestra de población representada como un conjunto de valores contenidos en un campo especificado de una consulta. |
VARP | Devuelve la estimación de la varianza de una población representada como un conjunto de valores contenidos en un campo especificado de una consulta. |
Ejemplos
SELECT COUNT (IdFactura) FROM Facturas WHERE IdCliente = 10251
Devolverá el número de facturas pertenecientes al cliente cuyo identificador es el 10251
SELECT AVG(Total) AS [Valor Promedio] FROM Facturas WHERE IdCliente = 10251
Devolverá en el campo ‘Valor Promedio’ el valor del promedio total de las facturas pertenecientes al cliente especificado
SELECT SUM(Total) FROM Facturas WHERE IdCliente = 10251
Devolverá la suma del importe total facturado a un cliente
SELECT MAX(Total) AS [Importe Mayor], MIN(Total) AS [Importe Menor] FROM Facturas WHERE IdCliente = 10251
Devolverá en el primer campo el importe de la factura mayor, y en el segundo campo, el importe de la factura menor del cliente especificado
0 comentarios