MySQL是一款流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它支持表與表之間的關(guān)聯(lián)。在MySQL中,可以使用外鍵來實現(xiàn)主表與從表之間的關(guān)聯(lián)。
那么,主表中是否有外鍵呢?答案是肯定的。在MySQL中,主表必須有一個主鍵,并且可以將該主鍵設(shè)置為外鍵,與從表的主鍵進(jìn)行關(guān)聯(lián)。這樣可以實現(xiàn)數(shù)據(jù)的完整性約束,避免了數(shù)據(jù)的冗余性和不一致性等問題。
CREATE TABLE `department` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
CREATE TABLE `employee` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
`dept_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `dept_id` (`dept_id`),
CONSTRAINT `fk_employee_dept_id` FOREIGN KEY (`dept_id`) REFERENCES `department` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
以上是部門和員工表的建表語句,在員工表中含有一個dept_id字段,該字段與部門表中的id字段進(jìn)行關(guān)聯(lián)。這里我們采用了外鍵約束,即通過FOREIGN KEY關(guān)鍵字將dept_id字段設(shè)置成了外鍵,并指定了該字段參照的表和字段。
總的來說,MySQL中主表必須含有主鍵,并且可以將主鍵設(shè)置成外鍵,與從表的主鍵進(jìn)行關(guān)聯(lián)。這種關(guān)聯(lián)方式可以有效地保證數(shù)據(jù)的完整性和一致性。