Tema: Duda MySQL
Ver Mensaje Individual
  #6 (permalink)  
Antiguo 15/02/2003, 15:45
Avatar de BVis
BVis
 
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona
Mensajes: 104
Antigüedad: 21 años, 5 meses
Puntos: 0
Lo de las claves "foraneas" (o externas), de 'foreign keys' solo vale para mantener de forma automática la consistencia entre los regostros relacionados al modificar un valor en una de las tablas, así tenemos tres políticas: NULLIFIES, RESTRICTED y CASCADED.

CASCADED: Si borramos un registro de una tabla, cuya clave primaria sea clave externa en otra, en la tabla con clave esa externa también se borra.

RESTRICTED: NO se pueden borrar registros cuya clave primaria esté usándose en otra tabla, como clave externa.

NULLIFIES: Si se borra un registro cuya clave primaria está declarada como clave externa en otra tabla, el valor de la clave externa se pasa a NULL.


Para otra cosa no valen! Así que en MySQL estos casos se han de tener en cuenta y "programar a mano". Nada más.

Para hacer consultas entre diferentes tablas, lo único a tener en cuenta: Emplear un campo común entre ambas tablas y asegurarnos que tienen el mismo valor.

SELECT tabla1.*, tabla2.* FROM tabla1, tabla2 WHERE tabla1.campo1=tabla2.campo1

Si obviamos la restricción que implica el WHERE, se realiza el llamado 'producto vectorial'. Es decir, combina todos los registros de la 'tabla1' con todos los de la 'tabla2'.


Para más info tienes un manual de SQL en:

http://usuarios.lycos.es/manualesvarios


Las imagenes están extraídas de una base de datos ACCESS, pero todo lo que se explica es ANSI SQL, es decir, válido para *todos* (98%) los sistemas gestores de bases de datos, como ACCESS, MySQL, PostgreSQL, Oracle, etc...

1 Saludo.
__________________
"Yo opino lo mismo que BVis, el de 'forosdelweb' " - Bill Gates