Está en la página 1de 20

EVENTOS DE MICROSOFT ACCESS

Orden de eventos para objetos de base de datos

Se aplica a: Access para Office 365 Access 2016 Access 2013 Access 2010 Access
2007
Una sola acción (como mover de un control en un objeto a otro control) puede
desencadenar varios eventos distintos, que se producen en una secuencia
específica. Conocer cuándo se producirán los eventos y el orden en que se
ejecutarán es importante, ya que puede afectar a cómo y cuándo se ejecutarán las
macros o procedimientos de eventos. Por ejemplo, si hay dos procedimientos de
eventos que se ejecutarán en un orden específico, asegúrese de que los eventos
asociados se ejecuten en ese mismo orden.
Orden de eventos para controles en formularios
Los eventos se producen para los controles en los formularios al mover el foco a un
control y al cambiar y actualizar datos en un control.
Nota: Microsoft Office Access muestra los nombres de evento de una forma
ligeramente distinta en el Editor de Visual Basic que en la hoja de propiedades y en
el Generador de macros. Por ejemplo, el evento denominado On Got Focus en la
hoja de propiedades del formulario y en el Generador de macros se
denomina GotFocus en el Editor de Visual Basic. En los ejemplos de este artículo
se usa el formato de Visual Basic para Aplicaciones (VBA) para los nombres de
evento.
Colocar el foco en un control

Al colocar el foco en un control de formulario (por ejemplo, al abrir un formulario que


contiene uno o más controles activos, o bien al colocar el foco en otro control del
mismo formulario), los eventos Enter y GotFocus se ejecutan en este orden:
Enter GotFocus
Al abrir un formulario, los eventos Enter y GotFocus se ejecutan después de los
eventos asociados con la apertura del formulario (Open, Activate y Current), de
esta forma:
Open (formulario) Activate (formulario) Current (formulario) Enter (contr
ol) GotFocus (control)
Cuando el foco abandona un control de un formulario (por ejemplo, al cerrar un
formulario que contiene uno o más controles activos, o bien al desplazarse a otro
control del mismo formulario), los eventos Exit y LostFocus se ejecutan en este
orden:
Exit LostFocus
Al cerrar un formulario, los eventos Exit y LostFocus se ejecutan antes de los
eventos asociados con el cierre del formulario (Unload, Deactivate y Close), de
esta forma:
Exit (control) LostFocus (control) Unload (formulario) Deactivate (formul
ario) Close (formulario)
Cambiar y actualizar datos en un control
Al especificar o cambiar datos en un control de formulario y, después, colocar el
foco en otro control, se ejecutan los eventos BeforeUpdate y AfterUpdate:
BeforeUpdate AfterUpdate
Los eventos Exit y LostFocus de un control cuyos cambios de valores se producen
después de los eventos BeforeUpdate y AfterUpdate:

BeforeUpdate AfterUpdate Exit LostFocus


Al cambiar el texto de un cuadro de texto (o de una sección de cuadro de texto en
un cuadro combinado), se ejecuta el evento Change. Este evento se ejecuta cada
vez que cambia el contenido del control, pero antes de colocar el foco en otro control
o registro (y, por lo tanto, antes de que se ejecuten los
eventos BeforeUpdate y AfterUpdate). La siguiente secuencia de eventos se
produce por cada tecla que presione en un cuadro de texto (o en la sección de
cuadro de texto de un cuadro combinado):
KeyDown KeyPress Dirty Change KeyUp
El evento NotInList se ejecuta después de escribir un valor en un cuadro
combinado que no se encuentra en la lista de cuadro combinado y, después, intentar
colocar el foco en otro control o registro. El evento NotInList se ejecuta después de
los eventos de teclado y de los eventos Change del cuadro combinado, pero antes
de los eventos de cualquier otro control o del formulario. Si la
propiedad LimitToList del cuadro combinado se establece en Yes, el
evento Error del formulario se ejecutará inmediatamente después del
evento NotInList:
KeyDown KeyPress Dirty Change KeyUp NotInList Error
Orden de eventos para registros en formularios
Los eventos se ejecutan para los registros en los formularios al mover el foco a otro
registro, actualizar datos en un registro, eliminar registros existentes o crear un
registro.
Colocar el foco en registros y actualizar datos en registros
Al colocar el foco en un registro existente de un formulario, escribir o cambiar datos
en el registro y, después, mover el foco a otro registro, se produce la secuencia
siguiente de eventos para el formulario:
Current (formulario) BeforeUpdate (formulario) AfterUpdate (formulario)
Current (formulario)
Al salir del registro cuyos datos cambiaron, pero antes de escribir el registro
siguiente, se producen los eventos Exit y LostFocus para el control que tiene el
foco. Estos eventos se producen después de los
eventos BeforeUpdate y AfterUpdate del formulario, de esta forma:
BeforeUpdate (formulario) AfterUpdate (formulario) Exit (control) LostF
ocus (control) RecordExit (formulario) Current (formulario)
Al mover el foco entre los controles de un formulario, se ejecutan los eventos de
cada control. Por ejemplo, las siguientes secuencias de eventos solo se producen
al realizar lo siguiente:
 Abrir un formulario y cambiar los datos de un control:
