martes, 24 de febrero de 2009

Unidad 7. Las Consultas

Para crear una consulta, seguir los siguientes pasos: Abrir la base de datos donde se encuentra la consulta a crear. Hacer clic en el botón Diseño de Consulta en la pestaña Crear
También tenemos la posibilidad de utilizar el Asistente para consultas que puedes ver en la imagen anterior para crear consultas con un poco de ayuda.
Si haces clic en el botón Asistente para consultas aparecerá el siguiente cuadro de diálogo:


Los otros asistentes nos permiten generar tipos especiales de consulta que veremos más adelante.



Los otros asistentes nos permiten generar tipos especiales de consulta que veremos más adelante.


Cada columna de la cuadrícula QBE corresponde a un campo.
Cada fila tiene un propósito que detallamos brevemente a continuación, más adelante iremos profundizando en la explicación:
Campo: ahí ponemos el campo a utilizar que en la mayoría de los casos será el campo a visualizar, puede ser el nombre de un campo de la tabla y también puede ser un campo calculado.

Tabla: nombre de la tabla de la que sacamos el campo. Nos será útil cuando definamos consultas basadas en varias tablas.

Orden: sirve para ordenar las filas del resultado.

Mostrar: si la casilla de verificación aparece desactivada la columna no aparecerá en el resultado, se suele desactivar cuando queremos utilizar el campo para definir la consulta pero no queremos que aparezca en el resultado
Criterios: sirve para especificar un criterio de búsqueda. Un criterio de búsqueda es una condición que deben cumplir los registros que aparecerán en el resultado de la consulta
Añadir campos
Hacer doble clic sobre el nombre del campo que aparece en la zona de tablas, este se colocará en la primera columna libre de la cuadrícula.

Hacer clic sobre el nombre del campo que aparece en la zona de tablas y sin soltar el botón del ratón arrastrar el campo sobre la cuadrícula, soltar el botón cuando estemos sobre la columna delante de la cual queremos dejar el campo que estamos añadiendo.

Hacer clic sobre la fila Campo: de una columna vacía de la rejilla, aparecerá a la derecha la flecha para desplegar la lista de todos los campos de todas las tablas que aparecen en la zona de tablas.
Si tenemos muchos campos y varias tablas podemos reducir la lista seleccionando primero una tabla en la fila Tabla:, así en la lista desplegable sólo aparecerán campos de la tabla seleccionada.

También podemos teclear directamente el nombre del campo en la fila Campo: de una columna vacía de la cuadrícula.
Los campos calculados son campos obtenidos del resultado de una expresión o de una función.
Si quieres saber más sobre cómo formar expresiones
Podemos cambiar el encabezado de las columnas del resultado de la consulta.

Normalmente aparece en el encabezado de la columna el nombre de la columna, si queremos cambiar ese encabezado lo indicamos en la fila Campo: escribiéndolo delante del nombre del campo y seguido de dos puntos ( : ). Se suele utilizar sobre todo para los campos calculados.
Si hemos incluido campos en la cuadrícula y queremos cambiar el orden de estos campos podemos mover una columna (o varias) arrastrándola o bien cortando y pegando.

Para mover una columna arrastrándola:
Posicionar el cursor sobre el extremo superior de la columna y cuando aparece la flecha hacer clic, la columna aparecerá resaltada (está seleccionada).

Mover un poco el cursor para que aparezca la flecha . Pulsar el botón del ratón y sin soltarlo arrastrar la columna hasta la posición deseada.

Para mover una columna cortándola:
Seleccionar la columna (posicionar el cursor sobre el extremo superior de la columna y cuando aparece la flecha hacer clic).

Hacer clic sobre el icono en la pestaña Inicio (o bien teclear Ctrl+X), desaparecerá la columna.
Podemos Guardar la consulta
haciendo clic sobre el botón de la barra de Acceso Rápido,
o bien,
seleccionando la opción Guardar del Botón de Office .

