Powered By Blogger

lunes, 13 de diciembre de 2010

CONSULTAS RESUMEN Y REFERENCIAS CRUZADAS


CONSULTAS RESUMEN

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.
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.
Para simplificar, veamos el caso de una consulta basada en una sola tabla, una fila de una consulta 'no resumen' corresponde a una fila de la tabla origen, contiene datos que se encuentran en una sola fila del origen, mientras que una fila de una consulta de resumen corresponde a un resumen de varias filas de la tabla origen, esta diferencia es lo que va a originar una serie de restricciones que sufren las consultas de resumen y que veremos a lo largo del tema. Por ejemplo este tipo de consulta no permite modificar los datos del origen.
En el ejemplo que viene a continuación tienes un ejemplo de consulta normal en la que se visualizan las filas de una tabla de oficinas ordenadas por región, en este caso cada fila del resultado se corresponde con una sola fila de la tabla oficinas, mientras que la segunda consulta es una consulta resumen, cada fila del resultado se corresponde con una o varias filas de la tabla oficinas.
Una consulta de resumen se define haciendo clic sobre el botón Totales en la pestaña de Diseño.
  • En cualquiera de los dos casos se añade una fila a la cuadrícula QBE, la fila Total:
  • 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:
  • Los valores que podemos indicar en la fila Total: son los que aparecen al desplegar la lista asociada a la celda como puedes ver en la imagen de la derecha:


Las funciones de agregado
Funciones que obtiene un resultado basado en los valores contenidos en una columna de una tabla, se pueden utilizar en una consulta de resumen ya que obtienen un 'resumen' de los valores contenidos en las filas de la tabla.
Podemos escribirlas directamente en la fila Campo: de la cuadrícula como veremos más adelante pero podemos utilizar una forma más cómoda que es seleccionando en la fila Total: de la cuadrícula la opción correspondiente a la función.
A continuación describiremos esas opciones.
  • 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
  • Promedio: calcula el promedio (la media aritmética) de los valores contenidos en el campo, el resultado puede cambiar según las necesidades del sistema para representar el valor del resultado.
  • 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.
  • 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.
  • Mín y Max: determinan valores menores y mayores respectivamente de la columna. Los valores de la columna pueden ser de tipo numérico, texto o fecha. El resultado de la función tendrá el mismo tipo de dato que la columna. Si la columna es de tipo numérico Mín devuelve el valor menor contenido en la columna, si la columna es de tipo texto Mín devuelve el primer valor en orden alfabético, y si la columna es de tipo fecha, Mín devuelve la fecha más antigua y Max la fecha más posterior.
  • Primero y Último: obtiene el primer y último registro del grupo sobre el que se realizan los cálculos. El orden lo determina el orden cronológico en el que se escribieron los registros.
  • Cuenta: cuenta el número de valores que hay en la columna, los datos de la columna pueden ser de cualquier tipo, y la función siempre devuelve un número entero. Si la columna contiene valores nulos esos valores no se cuentan, si en la columna aparece un valor repetido, lo cuenta varias veces. 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í:
  
Agrupar registros
 
Agrupar Registros

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.

Ejemplo: queremos saber cuántos alumnos tenemos en cada población. Tenemos que indicar que queremos contar los registros de la tabla Alumnado pero antes agrupándolos por el campo Poblacion. De esta manera la función cuenta() la calculará sobre cada grupo de registros (los alumnos de la misma población). La consulta quedaría así:
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.
  • Todas las filas que tienen valor nulo en la columna de agrupación, pasan a formar un único grupo.

Incluir Expresiones