Current (formulario) Enter (control) GotFocus (control) BeforeUpdate (c
ontrol) AfterUpdate(control)
 Colocar el foco en otro control:
Exit (control1) LostFocus (control1) Enter (control2) GotFocus (control2)
 Colocar el foco en otro registro:
BeforeUpdate (formulario) AfterUpdate (formulario) Exit (control2) LostF
ocus (control2) RecordExit (formulario) Current (formulario)
Eliminar registros
Al eliminar un registro, los eventos siguientes se ejecutan para el formulario y en
Microsoft Office Access se muestra un cuadro de diálogo para pedirle que confirme
la eliminación:
Delete BeforeDelConfirm AfterDelConfirm
Si cancela el evento Delete, no se ejecutarán los
eventos BeforeDelConfirm y AfterDelConfirm, ni se mostrará el cuadro de
diálogo.
Crear un registro
Al colocar el foco en un nuevo registro (en blanco) de un formulario y, después,
crear un registro escribiendo datos en un control, se ejecuta la siguiente secuencia
de eventos:
Current (formulario) Enter (control) GotFocus (control) BeforeInsert (for
mulario) AfterInsert(formulario)
Los eventos BeforeUpdate y AfterUpdate de los controles del formulario y del
nuevo registro se ejecutan después del evento BeforeInsert y antes del
evento AfterInsert.
Orden de eventos para formularios y subformularios
Los eventos se ejecutan para los formularios al abrir o cerrar un formulario,
desplazarse entre formularios o al trabajar con datos en un formulario o
subformulario.
Abrir y cerrar un formulario
Al abrir un formulario, se ejecuta la siguiente secuencia de eventos para el
formulario:
Open Load Resize Activate Current
Si no hay ningún control activo en el formulario, el evento GotFocus se ejecuta para
el formulario después del evento Activate, pero antes del evento Current.
Al cerrar un formulario, se ejecuta la siguiente secuencia de eventos para el
formulario:
Unload Deactivate Close
Si no hay ningún control activo en el formulario, el evento LostFocus se ejecuta
para el formulario después del evento Unload, pero antes del evento Deactivate.
Desplazarse entre formularios
Al cambiar entre dos formularios abiertos, el evento Deactivate se ejecuta para el
primer formulario, mientras que el evento Activate se ejecuta para segundo
formulario:
Deactivate (formulario1) Activate (formulario2)
El evento Deactivate de un formulario también se ejecuta al cambiar del formulario
a otra ficha del objeto en Access. Pero el evento Deactivate no se ejecuta al
cambiar a un cuadro de diálogo, a un formulario cuya propiedad PopUp se
establece en Yes o a una ventana de otro programa.
Nota: El evento Open no se ejecuta si coloca el foco en un formulario que ya está
abierto, incluso si coloco el foco en ese formulario con una acción OpenForm.
Trabajar con datos en un formulario
Los eventos de formulario y control se ejecutan al desplazarse entre los registros
del formulario y modificar datos. Por ejemplo, al abrir por primera vez un formulario,
se ejecuta la siguiente secuencia de eventos:
Open (formulario) Load (formulario) Resize (formulario) Activate (formula
rio) Current(formulario) Enter (control) GotFocus (control)
De forma similar, al cerrar un formulario, se ejecuta la siguiente secuencia de
eventos:
Exit (control) LostFocus (control) Unload (formulario) Deactivate (formul
ario) Close (formulario)
Si cambió datos en un control, los eventos BeforeUpdate y AfterUpdate del control
y el formulario se ejecutarán antes del evento Exit del control.
Trabajar con subformularios
Al abrir un formulario que contiene un subformulario, el subformulario y sus registros
se cargan antes que el formulario principal. Por lo tanto, los eventos del
subformulario y sus controles (como Open, Current, Entery GotFocus) se
ejecutan antes de los eventos del formulario. Pero el evento Activate no se ejecuta
para los subformularios. Por lo tanto, al abrir un formulario principal, se
desencadena un evento Activate solo para el formulario principal.
De forma similar, al cerrar un formulario que contiene un subformulario, el
subformulario y sus registros se descargan después del formulario. El
evento Deactivate no se ejecuta para los subformularios. Por lo tanto, al cerrar un
formulario principal, se desencadena un evento Deactivate solo para el formulario
principal. Los eventos para los controles, formularios y subformularios se ejecutan
en el orden siguiente:
1. Eventos para los controles de subformulario (como Exit y LostFocus)
2. Eventos para los controles de formulario (incluido el control de subformulario)
3. Eventos para el formulario (como Deactivate y Close)
4. Eventos para el subformulario
Nota: Como los eventos para un subformulario se ejecutan después de cerrar el
formulario principal, algunos eventos (como cancelar el cierre del formulario
principal desde un evento en el subformulario) no se ejecutarán. Puede que necesite
mover estos tipos de pruebas de validación a un evento del formulario principal.
Orden de eventos para pulsaciones de teclas y clics de mouse
Los eventos de teclado se ejecutan para formularios y controles al presionar teclas
o enviar pulsaciones de teclas mientras el formulario o control tiene el foco. Los
eventos de mouse se ejecutan para formularios, secciones de formulario y controles
en formularios al hacer clic en los botones del mouse mientras el puntero del mouse
se encuentra sobre un formulario, sección o control. Los eventos de mouse también
se ejecutan al colocar el puntero del mouse sobre un formulario, sección o control.