Si es la primera vez que guardamos la consulta aparecerá el cuadro de diálogo para darle un nombre.

Se puede poner cualquier nombre excepto el de una tabla ya creada.
A continuación hacer clic sobre el botón Aceptar.

Para cerrar la consulta hacer clic sobre su botón .
Podemos ejecutar una consulta desde la ventana Diseño de consulta o bien desde el Panel de Exploración.

Desde el Panel de Exploración:
Haciendo doble clic sobre su nombre.
Para seleccionar filas tenemos que indicar un criterio de búsqueda, un criterio de búsqueda es una condición que deberán cumplir todas las filas que aparezcan en el resultado de la consulta.
Normalmente la condición estará basada en un campo de la tabla por ejemplo para seleccionar los alumnos de Valencia la condición sería población = "Valencia". Para escribir esta condición en la cuadrícula tenemos que tener en una de las columnas de la cuadrícula el campo poblacion y en esa columna ponemos en la fila Criterios: el resto de la condición o sea ="Valencia".
Para indicar varias condiciones se emplean los operadores Y y O.
En un criterio de búsqueda en el que las condiciones están unidas por el operador Y, para que el registro aparezca se deben cumplir todas las condiciones.

Del mismo modo pasa con cada una de las filas o:
Si queremos que las condiciones queden unidas por el operador O tenemos que colocarlas en filas distintas (utilizando las filas O: y siguientes).

A menudo, en una consulta necesitamos utilizar un valor que no es conocido en ese momento sino que queremos que lo introduzca el usuario cuando se ejecute la consulta. Por ejemplo, queremos hacer una consulta para obtener los alumnos de una determinada Población, la población la introducirá el usuario cuando Access se lo pida.
En este caso necesitamos utilizar en nuestra consulta un parámetro.
Un parámetro funciona de forma parecida a un campo de tabla, pero el valor que almacena lo introduce el usuario cuando se ejecuta la consulta.

Ojo! cuando pongamos el nombre del parámetro es importante escribirlo entre corchetes, de lo contrario Access le añadirá comillas y no lo considerará como un nombre de parámetro sino como un valor.

En este caso, después de elegir la opción, se abre el cuadro de diálogo Parámetros de la consulta donde podemos indicar el nombre del parámetro y el tipo de dato.

Una consulta multitabla es una consulta que obtiene datos de varias tablas por lo que deberá contener en la zona de tablas de la ventana Diseño las distintas tablas de donde obtiene esos datos.

Si las tablas no están relacionadas o no tienen campos con el mismo nombre, la consulta obtiene la concatenación de todas las filas de la primera tabla con todas las filas de la segunda tabla, si tenemos una tercera tabla concatenará cada una de las filas obtenidas en el primer paso con cada una de las filas de la tercera tabla, y así sucesivamente. Vemos que no interesa basar la consulta en muchas tablas ya que el resultado de la concatenación puede alcanzar dimensiones gigantescas.
Combinamos dos tablas por un campo (o varios) de unión de la misma forma que relacionamos tablas en la ventana Relaciones arrastrando el campo de unión de una de las tablas sobre el campo de unión de la otra tabla. De hecho si añadimos a la zona de tablas tablas relacionadas, estas aparecerán automáticamente combinadas en la zona de tablas de la ventana Diseño de Consulta.
También se combinan automáticamente tablas que tengan un campo con el mismo nombre en las dos tablas aunque no exista una relación definidad entre ellas.

Las composiciones vistas hasta ahora son composiciones internas ya que todos los valores de las filas del resultado son valores que están en las tablas que se combinan.
Con una composición interna sólo se obtienen las filas que tienen al menos una fila de la otra tabla que cumpla la condición

La composición externa se utiliza cuando queremos que también aparezcan las filas que no tienen una fila coincidente en la otra tabla.
Este tipo de combinación se define de la siguiente manera:
Añadir las dos tablas a la zona de tablas de la consulta.
Combinar las dos tablas por los campos de unión:
Hacer doble clic sobre la línea que une las dos tablas.