Expresión: permite poner en la fila Campo: una expresión en vez de un nombre de columna, tiene ciertas limitaciones. Sólo puede contener operandos que sean funciones de agregado (las funciones que acabamos de ver (suma( ), Promedio( ), DesvEst( ), Mín( ), Max( )...) valores fijos o nombres de columna que aparezcan con la opción AgruparPor.
En una expresión se pueden combinar varias funciones de agregado pero no se pueden anidar funciones de agregado, por ejemplo en una expresión puedo poner Max(nºhoras)-Mín(nºhoras) pero no Max(suma(nºhoras)).

Incluir criterios de busqueda
Permite poner un criterio de búsqueda que se aplicará a las filas del origen de la consulta antes de realizar los cálculos. (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):

También se puede incluir un criterio de búsqueda en una columna que no tenga la opción Dónde, en este caso la condición se aplicará a las filas resultantes de la consulta.
Para la condición de selección se pueden utilizar los mismos operadores de condición que en una consulta normal, también se pueden escribir condiciones compuestas (unidas por los operadores OR, AND, NOT), existe una limitación, en la fila Criterios: no se podrá poner un nombre de columna si esta columna no es una columna de agrupación.


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.
Ejemplo: queremos obtener las ventas mensuales de nuestros empleados a partir de los pedidos vendidos. Tenemos que diseñar una consulta resumen calculando la suma de los importes de los pedidos agrupando por empleado y mes de la venta.
La consulta quedaría mejor si se presenta los datos en un formato más compacto como el siguiente:
Pues este último resultado se obtiene mediante una consulta de referencias cruzadas.
Observa que una de las columnas de agrupación (empleado) sigue definiendo las filas que aparecen (hay una fila por cada empleado), mientras que la otra columna de agrupación (mes) ahora sirve para definir las otras columnas, cada valor de mes define una columna en el resultado, y la celda en la intersección de un valor de empleado y un valor de mes es la columna resumen, la que contiene la función de agregado (la suma de importes).
Las consultas de referencias cruzadas se pueden crear desde la vista diseño pero es mucho más cómodo y rápido utilizar el asistente.



El asistente para consultas de referencias cruzadas
Clic en el botón Asistente para Consultas en la pestaña Crear:
Asistente para consultas
Elegir Asist. consultas de tabla ref.cruzadas del cuadro de diálogo.
Aparece la primera ventana del asistente:
Luego introducir el origen de la consulta, la tabla o consulta de donde cogerá los datos.
En el apartado Ver podemos elegir si queremos ver la lista de todas las Tablas, la lista de todas las Consultas o Ambas.
Si la consulta que estamos creando necesita sacar los datos de todos los registros de una sola tabla  se  utiliza como origen esa tabla, caso contrario definir una consulta normal para seleccionar las filas que entran en el origen o combinar varias tablas si la consulta que estamos creando necesita datos de varias tablas y esa consulta será el origen de la consulta de referencias cruzadas.
Clic sobre el nombre del origen elegido y Siguiente.

El asistente para consultas de referencias cruzadas (cont.)

El asistente introducir el encabezado de filas. Una de las columnas de agrupación servirá de encabezado de filas y la otra encabezado de columnas, si una de esas columnas puede contener muchos valores distintos y la otra pocos, elegiremos la primera como encabezado de filas y la segunda para encabezado de columnas.
Para seleccionar el encabezado de filas, clic sobre el campo y clic . Al pasar el campo a la lista Campos seleccionados: aparece en la zona inferior un ejemplo de cómo quedará la consulta; hemos seleccionado el campo nºhoras y vemos que en la consulta aparecerá una fila por cada valor distinto del campo nºhoras.
Si nos hemos equivocado de campo pulsamos el botón y el campo se quita de la lista de campos seleccionados.
Podemos seleccionar hasta tres campos. Si seleccionamos varios campos habrá en el resultado de la consulta tantas filas como combinaciones distintas de valores de esos tres campos hayan en el origen de la consulta.
Los botones con las flechas dobles son para pasar de golpe todos los campos.
A continuación pulsamos el botón Siguiente>
Aquí introducir el encabezado de columnas. Sólo podemos elegir un campo y por cada valor distinto existente en el origen, generará una columna con el valor como encabezado de columna.
En la parte inferior de la ventana se puede ver cómo quedará el resultado, vemos que al seleccionar el campo Fecha Inicio, aparecerá en el resultado de la consulta una columna por cada valor que se encuentre en la columna Fecha Inicio de la tabla Cursos.

El asistente para consultas de referencias cruzadas (cont.)

Como el campo que hemos elegido como encabezado de columna, es de tipo Fecha, el asistente nos permite refinar un poco más el encabezado de columna con la siguiente ventana:
Cuando el encabezado de columna es una fecha, normalmente querremos los totales no por cada fecha sino por mes, año o trimestre por eso el asistente nos pregunta en esta ventana qué tipo de agrupación queremos.
Por ejemplo hemos seleccionado el intervalo Mes, pues en el resultado aparecerá una columna por cada mes del año en vez de por cada fecha distinta. Aquí también podemos apreciar el efecto en la zona inferior de la ventana.
Después de pulsar el botón Siguiente.
Aquí nos pregunta qué valor debe calcular en la intersección de columna y fila.
En la lista Funciones: seleccionamos la función de agregado que permite calcular ese valor, y en la lista Campos: elegimos el campo sobre el cual actuará la función de agregado. Por ejemplo hemos seleccionado Codigo Curso y la función Cuenta, por lo tanto en cada intersección tendremos el número de cursos iniciados en ese mes con ese nº de horas.

El asistente nos permite también añadir a la consulta una columna resumen de cada fila, esta columna contiene la suma de los valores que se encuentran en la fila. En nuestro ejemplo me daría el número total de cursos con el nº de horas de la fila. Para que el asistente añada esta columna tenemos que activar la casilla Sí, incluir suma de filas.

El asistente para consultas de referencias cruzadas (cont.)

El asistente nos pregunta el nombre de la consulta, este nombre también será su título.
Antes de pulsar el botón Finalizar podemos elegir entre:
  • Ver la consulta en este caso veremos el resultado de la consulta, por ejemplo:

  • Modificar el diseño, si seleccionamos esta opción aparecerá la vista Diseño de consulta donde podremos modificar la definición de la consulta.
La Vista de Diseño


La vista diseño de una consulta de referencias cruzadas es muy parecida a la de una consulta resumen con una fila añadida, la fila Tab ref cruz.
Esta nueva fila define los conceptos que ya hemos visto con el asistente.







martes, 30 de noviembre de 2010

LAS CONSULTAS


Tipos de Consultas

Las consultas son los objetos de una base de datos que permiten recuperar datos de una tabla, modificarlos e incluso almacenar el resultado en otra tabla.
  • Consultas de selección.- aquellas que extraen o nos muestran datos. Muestran los datos de una tabla que cumplen los criterios especificados. Una vez obtenido el resultado se puede consultar los datos para modificarlos (podrá hacer o no según la consulta). Una consulta de selección genera una tabla lógica (porque no está físicamente en el disco duro sino en la memoria del ordenador y cada vez que se abre se vuelve a calcular).
  • Consultas de acción.- Realizan cambios a los registros. Hay varios tipos de consultas de acción, de eliminación, de actualización, de datos anexados y de creación de tablas.
  • Consultas específicas de SQL.- No se pueden definir desde la cuadrícula QBE de Access sino que se tienen que definir directamente en SQL.
Crear una consulta

Pasos a seguir:
Abrir la base de datos donde se encuentra la consulta a crear y clic en el botón Diseño de Consulta en la pestaña Crear:
Diseño de consulta
Utilizar el Asistente para consultas que se ve en la imagen anterior para crear consultas con un poco de ayuda.
Si se hace clic en el botón Asistente para consultas aparecerá el siguiente cuadro de diálogo:

 Al entrar en la Vista Diseño de consulta nos pide primero las tablas de las que la consulta sacará los datos con un cuadro de diálogo parecido al siguiente:
Seleccionar la tabla de la que queremos sacar datos y clic sobre el botón Agregar.
Si queremos sacar datos de varias tablas agregar de la misma forma las demás tablas.
Finalmente Cerrar.

Aparecerá la ventana Vista Diseño de consultas.








 
Si observas la pantalla, en la parte superior tenemos la zona de tablas donde aparecen las tablas añadidas con sus correspondientes campos, y en la parte inferior denominada cuadrícula QBE definimos la consulta.
Cada columna de la cuadrícula QBE corresponde a un campo.
Campo: ahí ponemos el campo a visualizar; nombre de un campo de la tabla y también un campo calculado.
Tabla: nombre de la tabla de la que sacamos el campo, además sirve para definirconsultas en varias tablas.
Orden: ordena las filas del resultado.
Mostrar:  por ejemplo si queremos que la consulta nos saque todos los alumnos de Valencia, necesitamos el campo Poblacion para seleccionar los alumnos pero no queremos que aparezca la población en el resultado ya que todos son de la misma población.
Criterios: especifica un criterio de búsqueda. "condición que deben cumplir los registros que aparecerán en el resultado de la consulta".
O: esta fila y las siguientes se utilizan para combinar condiciones.

 
Añadir Campos

  • Doble clic sobre el nombre del campo que aparece en la zona de tablas, y se colocará en la primera columna libre de la cuadrícula.
  • 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 esté sobre la columna delante de la cual se deja el campo que está añadiendo.
  • 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.
  • Teclear directamente el nombre del campo en la fila Campo: de una columna vacía de la cuadrícula.
  • Si se quiere que todos los campos de la tabla aparezcan en el resultado de la consulta se utiliza el asterisco * (sinónimo de 'todos los campos').

Definir campos calculados
 
Los campos calculados son campos obtenidos del resultado de una expresión o de una función.
Encabezados de columna
 
Se puedecambiar el encabezado de las columnas del resultado de la consulta.
Generalmente aparece en el encabezado de la columna el nombre de la columna, si quiere 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.
En la consulta que aparece más arriba tienes el ejemplo de la segunda columna, esta tendrá en el encabezado Mes_Factura y en la columna se visualizará el mes de la fecha de la factura (tenemos un campo calculado que utiliza la función mes( ), función que obtiene el mes de una fecha).

Cambiar el orden de los campos
 
Si se ha incluido campos en la cuadrícula y se desea 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). 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 y aparece hacer clic). Luego clic en .