Eventos de teclado

Al presionar y soltar una tecla mientras el control de un formulario tiene el foco (o


usar la acción SendKeys o instrucción para enviar una pulsación de tecla), se
ejecuta la siguiente secuencia de eventos:
KeyDown KeyPress KeyUp
Al presionar y soltar una tecla o enviar una pulsación de tecla en el juego de
caracteres ANSI, se ejecutan los eventos KeyDown, KeyPress y KeyUp. Si
mantiene presionada una tecla ANSI, los eventos KeyDown y KeyPress se
alternarán repetidamente (KeyDown, KeyPress, KeyDown, KeyPress, etc.) hasta
que suelte la tecla; después, se ejecutará el evento KeyUp.
Si presiona y suelta una tecla distinta de ANSI, se ejecutarán los
eventos KeyDown y KeyUp. Si mantiene presionada una tecla distinta de ANSI, el
evento KeyDown se ejecutará repetidamente hasta que suelte la tecla y, después,
se ejecutará el evento KeyUp.
Si, al presionar una tecla, se desencadena otro evento para un control, ese evento
se ejecutará después del evento KeyPress, pero antes del evento KeyUp. Por
ejemplo, si una pulsación de tecla cambia el texto de un cuadro de texto (lo que
desencadena un evento Change), se ejecutará la siguiente secuencia de eventos:
KeyDown KeyPress Change KeyUp
Si una pulsación de tecla hace que el foco se desplace de un control a otro, se
ejecutará el evento KeyDownpara el primer control, mientras que los
eventos KeyPress y KeyUp se ejecutarán para el segundo control. Por ejemplo, si
cambia los datos de un control y, después, presiona la tecla TAB para desplazarse
hasta el siguiente control, se ejecutarán las siguientes secuencias de eventos:
 Primer control:
KeyDown BeforeUpdate AfterUpdate Exit LostFocus
 Segundo control:
Enter GotFocus KeyPress KeyUp
Eventos de mouse
Al hacer clic y soltar un botón del mouse mientras el puntero del mouse se encuentra
sobre un control en un formulario, se ejecutará la siguiente secuencia de eventos
para el control:
MouseDown MouseUp Click
Si un control tiene el foco y hace clic en otro control para desplazar el foco a este
segundo control, se ejecutarán las siguientes secuencias de eventos:
 Primer control:
Exit LostFocus
 Segundo control:
Enter GotFocus MouseDown MouseUp Click
Si se desplaza a otro registro y, después, hace clic en un control, el
evento Current del formulario también se ejecutará antes del evento Enter del
control.
Al hacer doble clic en un control, se ejecutarán los eventos Click y DblClick. Por
ejemplo, al hacer doble clic en un control distinto de un botón de comando, se
ejecutará la siguiente secuencia de eventos para el control:
MouseD own MouseUp Click DblClick MouseUp
Al hacer doble clic en un botón de comando, se ejecutará la secuencia de eventos
anterior, seguida de un segundo evento Click.
El evento MouseMove de un formulario, sección o control se ejecuta al colocar el
puntero del mouse sobre el formulario, sección o control. Este evento es
independiente del resto de los eventos de mouse.
Orden de eventos para informes y secciones de informes
Los eventos se ejecutan para informes y secciones de informes al abrir un informe
para imprimirlo o generar una vista previa, o bien al cerrar un informe.

Eventos para informes

Al abrir un informe para imprimirlo o generar una vista previa y, después, cerrar el
informe o cambiar a otra ficha del objeto en Access, se ejecutará la siguiente
secuencia de eventos para el informe:
Open Activate Close Deactivate
Al cambiar entre dos informes abiertos, el evento Deactivate se ejecuta para el
primer informe, mientras que el evento Activate se ejecuta para el segundo informe:
Deactivate (informe1) Activate (informe2)
El evento Deactivate de un informe también se ejecuta al cambiar desde el informe
a otra ficha del objeto en Access. Pero el evento Deactivate no se ejecuta al
cambiar a un cuadro de diálogo, a un formulario cuya propiedad PopUp se
establece en Yes o a una ventana de otro programa.
Al abrir un informe basado en una consulta, Access desencadena el
evento Open para el informe antes de ejecutar la consulta subyacente. Como
resultado, puede establecer los criterios para el informe con una macro o
procedimiento de evento que responda al evento Open. Por ejemplo, la macro o el
procedimiento de evento puede abrir un cuadro de diálogo personalizado donde
puede especificar los criterios del informe.
Eventos para secciones de informe
Al imprimir o generar la vista previa de un informe, los eventos Format y Print se
ejecutan para las secciones del informe después de los
eventos Open y Activate del informe y antes de los
eventos Close o Deactivate del informe:
Open (informe) Activate (informe) Format (sección de
informe) Print (sección de informe) Close(informe) Deactivate (informe)
Además, los eventos siguientes se pueden ejecutar durante o después de aplicar
formato, pero antes del evento Print:
 El evento Retreat se ejecuta cuando Access vuelve a una sección anterior al
aplicar formato al informe.
 El evento NoData se ejecuta si en el informe no se muestra ningún registro.
 El evento Page se ejecuta después de aplicar el formato, pero antes de la
impresión. Puede usar este evento para personalizar la apariencia del
informe impreso.

LENGUA ESTRCTURA DE COSULTAS ( SQL)


Iniciación al lenguaje estructurado de consultas (SQL)

El lenguaje estructurado de consultas, más comúnmente llamado SQL, lo


conforman una serie de comandos, cláusulas y funciones que permiten realizar
cualquier operación sobre la información almacenada en la base de datos.
SQL no es exactamente un lenguaje de programación pero lleva implícita la
complejidad de estas herramientas. En realidad, los sistemas gestores de bases de
datos como Microsoft Access o el mismo OpenOffice Base tienen como principal fin
ocultar el lado oscuro de este lenguaje mediante el uso de utilidades gráficas.
Aunque si tu intención es llegar a dominar el mundo de las bases de datos es
imprescindible conocer ciertos aspectos de SQL.

En la mayoría de casos el comando mas utilizado dentro del lenguaje SQL me


atrevo a decir que es el comando SELECT ya que este permite realizar las
consultas sobre los datos que tenemos en la BD obteniendo así los datos de la
misma.

