MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),通過使用主外鍵來建立表與表之間的鏈接,進(jìn)行數(shù)據(jù)的連接和查詢。主鍵和外鍵的概念是數(shù)據(jù)庫設(shè)計中比較重要的概念之一。
主鍵(Primary Key)用來唯一標(biāo)識一條記錄,一個表只能有一個主鍵。主鍵可以由一個或多個列組成,這些列的值必須是唯一的。例如,一個用戶表中每個用戶有一個唯一的ID號,這個ID號就可以作為主鍵。
外鍵(Foreign Key)用來實(shí)現(xiàn)兩個或多個表之間的關(guān)系,一個表可以有多個外鍵。外鍵是在一個表中對另一個表的主鍵的引用,可以用來確保數(shù)據(jù)的一致性和完整性。例如,一個訂單表中需要使用客戶的ID號,但是客戶信息是存儲在另外一個表中的,那么這個ID號就可以作為外鍵,將訂單表和客戶表關(guān)聯(lián)起來。
CREATE TABLE `customers` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `email` varchar(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `orders` ( `id` int(11) NOT NULL AUTO_INCREMENT, `customer_id` int(11) NOT NULL, `product_name` varchar(50) NOT NULL, PRIMARY KEY (`id`), CONSTRAINT `fk_customer` FOREIGN KEY (`customer_id`) REFERENCES `customers` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
在上面的代碼中,我們可以看到兩個表的創(chuàng)建,customers表中id列被指定為主鍵,orders表中的customer_id列被指定為外鍵。通過 FOREIGN KEY 和 REFERENCES 關(guān)鍵字實(shí)現(xiàn)了這兩個表的連接,保證了數(shù)據(jù)的一致性和完整性。