Luego crear una columna en blanco en el lugar donde queremos mover la columna que hemos cortado con la opción Insertar Columnas de la pestaña Diseño.
Seleccionar esa columna y clic sobre el icono Pegar la pestaña Inicio (o bien teclear Ctrl+V).

Para seleccionar varias columnas consecutivas, seleccionando la primera y manteniendo la tecla May pulsada, se seleccionarán las dos y todas las columnas que se encuentren entre las dos.

 
Guardar la Consulta

  • clic sobre   o bien, luego cerrar la consulta y clic sobre Cerrar.

 
Ejecutar la Consulta

  • Desde el Panel de Exploración: haciendo doble clic en su nombre.
  • Desde la vista diseño de la consulta: dando clic en el botón Ejecutar de la pestaña Diseño:

Nota: visualizando el resultado de una consulta, lo que vemos realmente es la parte de la tabla que cumple los criterios especificados, por lo tanto si modificamos algún dato de los que aparecen en la consulta estaremos modificando el dato en la tabla (excepto algunas consultas que no permiten esas modificaciones).
 
 
Modificar el diseño de una consulta

Si queremos modificar el diseño de una consulta clic derecho sobre el nombre de la consulta Vista Diseño
 
Ordenar las Filas

Para ordenar las filas del resultado de la consulta clic sobre la fila Orden: del campo por el cual queremos ordenar las filas, clic para desplegar la lista y elegir el tipo de ordenación, este puede ser Ascendente de menor a mayor, si el campo es numérico por orden alfabético, si el campo es de tipo texto, de anterior a posterior si el campo es de tipo fecha/hora, etc..., o bien puede ser Descendente en orden inverso.