Para ir entrando mas en materia, dentro de SQL encontramos los siguientes


lenguajes DML, DDL, DCL, se preguntarán ustedes y eso que significa, ahora les
explico.

DML En inglés esto significa Data Manipulation Languaje o sea es un Lenguaje de


manipulación de datos, como su mismo nombre lo indica, con este podemos realizar
lo siguiente, Insertar registros en la BD, Actualizar registros en la
BD, Borrar registro en la BD, entre otros, los comandos utilados para este
lenguajes son los siguientes:
 Insert: Permite insertar registros en las tablas
 Update: Permite Actualizar el contenido de los registros dentro de las tablas
 Delete: permite borrar registros de una tabla

DDL En inglés esto significa, Lenguaje de Definición de Datos o sea es un Lenguaje


que me permite modificar la estructura de las tablas de la BD, cuando me refiero a
modificar la estructura de las tablas, esto significa por ejemplo, Crear una
tabla, Borrar una trabla, Trunca una tabla, Renombrar una tabla o en su
defecto Alterar una tabla. Los comandos usados para esto son los siguientes.

 Create: Permite crear una tabla


 Drop: Permite eliminar la tabla por completo incluyendo toda su estructura
 Truncate: Permite eliminar el contenido completo de una tabla, similar al
comando DELETE pero este es más rápido, en su momento les indicaré
porque razón.
 Rename: Permite cambiar el nombre de una tabla.
 Alter: Permite alterar la estructura de una tabla, agregando columnas,
modificando tipos de datos, etc.

DCL: En inglés esto significa, Data Control Languaje o sea Lenguaje de Control de
Datos, como su mismo nombre lo indica, nos permite administrar los derechos y
restricciones que se les aplica a los usuarios sobre el nivel de acceso que ellos
pueden tener a la BD, los comando usados son.
 Grant: Permite asignar permisos.
 Revoke: Permite retirar los permisos.

INSTRUCCIONES DE TRANSFERENCIA: Sirve para poder administrar las


modificaciones creadas por las instrucciones DML. Como por ejemplo, deshacer
algo que se haya realizado, o confirmar lo que se ha realizado. Las instrucciones de
transferencia son las siguientes:

 Commit: Se usa para confirmar algún tipo de modificación realizada en la


BD.
 Rollback: Se usa para deshacer algún tipo de modificación realizada en la
BD.
 Savepoint: Marca un punto de referencia en alguna modificación para poder
hacer un Rollback parcial. Algo similar a como funciona un punto de
restauración.
 Cabe mencionar que existe sentencias SQL que se auto-confirman y estas
no se pueden regresar.
Consulta de datos
Ahora nos vamos a centrar en la “R” de CRUD, es decir, en cómo recuperar la
información que nos interesa de dentro de una base de datos, usando para ello
el lenguaje de consulta o SQL. Ya nos preocuparemos luego de cómo llegamos a
introducir los datos primeramente.
Para realizar consultas sobre las tablas de las bases de datos disponemos de la
instrucción SELECT. Con ella podemos consultar una o varias tablas. Es sin duda el
comando más versátil del lenguaje SQL.
Existen muchas cláusulas asociadas a la sentencia SELECT (GROUP BY, ORDER,
HAVING, UNION). También es una de las instrucciones en la que con más
frecuencia los motores de bases de datos incorporan cláusulas adicionales al
estándar, que es el que veremos aquí.
Nota: Si esta serie de artículos te está pareciendo interesante, entonces ni te
imaginas lo que puedes aprender con este curso de fundamentos de SQL.
Vamos a empezar viendo las consultas simples, basadas en una sola tabla.
Veremos cómo obtener filas y columnas de una tabla en el orden en que nos haga
falta.
El resultado de una consulta SELECT nos devuelve una tabla lógica. Es decir, los
resultados son una relación de datos, que tiene filas/registros, con una serie de
campos/columnas. Igual que cualquier tabla de la base de datos. Sin embargo esta
tabla está en memoria mientras la utilicemos, y luego se descarta. Cada vez que
ejecutamos la consulta se vuelve a calcular el resultado.
La sintaxis básica de una consulta SELECT es la siguiente (los valores opcionales
van entre corchetes):
SELECT [ ALL / DISTINC ] [ * ] / [ListaColumnas_Expresiones] AS [Expresion]
FROM Nombre_Tabla_Vista
WHERE Condiciones
ORDER BY ListaColumnas [ ASC / DESC ]
A continuación analizaremos cada una de las partes de la consulta para entenderla
mejor.
SELECT
Permite seleccionar las columnas que se van a mostrar y en el orden en que lo van
a hacer. Simplemente es la instrucción que la base de datos interpreta como que
vamos a solicitar información.
ALL / DISTINCT
ALL es el valor predeterminado, especifica que el conjunto de resultados puede
incluir filas duplicadas. Por regla general nunca se utiliza.
DISTINCT especifica que el conjunto de resultados sólo puede incluir filas únicas.
Es decir, si al realizar una consulta hay registros exactamente iguales que aparecen
más de una vez, éstos se eliminan. Muy útil en muchas ocasiones.
Nombres de campos
Se debe especificar una lista de nombres de campos de la tabla que nos interesan
y que por tanto queremos devolver. Normalmente habrá más de uno, en cuyo caso
separamos cada nombre de los demás mediante comas.
Se puede anteponer el nombre de la tabla al nombre de las columnas, utilizando el
formato Tabla.Columna. Además de nombres de columnas, en esta lista se pueden
poner constantes, expresiones aritméticas, y funciones, para obtener campos
calculados de manera dinámica.
Si queremos que nos devuelva todos los campos de la tabla utilizamos el comodín
“*” (asterisco).
Los nombres indicados deben coincidir exactamente con los nombre de los campos
de la tabla, pero si queremos que en nuestra tabla lógica de resultados tengan un
nombre diferente podemos utilizar:
AS
Permite renombrar columnas si lo utilizamos en la cláusula SELECT, o renombrar
tablas si lo utilizamos en la cláusula FROM. Es opcional. Con ello podremos crear
diversos alias de columnas y tablas. Enseguida veremos un ejemplo.
FROM
Esta cláusula permite indicar las tablas o vistas de las cuales vamos a obtener la
información. De momento veremos ejemplos para obtener información de una sola
tabla.
Como se ha indicado anteriormente, también se pueden renombrar las tablas
usando la instrucción “AS”.
WHERE
Especifica la condición de filtro de las filas devueltas. Se utiliza cuando no se
desea que se devuelvan todas las filas de una tabla, sino sólo las que cumplen
ciertas condiciones. Lo habitual es utilizar esta cláusula en la mayoría de las
consultas.
Condiciones
Son expresiones lógicas a comprobar para la condición de filtro, que tras su
resolución devuelven para cada fila TRUE o FALSE, en función de que se cumplan
o no. Se puede utilizar cualquier expresión lógica y en ella utilizar diversos
operadores como:
 > (Mayor)
 >= (Mayor o igual)
 < (Menor)
 <= (Menor o igual)
 = (Igual)
 <> o != (Distinto)
 IS [NOT] NULL (para comprobar si el valor de una columna es o no es nula,
es decir, si contiene o no contiene algún valor)
Se dice que una columna de una fila es NULL si está completamente vacía. Hay
que tener en cuenta que si se ha introducido cualquier dato, incluso en un campo
alfanumérico si se introduce una cadena en blanco o un cero en un campo numérico,
deja de ser NULL.
 LIKE: para la comparación de un modelo. Para ello utiliza los caracteres
comodín especiales: “%” y “_”. Con el primero indicamos que en su lugar
puede ir cualquier cadena de caracteres, y con el segundo que puede ir
cualquier carácter individual (un solo carácter). Con la combinación de estos
caracteres podremos obtener múltiples patrones de búsqueda. Por ejemplo:
o El nombre empieza por A: Nombre LIKE ‘A%’
o El nombre acaba por A: Nombre LIKE ‘%A’
o El nombre contiene la letra A: Nombre LIKE ‘%A%’
o El nombre empieza por A y después contiene un solo carácter
cualquiera: Nombre LIKE ‘A_’
o El nombre empieza una A, después cualquier carácter, luego una E y
al final cualquier cadena de caracteres: Nombre LIKE ‘A_E%’
 BETWEEN: para un intervalo de valores. Por ejemplo:
