RELACIONES Y CONSULTAS MULTITABLAS EN LA BASE DE DATOS
Al crear una relación entre tablas, no es necesario que los
campos relacionados tengan los mismos nombres. Sin embargo, deben tener el
mismo tipo de datos a menos que el campo de clave principal sea un campo
Autonumérico. Sólo puede hacer coincidir un campo Autonumérico con un campo
Número si la propiedad Tamaño del Campo de ambos de los campos correspondientes
es la misma. Por ejemplo, puede hacer coincidir un campo Autonumeración y un
campo Número si la propiedad Tamaño del Campo de ambos campos es Entero largo.
Incluso aunque ambos campos coincidentes sean campos Número, deben tener el
mismo valor para la propiedad Tamaño del Campo.
CÓMO
DEFINIR UNA RELACIÓN DE UNO A VARIOS O DE UNO A UNO
Para crear una relación de uno a varios o de uno a uno, siga
estos pasos:
Cierre todas las tablas. No puede crear ni modificar las
relaciones entre las tablas abiertas.
En Access 2002 o Access 2003, siga estos pasos:
Presione F11 para pasar a la ventana Base de datos.
En el menú Herramientas, haga clic en Relaciones.
En Access 2007, Access 2010 o Access 2013, haga clic en
Relaciones en el grupo Mostrar u ocultar de la pestaña Herramientas de base de
datos.
Si no ha definido todavía ninguna relación en la base de
datos, el cuadro de diálogo Mostrar tabla aparece automáticamente. Si desea
agregar las tablas que desea relacionar, pero no se muestra el cuadro de
diálogo Mostrar tabla, haga clic en Mostrar tabla en el menú Relaciones.
Haga doble clic en los nombres de las tablas que desea relacionar
y, a continuación, cierre el cuadro de diálogo Mostrar tabla. Para crear una
relación entre una tabla y ella misma, agregue dos veces esa tabla.
Arrastre el campo que desea relacionar de una tabla con el
campo relacionado de la otra. Para arrastrar varios campos, presione Ctrl, haga
clic en cada campo y, a continuación, arrástrelos.
En la mayoría de los casos, arrastra el campo de clave
principal (que se muestra en texto en negrita) de una tabla hacia un campo
similar (a menudo con el mismo nombre) denominado la clave externa de la otra
tabla.
Aparecerá el cuadro de diálogo Modificar relaciones.
Asegúrese de que los nombres de campo que se muestran en las dos columnas son
correctos. Puede cambiar los nombres si fuera necesario.
Establezca las opciones de la relación si fuera necesario.
Si necesita información acerca de un elemento específico del cuadro de diálogo
Modificar relaciones, haga clic en el botón de signo de interrogación y, a
continuación, haga clic en el elemento. Estas opciones se explicarán en detalle
posteriormente en este artículo.
Haga clic en Crear para crear la relación.
Repita los pasos de 4 a 7 para cada par de tablas que desee
relacionar.
Al cerrar el cuadro de diálogo Modificar relaciones, Access
pregunta si desea guardar el diseño. Tanto si guarda el diseño como si no, las
relaciones que cree se guardan en la base de datos.
CÓMO DEFINIR UNA
RELACIÓN DE VARIOS A VARIOS
Para crear una relación de varios a varios, siga estos
pasos:
Cree las dos tablas que tendrán la relación varios a varios.
Cree una tercera tabla. Se trata de la tabla de unión. En la
tabla de unión, agregue nuevos campos que tengan las mismas definiciones que
los campos de la clave principal de cada tabla que haya creado en el paso 1. En
la tabla de unión, los campos de clave principal funcionan como claves
externas. Puede agregar otros campos a la tabla de unión, así como a cualquier
otra tabla.
En la tabla de unión, establezca la clave principal para
incluir los campos de clave principal de las otras dos tablas. Por ejemplo, en
una tabla de unión "TítuloAutores", la clave principal se compondría
de los campos IdPedido e IdProducto.
Nota: para crear una clave principal, siga estos pasos:
Abra una tabla en la vista Diseño.
Seleccione el campo o campos que desee definir como clave
principal. Para seleccionar un campo, haga clic en el selector de fila del
campo deseado. Para seleccionar varios campos, mantenga presionada la tecla
Ctrl y, a continuación, haga clic en el selector de fila para cada campo.
En Access 2002 o en Access 2003, haga clic en Clave
principal en la barra de herramientas.
En Access 2007, haga clic en Clave principal en el grupo
Herramientas de la ficha Diseño.
Nota: si desea que el orden de los campos de una clave
principal de varios campos sea diferente del orden de esos campos en la tabla,
haga clic en Índices en la barra de herramientas para mostrar el cuadro de
diálogo Índices y, a continuación, cambie el orden de los nombres de campo del
índice denominado ClavePrimaria.
Definir una relación de uno a varios entre cada tabla
principal y la tabla de unión.
CONSULTAS MULTITABLA
Es posible seleccionar datos de diferentes tablas mediante
una solo consulta, esto se realiza con la sentencia SELECT
Consultando 2 tablas a la vez:
SELECT * FROM tabla1, tabla2;
|
Con la consulta anterior mostrara todos los datos de la
tabla1 y tabla2.
Consultando 2 tablas indicando mediante que campos se unirán
y mostrara solo los registros que coincidan:
SELECT * FROM tabla1, tabla2 WHERE campo1=campo2;
|
INNER JOIN
La sentencia INNER JOIN selecciona todas las filas de las
tablas indicadas y solas si los registros de las tablas cumplen las condiciones
especificadas en la cláusula ON.
La consulta con INNER JOIN seria de la siguiente manera:
-- Utilizando INNER JOIN
SELECT * FROM tabla1 AS t1 INNER JOIN tabla2 AS t2 ON
t1.campo=t2.campo;
-- Utilizando solo JOIN
SELECT * FROM tabla1 AS t1 INNER JOIN tabla2 AS t2 ON
t1.campo=t2.campo;
-- Abmas dan el mismo resultado
|
LEFT JOIN
La cláusula LEFT JOIN devuelve todas los registros de la
tabla de la izquierda (tabla1), con las correspondientes de la tabla de la
derecha (tabla2). El resultado es NULL en la parte de la derecha cuando no hay
registros que correspondan con la condición.
SELECT * FROM tabla1 AS t1 LEFT JOIN tabla2 AS t2 ON
t1.campo=t2.campo;
|
RIGHT JOIN
La instrucción RIGHT JOIN devuelve todas los registros de la
tabla de la derecha (tabla2), y todas los registros correspondientes de la
tabla de la izquierda (tabla1). El resultado será NULL cuando no haya registros
correspondientes de la tabla de la izquierda.
SELECT * FROM tabla1 AS t1 RIGHT JOIN tabla2 AS t2 ON
t1.campo=t2.campo;
|
UNION
El operador UNION se utiliza cuando se necesita combinar los
resultados de dos consultas diferentes. Los resultados no tienen que tener
ninguna vinculación entre ellos; se quiere mostrar todos los resultados juntos.
SELECT * FROM tabla1 UNION SELECT * FROM tabla2;
|
No hay comentarios:
Publicar un comentario