combinación aparecerá de la siguiente forma:

sentido de la flecha nos indica de qué tabla obtendremos todos los registros.


En Access podemos definir un tipo de consultas cuyas filas resultantes son un resumen de las filas del origen de la consulta , por eso las denominamos consultas de resumen, también se conocen como consultas sumarias.
Es importante entender que las filas del resultado de una consulta de resumen tienen una naturaleza distinta a las filas de las demás tablas resultantes de consultas, ya que corresponden a varias filas de la tabla origen.


En cualquiera de los dos casos se añade una fila a la cuadrícula QBE, la fila Total:
Todas las columnas que incluyamos en la cuadrícula deberán tener un valor en esa fila, ese valor le indicará a Access qué hacer con los valores contenidos en el campo escrito en la fila Campo:

La opción Suma calcula la suma de los valores indicados en el campo. Los datos que se suman deben ser de tipo numérico (entero, decimal, coma flotante o monetario...). El resultado será del mismo tipo aunque puede tener una precisión mayor.

La opción Promedio calcula el promedio (la media aritmética) de los valores contenidos en el campo, también se aplica a datos numéricos, y en este caso el tipo de dato del resultado puede cambiar según las necesidades del sistema para representar el valor del resultado.

La opción DesvEst calcula la desviación estándar de los valores contenidos en la columna indicada en el argumento. Si la consulta base (el origen) tiene menos de dos registros, el resultado es nulo.
La opción Var calcula la varianza de los valores contenidos en la columna indicada en el argumento. Si la consulta base (el origen) tiene menos de dos registros, el resultado es nulo.

Es interesante destacar que el valor nulo no equivale al valor 0, las funciones de resumen no consideran los valores nulos mientras que consideran el valor 0 como un valor, por lo tanto en el promedio y la desviación estándar los resultados no serán los mismos con valores 0 que con valores nulos.


Para que cuente en número de registros hay que utilizar la función Cuenta(*) devuelve el número de filas por lo tanto contará también los valores nulos. En este caso tenemos que seleccionar la opción Expresión y escribirlo así:

La opción AgruparPor permite definir columnas de agrupación. Una consulta de resumen sin columnas de agrupación obtiene una única fila resultado y los cálculos se realizan sobre todos los registros del origen.
Cuando se incluye una columna de agrupación Access forma grupos con todos los registros que tienen el mismo valor en la columna de agrupación y cada grupo así formado genera una fila en el resultado de la consulta y además todos los cálculos definidos se realizan sobre los registros de cada grupo. De esta forma se pueden obtener subtotales.
Los campos de tipo memo u OLE no se pueden definir como columnas de agrupación.
Se pueden agrupar las filas por varias columnas, en este caso se agrupan los registros que contienen el mismo valor en cada una de las columnas de agrupación.





La opción Dónde permite poner un criterio de búsqueda que se aplicará a las filas del origen de la consulta antes de realizar los cálculos. Por ejemplo queremos saber cuántos alumnos tenemos de Valencia, para ello tenemos que contar los registros de la tabla alumnado pero seleccionando previamente los de Valencia, esto se definiría de la siguiente forma:


Se define una consulta de referencias cruzadas cuando queremos representar una consulta resumen con dos columnas de agrupación como una tabla de doble entrada en la que cada una de las columnas de agrupación es una entrada de la tabla
La consulta quedaría mucho más elegante y clara presentando los datos en un formato más compacto como el siguiente

Pues este último resultado se obtiene mediante una consulta de referencias cruzadas.

2 comentarios:

Angelica Mendez dijo...

hola pedro!! me parese muy buena informacion solo que te falto sintetisarlo un poco para que no sea tan tedioso y tiene muy buenas imagenes para aprender mas rapido buen trabajo!!

Jonathan Magaña Pedraza dijo...

bien hecho amigooo...

recopilaste buena informacioón...