El tipo de ordenación es independiente por lo que se puede utilizar una ordenación distinta para cada columna.

Seleccionar Filas

Para seleccionar filas indicamos un criterio de búsqueda (condición que deberán cumplir todas las filas que aparezcan en el resultado de la consulta).
Cuando la condición es una igualdad no es necesario poner el signo =, podemos poner directamente el valor cualquiera en la fila Criterios; si no ponemos operador asume por defecto el =.
Siempre que se encuentra un texto lo encierra entre comillas.
Si en la fila Criterios: queremos poner un nombre de campo en vez de un valor (para comparar dos campos entre sí) tenemos que encerrar el nombre del campo entre corchetes [ ]. Por ejemplo queremos poner la condición precio = coste en la que precio y coste son dos campos, tenemos que poner en la fila criterios: [coste], si no ponemos los corchetes añadirá las comillas y entenderá Precio = "coste", precio igual al valor Coste no al contenido del campo Coste.

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. Por ejemplo precio > 100 y precio < 1200, aparecen los registros cuyo precio está comprendido entre 101 y 1199.
En un criterio de búsqueda en el que las condiciones están unidas por el operador O, el registro aparecerá en el resultado de la consulta si cumple al menos una de las condiciones.
Todas las condiciones establecidas en la misma fila de la cuadrícula quedan unidas por el operador Y.
En el ejemplo siguiente serían alumnos de Valencia Y cuya fecha de nacimiento esté comprendida entre el 1/1/60 y el 31/12/69.
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).
Por ejemplo, si en la cuadrícula QBE tenemos especificado los siguientes criterios:
Visualizaremos de la tabla Alumnado los campos Apellidos, Nombre, Población y Fecha nacimiento, los alumnos aparecerán ordenados por Apellidos pero únicamente aparecerán aquellos que sean de Valencia y hayan nacido entre el 1/1/60 y el 31/12/69, o bien aquellos de Alicante sea cual sea su fecha de nacimiento.
¡Ojo! El criterio de la fecha de nacimiento únicamente afecta a la población Valencia por encontrarse en la misma fila.
Access no diferencia entre mayúsculas y minúsculas a la hora de realizar la búsqueda de registros.

Consultas con parámetros

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, 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.
En una consulta cuando utilizamos un nombre de campo que no está en el origen de datos, Access considera este campo como un parámetro y cuando se ejecuta la consulta nos pide Introducir el valor del parámetro mediante un cuadro de diálogo como este:
En el ejemplo anterior, en la consulta tendríamos que añadir una condición de búsqueda que especifique que la Población es igual al Valor a introducir, de esta manera:
Ojo cuando pongamos el nombre del parámetro es importante escribirlo entre [ ], de lo contrario Access le añadirá comillas y no lo considerará como un nombre de parámetro, sino como un valor.
Otra forma de utilizar un parámetro en una consulta es definiéndolo mediante el botón Parámetros de la pestaña Diseño.
Parámetros
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.
La diferencia entre escribir directamente un nombre de parámetro y definirlo con el botón Parámetros es que, si se asigna un tipo de dato, Access comprueba automáticamente el tipo del valor introducido por el usuario.


Consultas Multitabla
Consulta que obtiene datos de varias tablas por lo que contiene en la zona de tablas de la ventana DISEÑO las distintas tablas de donde obtiene esos datos.
Para añadir una tabla a la zona de tablas (una vez en la ventana Diseño de consulta) haremos clic en el botón MOSTRAR TABLA de la pestaña DISEÑO:

Mostrar Tabla

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.
Además, normalmente la mayoría de las concatenaciones obtenidas no nos sirven y entonces tenemos que añadir algún criterio de búsqueda para seleccionar las filas que al final nos interesan. Por ejemplo me puede interesar datos de la tabla Alumnado y de la tabla Cursos porque quiero sacar una lista con los datos de cada alumno y nombre del curso al que pertenece, en este caso no me interesa unir el alumno con cada uno de los cursos sino unirlo al curso que tiene asignado; en este caso tenemos que combinar las dos tablas.
Combinar tablas
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 definida entre ellas.
Cuando dos tablas están combinadas en una consulta, para cada fila de una de las tablas Access busca directamente en la otra tabla las filas que tienen el mismo valor en el campo de unión, con lo cual se emparejan sólo las filas que luego aparecen en el resultado y la consulta es más eficiente.
Cuando las tablas están combinadas aparecen en la ventana diseño de la consulta de la siguiente manera:


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, por ejemplo: en la lista de alumnos comentada anteriormente no saldrán los alumnos que no tengan curso asignado.
Pues en los casos en que queremos que también aparezcan las filas que no tienen una fila coincidente en la otra tabla, utilizaremos la COMPOSICIÓN EXTERNA.
La composición externa
La composición externa se utiliza cuando queremos que también aparezcan las filas que no tienen una fila coincidente en la otra tabla.
  • 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.
  • En el cuadro de diálogo que aparecerá haz clic en el botón Tipo de combinación.
Aparece el cuadro de diálogo PROPIEDADES DE LA COMBINACIÓN


Por defecto la combinación es interna (incluye sólo las filas donde los campos combinados (campos de unión) de ambas tablas sean iguales), si queremos definir una combinación externa deberemos seleccionar la opción 2 o la 3 según lo que queramos obtener.

Si seleccionamos la opción 2,
,
la combinación aparecerá de la siguiente forma:
Si seleccionamos la opción 3
,
la combinación aparecerá de la siguiente forma:
El sentido de la flecha nos indica de qué tabla obtendremos todos los registros.


miércoles, 24 de noviembre de 2010

LAS RELACIONES

Aquí relacionaremos las tablas y los diferentes tipos de relaciones que pueden existir entre dos tablas de una base de datos.
 
Relaciones
 
Una base de datos relacional permite la utilización simultánea de datos procedentes de más de una tabla .
Al hacer uso de las relaciones, evitamos la duplicidad de datos, ahorrando memoria y espacio en el disco, aumentando la velocidad de ejecución y facilitando al usuario el trabajo con tablas.

Para relacionar tablas entre sí, se deberá especificar un campo en común que contenga el mismo valor en las dos tablas y dicho campo será clave principal en una de ellas.
Las tablas se relacionan de dos a dos, donde una de ellas será la tabla principal (de la que parte relación) y la otra será la tabla secundaria (destino de la relación).
 


Tipos de Relaciones

  • Relación Uno a Uno: un registro de una tabla sólo puede estar relacionado con un único registro de la otra tabla y viceversa.
Por ejemplo: tenemos dos tablas una con los datos de diferentes poblaciones y otra con una lista de Alcaldes, una población sólo puede tener un alcalde, y un alcalde lo será únicamente de una población.

  • Relación Uno a Varios: un registro de una tabla (tabla secundaria) sólo puede estar relacionado con un único registro de la otra tabla (tabla principal) y un registro de la otra tabla (tabla principal) puede tener más de un registro relacionado en la primera tabla (tabla secundaria).
Por ejemplo: tenemos dos tablas una con los datos de diferentes poblaciones y otra con los habitantes, una población puede tener más de un habitante, pero un habitante pertenecerá (estará empadronado) en una única población. 

  • Relación Varios a Varios: un registro de una tabla puede estar relacionado con más de un registro de la otra tabla y viceversa.
