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.

ComandoDescripción 
ADD USERAgrega uno o varios usuarios a un grupo de trabajo.SÓLO ADO
ALTER DATABASECambia la contraseña de una base de datos.SÓLO ADO
ALTER TABLEModifica el diseño de una tabla, permitiendo asimismo cambiar el tipo de dato y el tamaño de un campo. 
ALTER USERCambia la contraseña de un usuario.SÓLO ADO
CREATE GROUPCrea uno o más grupos de trabajo.SÓLO ADO
CREATE INDEXCrea un índice en una tabla existente. 
CREATE PROCEDURECrea un procedimiento almacenado.SÓLO ADO
CREATE TABLECrea una tabla nueva. 
CREATE USERCrea uno o varios usuarios.SÓLO ADO
CREATE VIEWCrea una nueva vista o consulta.SÓLO ADO
DROP GROUPElimina uno o varios grupos de trabajo.SÓLO ADO
DROP INDEXElimina un índice existente en una tabla. 
DROP PROCEDUREElimina un procedimiento almacenado.SÓLO ADO
DROP TABLEElimina una tabla. 
DROP USERElimina uno o varios usuarios, o quita uno o varios usuarios de un grupo de trabajo.SÓLO ADO
DROP VIEWElimina una vista existente.SÓLO ADO
EXECUTEEjecuta un procedimiento almacenado.SÓLO ADO
TRANSACTIONComienza y finaliza transacciones explícitas.SÓLO ADO
ComandoDescripción
DELETEElimina uno o varios registros de la tabla especificada.
INSERTAñade registros por lotes en una única operación.
SELECTSelecciona registros que cumplan con un criterio determinado.
UPDATEActualiza 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áusulaDescripción
ASIndica 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.
CONSTRAINTEspecifica un índice, y se utiliza para crear o eliminar índices.
FROMEspecifica la tabla de la que se van a seleccionar los registros.
GROUP BYSepara los registros seleccionados en grupos específicos.
HAVINGExpresa la condición que debe satisfacer cada grupo.
ORDER BYOrdena los registros seleccionados de acuerdo con un orden especificado.
PROCEDUREDefine un nombre y parámetros opcionales de una consulta.
WHEREEspecifica 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.

OperadorDescripción
ANDEs el y lógico. Evalúa dos condiciones, devolviendo un valor verdadero sólo si las dos condiciones son ciertas.
NOTNegación lógica. Devuelve el valor contrario de la expresión.
OREs 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.

OperadorDescripción
<Menor que.
<=Menor o igual que.
>Mayor que.
>=Mayor o igual que.
=Igual que.
<>Distinto de.
BETWEENSe utiliza para especificar un intervalo de valores.
INSe utiliza para especificar registros de una base de datos.
LIKESe 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 agregadoDescripción
AVGDevuelve el promedio de los valores de un determinado campo.
COUNTDevuelve el número de registros de la selección.
FIRSTDevuelve el valor del campo del primer registro del conjunto de resultados obtenido.
LASTDevuelve el valor del campo del último registro del conjunto de resultados obtenido.
MAXDevuelve el valor más alto de un campo especificado.
MINDevuelve el valor más bajo de un campo especificado.
STDEVDevuelve 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.
STDEVPDevuelve 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.
SUMDevuelve la suma de todos los valores de un determinado campo.
VARDevuelve 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.
VARPDevuelve 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

Categorías: SQL

0 comentarios

Deja una respuesta

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *