el [DATE], [NAME] en [ADDRESS] escribió: Thank you for your help and for the lesson.
Eli > I would just add a few words to Nils' excellent reply: > > In the most general sense, a foreign key is just a primary > key value that occurs outside of its native table (i.e. in > a "foreign" table, get it?) in order to point to the record > in its native table with that value as its primary key. > > You can use foreign keys in your database design and > programming without actually formally declaring them as > such in the database system. Indeed, as you point out, you > *have* to use them to establish relationships among your > tables. > > If the database system doesn't recognize the foreign key > columns as foreign keys, then you must programatically > ensure that referential integrity is maintained: > --when you insert a new record, make sure that any foreign > key points to an existing record (a record with that key > value as its primary key) > --don't ever change the value of a record's primary key > (that is, unless you are prepared to change the value of > all the foreign keys in all the records pointing to that > record) > --don't ever delete a record that has other records > pointing to it via foreign keys (unless you delete all > those records too). > > Many people assume that a relational database system *must* > recognize such foreign keys (and relationships among the > tables) in order to be truly relational. But the term > "relational" refers, not to the relationships among the > tables, but to the basic relation that is defined by each > table (and Codd's theory that even the most complex data > structure can be broken down into such simple relations). > > --John > > On Thursday 24 July 2003 08:00 pm, Nils Valentin wrote: >> Hi Eli, >> >> The short answer is .. you create relationships between >> tables by creating foreign keys and primary keys. >> However, you might not even need them ;-) - I explain >> below. >> >> Foreign keys and primary keys are used to create >> relations between tables. >> >> Using them will bind you to some rules which you can use >> to your advantage (or not), thats entirely up to you. >> >> If you define a primary key than any foreign key can link >> to the primary key. However , a foreign ke can only >> contain a value which is already defined in a primary >> key. >> >> This can be used to restrict that only valid values are >> insert for foreign keys or f.e no primary key is deleted >> where still existing foreign keys are pointing to the >> primary key record. Currently only the InnoDB table >> format supports Foreign keys. >> >> >> In order to use a join you dont need to create any keys. >> You can free define the columns to be used for the join >> condition. >> >> Please see the JOIN Syntax for more information. >> >> http://www.mysql.com/doc/en/JOIN.html >> >> Best regards >> >> Nils Valentin >> Tokyo/Japan >> >> 2003? 7? 25? ??? 03:36?eli ????????: >>> Hi, >>> >>> Can anyone explain me how to create relationships >>> between tables in Mysql? >>> >>> For making some kind of functions like joins, it is >>> indispensable to have relationships defined? >>> >>> >>> Thanks in advanced. >>> >>> >>> eli ________________________________________________________________________ SetFile DATABASE FACTORY - Aplicaciones a Medida en FileMaker Pro ( Windows y Macintosh ) <[EMAIL PROTECTED]> <www.setfile.com/es> TEL 93 238 56 00 FileMaker Inc es miembro del BSA ( 900 211 048) SetFile - FSA Partners ________________________________________________________________________ -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]