MySQL一對一關(guān)系是指兩個(gè)表之間存在著一對一對應(yīng)關(guān)系,只有在某些情況下才會使用一對一關(guān)系,如需要將一些字段從一個(gè)表中分離出來,或者需要將某些字段從一個(gè)大表中歸納到另一個(gè)小表中去。
CREATE TABLE person ( id INT NOT NULL PRIMARY KEY, name VARCHAR(50) NOT NULL, age INT NOT NULL, address VARCHAR(100) NOT NULL ); CREATE TABLE address ( id INT NOT NULL PRIMARY KEY, person_id INT, city VARCHAR(50) NOT NULL, street VARCHAR(100) NOT NULL, FOREIGN KEY (person_id) REFERENCES person(id) );
上面的代碼表示建立了兩個(gè)表,一個(gè)是person表,一個(gè)是address表,person表中存儲了人員的id,姓名,年齡和地址,address表中存儲了人員的地址信息,其中person_id是一個(gè)外鍵,將address表與person表關(guān)聯(lián)起來。
在實(shí)際使用中,我們可以通過以下SQL語句來查詢某個(gè)人的地址信息:
SELECT person.name, address.city, address.street FROM person, address WHERE person.id = address.person_id AND person.id = 1;
上面的代碼會返回id為1的人員的姓名、所在城市和街道信息。如果沒有在address表中找到對應(yīng)的記錄,那么查詢結(jié)果將會是空。