Por ejemplo: tenemos dos tablas una con los datos de clientes y otra con los artículos que se venden en la empresa, un cliente podrá realizar un pedido con varios artículos, y un artículo podrá ser vendido a más de un cliente. 
Las relaciones varios a varios se suelen representar definiendo una tabla intermedia entre las dos tablas. Siguiendo el ejemplo anterior sería definir una tabla líneas de pedido relacionada con clientes y con artículos.

lunes, 15 de noviembre de 2010

MODIFICACIÓN DE TABLAS Y PROPIEDADES DE LOS CAMPOS

Modificar el diseño de una tabla.
 
Si creada una tabla, cambiamos algo de su definición (por ejemplo, añadir una nueva columna, ampliar una columna que ya existe, borrar una columna) modificaremos su diseño, para esto damos clic derecho sobre la tabla y escojemos la opción "Vista Diseño"

Vista Diseño

Para modificar la definición de un campo, posicionar el cursor sobre el campo a modificar y realizar lo siguiente:

Para añadir un nuevo campo:
Vamos al final de la tabla y escribir la definición del nuevo campo, o nos situamos en uno de los campos ya creados y clic en el botón de la pestaña Diseño, en este último caso el nuevo campo se insertará delante del que estamos posicionados.

Para eliminar un campo:
Nos posicionamos en el campo y clic en el botón de la pestaña Diseño, o se selecciona toda la fila correspondiente al campo haciendo clic en su extremo izquierdo y cuando esté remarcada pulsamos la tecla Supr o Del. Se borrará el campo de la definición de la tabla y los datos almacenados en el campo también desaparecerán.

Por último, guardar la tabla:

Introducir y modificar datos en una tabla:
Hacer doble clic sobre el nombre de la tabla en el Panel de Exploración.
Desde el Panel de Exploración hacer clic derecho sobre la tabla a rellenar y seleccionar la opción Abrir en el menú contextual.
Si estamos en la vista de Diseño de tabla, hacer clic sobre el botón Vistas de objeto y elegir Vista Hoja de datos en la pestaña Inicio o diseño.
Vistas de Objeto
En los tres casos aparecerá la ventana Hoja de datos:

Si lo que queremos es borrar un registro entero, seleccionamos el registro a eliminar dando clic sobre el cuadro de la izquierda del registro.
El registro quedará seleccionado, pulsando la tecla SUPR del teclado o clic en el boton Eliminar que se encuentra en el panel Registros de la pestaña Inicio.
Registros -> Eliminar
Si lo que queremos es modificar algún valor introducido no tenemos más que situarnos sobre el valor a modificar y volverlo a escribir.
Si queremos cambiar algo de la estructura de la tabla, tenemos que pasar a la Vista Diseño haciendo clic sobre el botón de Vista de objeto de la pestaña Inicio.
Vista Diseño
 

Desplazarse dentro de una tabla
 
Para desplazarse por los diferentes registros de una tabla se utiliza la barra de desplazamiento:
La barra nos indica en qué registro estamos situados y el número total de registros de la tabla, el recuadro en blanco nos está diciendo el registro actual. Al final donde pone de 3 nos indica el número total de registros que en este caso es tres.
Haciendo clic sobre los diferentes botones realizaremos las operaciones indicadas a continuación:
para ir al primer registro de la tabla.
para ir al registro anterior en la tabla.
para ir al registro siguiente en la tabla.
para ir al último registro de la tabla.
para crear un nuevo registro que se situará automáticamente al final de la tabla. 

Se puede ir también directamente a un registro determinado de la siguiente forma:
Haciendo doble clic sobre el cuadro en blanco donde pone el número del registro actual o escribiendo el número del registro al cual queremos ir y pulsar "INTRO".

También podemos desplazarnos por los diferentes campos con las teclas FLECHA ABAJO, ARRIBA,  IZQUIERDA y DERECHA.

Buscar y reemplazar datos.
Para buscar algún registro conociendo el valor de alguno de sus campos usamos la herramienta y visualizamos los datos; por ejemplo con la vista Hoja de datos, a continuación posicionar el cursor en el campo donde queremos buscar y finalmente hacer clic en el botón Find de la pestaña Inicio:
Buscar
Aparecerá el cuadro de diálogo Buscar y reemplazar siguiente:
  • En el cuadro Buscar: escribimos el valor a buscar.
  • En el cuadro Buscar en: indicamos el campo donde se encuentra el valor a buscar. Por defecto coge el campo donde tenemos el cursor en ese momento, si queremos que busque en cualquier campo seleccionamos de la lista el nombre de la tabla.
  • En el cuadro Coincidir: elegimos entre estas tres opciones:

