若是公共關鍵字在一個關係中是主關鍵字,那麼這個公共關鍵字被稱爲另外一個關係的外鍵。因而可知,外鍵表示了兩個關係之間的相關聯繫。以另外一個關係的外鍵做主關鍵字的表被稱爲主表,具備此外鍵的表被稱爲主表的從表。在實際操做中,將一個表的值放入第二個表來表示關聯,所使用的值是第一個表的主鍵值(在必要時可包括複合主鍵值)。此時,第二個表中保存這些值的屬性稱爲外鍵(foreign key)3d
保持數據一致性,完整性,主要目的是控制存儲在外鍵表中的數據,約束。 使兩張表造成關聯,外鍵只能引用外表中的列的值或使用空值code
CREATE TABLE `grade`( `gradeid` INT(10) NOT NULL AUTO_INCREMENT COMMENT '年級ID', `gradename` VARCHAR(50) NOT NULL COMMENT '年級名稱', PRIMARY KEY (`gradeid`) )ENGINE=INNODB DEFAULT CHARSET=utf8
父表圖
blog
CREATE TABLE `student` ( `studentno` INT(4) NOT NULL COMMENT '學號', `studentname` VARCHAR(20) NOT NULL COMMENT '姓名', `gradeid` INT(10) DEFAULT NULL COMMENT '年級', PRIMARY KEY (`studentno`), KEY `FK_gradeid` (`gradeid`), CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES `grade` (`gradeid`) ) ENGINE=INNODB DEFAULT CHARSET=utf8
子表圖
外鍵效果圖
圖片
父表中的主鍵是gradeid,子表中的主鍵是studentno,在子表中把父表中的主鍵gradeid設爲外鍵,由於子表用有gradeid,因此點擊gradeid會查詢到父表中的信息it
ALTER TABLE student DROP FOREIGN KEY FK_gradeid; ALTER TABLE student DROP INDEX FK_gradeid;
注意 : 刪除具備主外鍵關係的表時 , 要先刪子表 , 後刪主表io
INSERT INTO 表名[(字段1,字段2,字段3,...)] VALUES('值1','值2','值3')
注意:
1:字段或值之間用英文逗號隔開.
2:'字段1,字段2...'該部分可省略 , 但添加的值務必與表結構,數據列,順序相對應,且數量一致.
3:可同時插入多條數據 , values 後用英文逗號隔開變量
UPDATE 表名 SET column_name=value [,column_name2=value2,...] [WHERE condition];
注意:
1:column_name 爲要更改的數據列
2:value 爲修改後的數據 , 能夠爲變量 , 具體指 , 表達式或者嵌套的SELECT結果
3:condition 爲篩選條件 , 如不指定則修改該表的全部列數據引用