Beruflich Dokumente
Kultur Dokumente
Union
Intersect
Except o Minus
De estas tres operaciones Access slo soporta la operacin Union teniendo que usar otros
mecanismos para conseguir los mismos resultados que Intersect o Minus.
La operacin unin sobre dos selects (con los campos retornados del mismo tipo) lo que hace
es devolver los atributos seleccionados que estn en al menos una de las dos partes de la
unin (realmente simula una unin de conjuntos) y automticamente debera eliminar
duplicados asegurando la unicidad de los resultados devueltos, por ejemplo podramos hacer:
Select dni, nombre, apellidos
From usuarios
Union
Select nif, nombre, apellidos
From enfermos
Esta select nos devolvera los nombres, dni, apellidos de todos nuestros usuarios y nuestros
enfermos, y si un usuario fuera tambin enfermo slo nos devolvera un registro.
La operacin intersect sera parecida pero sera la interseccin entre los conjuntos es decir slo
devolvera aquellos registros que estn en ambas selects y funcionara de forma similar. La
operacin except o minus devolvera aquellos registros que estn en una relacin y no estn
en la otra. Recordad que estas dos operaciones no estn soportadas por Access.
En este ejemplo se estn insertando los valores de una tupla en la relacin cuentas, se van a
insertar los valores que pasamos en el mismo orden de atributos que estn en la relacin (por
ejemplo en este caso codcuenta, apellidos, nombre, cantidad. En una consulta de este tipo
tenemos que poner todos los campos de la relacin, sino dar un error. Si no queremos poner
todos los campos tenemos que explicitar los campos que vamos a introducir, de esta forma el
orden de campos tampoco tiene que ser el de la tabla, por ejemplo:
insert into cuentas (nombre, apellidos, codcuenta)
values ("Antonio","Sanchez",2)
Si nuestra relacin tiene un campo autonumrico, no hace falta mandarlo sino que lo generar
automticamente el motor de base de datos. Si el campo codcuenta es un autonumrico
bastar con una sentencia de este tipo:
insert into cuentas (nombre, apellidos, cantidad)
values ("Antonio","Sanchez",2.0)
Muchas veces vamos a querer insertar las tuplas que son el resultado de una consulta por
ejemplo si tenemos una relacin de usuarios con los campos nombre y apellidos y queremos
aadirlos a nuestra relacin de cuentas con una cantidad de 10000 simplemente tendremos
que hacer:
insert into cuentas (nombre, apellidos, cantidad)
select nombre,apellidos,10000
from usuarios
Vemos que en la instruccin se hace update de la relacin y tenemos que establecer con la
instruccin set el campo y el valor por l que lo queremos modificar, observar que se puede
usar el mismo u otro campo de nuestra relacin para el clculo del nuevo valor. En este caso se
usa el valor que tiene el campo que se elija en esa misma tupla, por ejemplo si tenemos una
tabla con al menos dos campos numricos: campo1 y campo2 con los valores en una
determinada tupla de 100 y 5 podemos hacer la siguiente modificacin:
Update tabla
Set campo1 = campo2 * campo1
Despus de esta sentencia nuestra tupla tendr los valores campo1=500 y campo2=5
Se pueden aplicar condiciones en nuestra sentencia para determinar en que tuplas se realiza la
modificacin mediante la clusula where, por ejemplo:
Update tabla
Set campo1 = campo2 * campo1
Where campo1 > 50
La modificacin se realizar slo en aquellas tuplas en las que el campo1 sea estrictamente
mayor de 50.
Del mismo modo que se pueden insertar y modificar tuplas podremos borrarlas, hay que tener
en cuenta que slo se podrn borrar tuplas no podemos borrar valores de atributos (en todo
caso podremos modificar valores poniendo Nulos en el caso en que nuestra relacin se
permitan estos valores, pero no los estaremos borrando. Para el borrado de tuplas
utilizaremos la instruccin delete, que tiene la siguiente forma:
Delete from tabla
Where condicin
Con esta sentencia se borraran todas las tuplas de la tabla que cumplieran la condicin (es
decir la condicin devolviera un valor Verdadero). A veces podremos ver estas sentencias de la
forma Delete * from tabla o incluso Delete campo1 from tabla realmente el motor de base
de datos el nombre de atributos (o asterisco) detrs de la sentencia delete los ignora pues no
le sirven para nada (recordad que se borrar tuplas no registros). En la parte de condicin
podemos usar cualquiera de las condiciones (de grupo o individuales) que hemos visto en
temas anteriores. Tenemos que tener especial cuidado en usar esta sentencia sin condiciones
pues borraramos todas las tuplas de la tabla.
Donde tabla1 es el nombre de la relacin, campo1 ... campon el nombre de los campos, cada
uno de estos campos tendrn un tipo determinado de los propios de Access (text, memo,
counter, short, long, single, double, bit, date, etc.). En el caso de tamao se necesita para
aquellos campos que sea necesario. Adems podremos poner constraints o ndices en las
tablas.
Con la sentencia alter table podemos modificar los campos de una tabla, pudiendo modificar
uno existente, aadir campos o borrar alguno de los existentes.
De esta forma modificaremos la tabla tabla1 modificando el campo campo1 a un nuevo tipo.
Hay que tener cuidado si estamos modificando un campo con valores pues son posibles
modificacin de valores o incluso desaparicin por la conversin automtica de tipos que va a
hacer Access.
Tambin podremos aadir nuevos campos de la forma
Alter table tabla1
Add column campo1 tipo
Para borrar toda una relacin usaremos la sentencia drop table, de la forma:
Drop table tabla1
Hay que tener en cuenta que si eliminamos una tabla, borraremos la estructura de la tabla y
por supuesto todos sus datos.