Hacer coincidir todo el campo; para que el valor buscado coincida exactamente con el valor introducido en el campo.
Cualquier parte del campo; para que el valor buscado se encuentre en el campo pero no tiene porque coincidir exactamente con él.
Comienzo del campo; para que el valor buscado sea la parte inicial del campo.
Después podemos buscar:

Todos para buscar en todos los registros de la tabla.
Arriba para buscar a partir del primer registro hasta el registro en el que nos encontramos situados.
Abajo para buscar a partir del registro en el cual nos encontramos situados y hasta el último.

Si activamos la casilla Mayúsculas y minúsculas diferencia a la hora de buscar entre mayúsculas y minúsculas (si buscamos María no encontrará maría).
Hacemos clic sobre el botón Buscar siguiente para empezar la búsqueda y se posicionará en el primer registro que cumpla la condición de búsqueda. Si queremos seguir la búsqueda, hacer clic sobre el botón Buscar siguiente sucesivamente para encontrar todos los valores que buscamos.
Luego cerrar el cuadro de diálogo.

Si queremos sustituir un valor por otro utilizaremos la opción "Reemplazar".
Para usar esta herramienta visualizamos los datos; ejemplo con la vista Hoja de datos a continuación posicionar el cursor en el campo donde queremos reemplazar y finalmente clic en el botón "Reemplazar" Reemplazar del marco Buscar de la pestaña Inicio.
O hacemos clic sobre el botón Buscar en el mismo sitio y seleccionar la pestaña "Reemplazar".

La pestaña "Reemplazar" tiene las mismas opciones que para buscar y además un cuadro para introducir el valor de sustitución, el cuadro Reemplazar por: y un botón Reemplazar que reemplaza el valor donde nos encontramos en ese momento, y un botón Reemplazar todos que sustituye todos los valores encontrados por el de sustitución.
Esta opción hay que utilizarla con mucho cuidado porque pueden ocurrir resultados inesperados sobre todo si no utilizamos la opción Hacer coincidir todo el campo.




Propiedades de los campos (I)
 
Cada campo de una tabla dispone de una serie de características que proporcionan un control adicional sobre la forma de funcionar del campo.
Las propiedades aparecen en la parte inferior izquierda de la vista Diseño de tabla cuando tenemos un campo seleccionado.
Las propiedades se agrupan en dos pestañas, la pestaña General donde indicamos las características generales del campo y la pestaña Búsqueda en la que podemos definir una lista de valores válidos para el campo.
Las propiedades de la pestaña "General" pueden cambiar para un tipo de dato u otro mientras que las propiedades de la pestaña "Búsqueda" cambian según el tipo de control asociado al campo.
Si se modifican las propiedades de un campo después de haber introducido datos en él se pueden perder estos datos introducidos.

Tamaño del campo
 
Para los campos "Texto", esta propiedad determina el número máximo de caracteres que se pueden introducir en el campo. Siendo por defecto de 50 caracteres y valor máximo de 255.

Para los campos "Numérico", las opciones son:
  • Byte (equivalente a un carácter) para almacenar valores enteros entre 0 y 255.
  • Entero, Entero largo, Simple, Doble, 
  • Id. de réplica se utiliza para claves autonuméricas en bases réplicas.
  • Decimal  (si estamos en una base de datos .accdb)
 Los campos Autonumérico son Entero largo, a los demás tipos de datos no se les puede especificar tamaño. 

Formato del campo
Sirve para personalizar la forma de presentar los datos en pantalla o en un informe, excepto el Objeto OLE y Autonumperico.
Para los campos Numérico y Moneda, las opciones son:
  • Número general: presenta los números tal como fueron introducidos.
  • Moneda: presenta los valores introducidos con el separador de millares y el símbolo monetario asignado en Windows como puede ser €.
  • Euro: utiliza el formato de moneda, con el símbolo del euro.
  • Fijo: presenta los valores sin separador de millares.
  • Estándar: presenta los valores con separador de millares.
  • Porcentaje: multiplica el valor por 100 y añade el signo de porcentaje (%).
  • Científico: presenta el número con notación científica.
Los campos Fecha/Hora tienen los siguientes formatos:
  • Fecha general: si el valor es sólo una fecha, no se muestra ninguna hora; si el valor es sólo una hora, no se muestra ninguna fecha. Este valor es una combinación de los valores de Fecha corta y Hora larga. Ejemplos: 3/4/93, 05:34:00 PM y 3/4/93 05:34:00 PM.
  • Fecha larga: se visualiza la fecha con el día de la semana y el mes completo. Ejemplo: Lunes 21 de agosto de 2000.
  • Fecha mediana: presenta el mes con los tres primeros caracteres. Ejemplo: 21-Ago-2000.
  • Fecha corta: se presenta la fecha con dos dígitos para el día, mes y año. Ejemplo: 01/08/00. El formato Fecha corta asume que las fechas comprendidas entre el 1/1/00 y el 31/12/29 son fechas comprendidas entre los años 2000 y el 2029 y las fechas comprendidas entre el 1/1/30 y el 31/12/99 pertenecen al intervalo de años entre 1930 y 1999.
  • Hora larga: presenta la hora con el formato normal. Ejemplo: 17:35:20.
  • Hora mediana: presenta la hora con formato PM o AM. Ejemplo: 5:35 PM.
  • Hora corta presenta la hora sin los segundos. Ejemplo: 17:35.