o Clientes entre el 30 y el 100: CodCliente BETWEEN 30 AND 100
o Clientes nacidos entre 1970 y 1979: FechaNac BETWEEN ‘19700101’
AND ‘19791231’
 IN( ): para especificar una relación de valores concretos. Por ejemplo: Ventas
de los Clientes 10, 15, 30 y 75: CodCliente IN(10, 15, 30, 75)
Por supuesto es posible combinar varias condiciones simples de los operadores
anteriores utilizando los operadores lógicos OR, AND y NOT, así como el uso de
paréntesis para controlar la prioridad de los operadores (como en matemáticas). Por
ejemplo: … (Cliente = 100 AND Provincia = 30) OR Ventas > 1000 … que sería
para los clientes de las provincias 100 y 30 o cualquier cliente cuyas ventas superen
1000.
ORDER BY
Define el orden de las filas del conjunto de resultados. Se especifica el campo o
campos (separados por comas) por los cuales queremos ordenar los resultados.
ASC / DESC
ASC es el valor predeterminado, especifica que la columna indicad en la cláusula
ORDER BY se ordenará de forma ascendente, o sea, de menor a mayor. Si por el
contrario se especifica DESC se ordenará de forma descendente (de mayor a
menor).
Por ejemplo, para ordenar los resultados de forma ascendente por ciudad, y los que
sean de la misma ciudad de forma descendente por nombre, utilizaríamos esta
cláusula de ordenación:
… ORDER BY Ciudad, Nombre DESC …
Como a la columna Ciudad no le hemos puesto ASC o DESC se usará para la
misma el valor predeterminado (que es ASC)
OJO: Aunque al principio si aún no se está habituado, pueda dar la impresión de
que se ordena por ambas columnas en orden descendente. Si es eso lo que
queremos deberemos escribir … ORDER BY Ciudad DESC, Nombre DESC …
Algunos ejemplos
Para terminar este repaso a las consultas simples practicarlas un poco, veamos
algunos ejemplos con la base de datos Northwind en SQL Server:
- Mostrar todos los datos de los Clientes de nuestra empresa:
SELECT * FROM Customers
- Mostrar apellido, ciudad y región (LastName, city, region) de los empleados de
USA (nótese el uso de AS para darle el nombre en español a los campos devueltos):
SELECT E.LastName AS Apellido, City AS Ciudad, Region
FROM Employees AS E
WHERE Country = ‘USA’
- Mostrar los clientes que no sabemos a qué región pertenecen (o sea, que no tienen
asociada ninguna región) :
SELECT * FROM Customers WHERE Region IS NULL
- Mostrar las distintas regiones de las que tenemos algún cliente, accediendo sólo
a la tabla de clientes:
SELECT DISTINCT Region FROM Customers WHERE Region IS NOT NULL
- Mostrar los clientes que pertenecen a las regiones CA, MT o WA, ordenados por
región ascendentemente y por nombre descendentemente.
CODE SELECT * FROM Customers WHERE Region IN(‘CA’, ‘MT’, ‘WA’)
ORDER BY Region, CompanyName DESC
- Mostrar los clientes cuyo nombre empieza por la letra “W”:
SELECT * FROM Customers WHERE CompanyName LIKE ‘W%’
- Mostrar los empleados cuyo código está entre el 2 y el 9:
SELECT * FROM Employees WHERE EmployeeID BETWEEN 2 AND 9
- Mostrar los clientes cuya dirección contenga “ki”:
SELECT * FROM Customers WHERE Address LIKE ‘%ki%’
- Mostrar las Ventas del producto 65 con cantidades entre 5 y 10, o que no tengan
descuento:
SELECT * FROM [Order Details] WHERE (ProductID = 65 AND Quantity BETWEEN
5 AND 10) OR Dis
BIBLIOGRAFIA

Silbertschatz, A., Korth, Sudarshan S. (2002) Fundamentos de bases de datos.


México. Mc Graw Hill, (Cuarta edición).
 Piatini Mario, Castañon Adoración de Miguel. (1999). Fundamentos y modelos de
bases de datos. (Segunda edición). México. Alfaomega ra-ma.
 R. Rebeca. (2000). Diseño de bases de datos relacionales con Access y SQL
server. Mc. Graw Hill.

También podría gustarte