1. 程式人生 > 實用技巧 >MySQL(2):資料管理

MySQL(2):資料管理

一. 外來鍵概念:

如果公共關鍵字在一個關係中是主關鍵字,那麼這個公共關鍵字被稱為另一個關係的外來鍵。由此可見,外來鍵表示了兩個關係之間的相關聯絡。以另一個關係的外來鍵作主關鍵字的表被稱為主表,具有此外來鍵的表被稱為主表的從表。在實際操作中,將一個表的值放入第二個表來表示關聯,所使用的值是第一個表的主鍵值(在必要時可包括複合主鍵值)。此時,第二個表中儲存這些值的屬性稱為外來鍵(foreign key)

二. 外來鍵作用:

保持資料一致性,完整性,主要目的是控制儲存在外來鍵表中的資料,約束。 使兩張表形成關聯,外來鍵只能引用外表中的列的值或使用空值

三. 建立外來鍵

1.建立父表 grade

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

父表圖

2.建立子表 student

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會查詢到父表中的資訊

四. 刪除外來鍵

ALTER TABLE student DROP FOREIGN KEY FK_gradeid;
ALTER TABLE student DROP INDEX FK_gradeid;

注意 : 刪除具有主外來鍵關係的表時 , 要先刪子表 , 後刪主表

五. 新增資料

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 為篩選條件 , 如不指定則修改該表的所有列資料