Los campos Sí/No disponen de los formatos predefinidos Sí/No, Verdadero/Falso y Activado/Desactivado.
, Verdadero y Activado son equivalentes entre sí, al igual que lo son No, Falso y Desactivado

Nota: El control predeterminado para un dato Sí/No es la casilla de verificación por lo que en la vista Hoja de Datos los datos de este tipo aparecen como una casilla de verificación y no se ve el efecto de la propiedad formato. Si queremos ver el efecto tenemos que cambiar el control predeterminado en la pestaña Búsqueda de las propiedades del campo, en la propiedad Mostrar control elegir el Cuadro de texto como te mostramos a continuación.

Los campos Texto y Memo no disponen de formatos predefinidos, para los campos Texto se tendrían que crear formatos personalizados.
Lugares decimales
 
Aqui se indica el número de decimales que queremos asignar a un tipo de dato Número o Moneda.
 
Máscara de entrada
 
Se utiliza la máscara de entrada para facilitar la entrada de datos y para controlar los valores que los usuarios pueden introducir. Por ejemplo, puedes crear una máscara de entrada para un campo Número de teléfono que muestre exactamente cómo debe introducirse un número nuevo: (___) ___-____.
Con access se utiliza un asistente para máscaras de entradas que ayuda a establecer esta propiedad, y da clic sobre el botón que aparece a la derecha de la propiedad a modificar una vez activada dicha propiedad.

Título
 
Indicamos cómo queremos que se visualice la cabecera del campo.

Valor predeterminado
 
El valor predeterminado es el valor que se almacenará automáticamente en el campo si no introducimos ningún valor, se utiliza esto para indicar o especificar cuál va a ser ese valor y así que se introduzca automáticamente en el campo a la hora de introducir los datos de la tabla.
Se utiliza esta propiedad para todos los tipos de datos excepto el Objeto OLE y el Autonumérico.
 
Regla de validación
Controla la entrada de datos según el criterio que se especifique. Hay que escribir el criterio que debe cumplir el valor introducido en el campo para que sea introducido correctamente.
Por ejemplo si queremos que un valor introducido esté comprendido entre 100 y 2000, se puede especificar en esta propiedad >=100 Y <=2000.

Para formar la condición se utiliza el generador de expresiones. Se utiliza para todos los tipos de datos excepto el Objeto OLE y el Autonumérico.
Para ayudarnos a escribir la regla de validación tenemos el generador de expresiones que se abre al hacer clic sobre el botón boton generar que aparece a la derecha de la propiedad cuando hacemos clic en ella.
 
Texto de validación
 
Se escribe el texto que se desea aparezca en pantalla si introducimos en un campo un valor que no cumple la regla de validación especificada en la propiedad anterior.
Debe ser un mensaje para que la persona que se equivoque a la hora de introducir los datos, sepa el porqué de su error y pueda solucionarlo.
Utilizamos esta propiedad para todos los tipos de datos excepto el Objeto OLE y el Autonumérico.
 
Requerido
 
Si queremos que un campo se rellene obligatoriamente tendremos que asignar a esta propiedad el valor "Sí", en caso contrario el valor será el de "No".
Se utiliza esta propiedad para todos los tipos de datos excepto el Objeto OLE y el Autonumérico.
 
Permitir longitud cero
 
Los campos Memo y Texto cuentan con esta propiedad para controlar que no se puedan introducir valores de cadena que no contengan caracteres o estén vacíos.
 
Indexado
Establece un índice de un solo campo. Estos hacen que las consultas basadas en los campos indexados sean más rápidas, y aceleran las operaciones de ordenación y agrupación.
Por ejemplo, si buscas empleados basándose en un campo llamado Apellidos, puedes crear un índice sobre este campo para hacer más rápida la búsqueda.

Esta propiedad dispone de tres valores:
  • No: Sin índice.
  • Sí (con duplicados): Cuando se asigna un índice al campo y además admite valores duplicados (dos filas con el mismo valor en el campo).
  • Sí (sin duplicados): Cuando se asigna un índice pero sin admitir valores duplicados. 

Video