真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

mysql外鍵怎么連接 mysql建立外鍵關(guān)聯(lián)

mysql添加外鍵的操作要自己輸?

mysql增加外鍵的方法:1、在CREATE TABLE語(yǔ)句中,通過(guò)FOREIGN KEY關(guān)鍵字來(lái)添加外鍵;2、在ALTER TABLE語(yǔ)句中,通過(guò)ADD和FOREIGN KEY關(guān)鍵字來(lái)添加外鍵。

公司主營(yíng)業(yè)務(wù):成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。成都創(chuàng)新互聯(lián)推出兩當(dāng)免費(fèi)做網(wǎng)站回饋大家。

推薦課程:MySQL教程。

MySQL 外鍵約束(FOREIGN KEY)是表的一個(gè)特殊字段,經(jīng)常與主鍵約束一起使用。對(duì)于兩個(gè)具有關(guān)聯(lián)關(guān)系的表而言,相關(guān)聯(lián)字段中主鍵所在的表就是主表(父表),外鍵所在的表就是從表(子表)。

外鍵用來(lái)建立主表與從表的關(guān)聯(lián)關(guān)系,為兩個(gè)表的數(shù)據(jù)建立連接,約束兩個(gè)表中數(shù)據(jù)的一致性和完整性。比如,一個(gè)水果攤,只有蘋果、桃子、李子、西瓜等 4 種水果,那么,你來(lái)到水果攤要買水果就只能選擇蘋果、桃子、李子和西瓜,其它的水果都是不能購(gòu)買的。

主表刪除某條記錄時(shí),從表中與之對(duì)應(yīng)的記錄也必須有相應(yīng)的改變。一個(gè)表可以有一個(gè)或多個(gè)外鍵,外鍵可以為空值,若不為空值,則每一個(gè)外鍵的值必須等于主表中主鍵的某個(gè)值。

定義外鍵時(shí),需要遵守下列規(guī)則:

主表必須已經(jīng)存在于數(shù)據(jù)庫(kù)中,或者是當(dāng)前正在創(chuàng)建的表。如果是后一種情況,則主表與從表是同一個(gè)表,這樣的表稱為自參照表,這種結(jié)構(gòu)稱為自參照完整性。

必須為主表定義主鍵。

主鍵不能包含空值,但允許在外鍵中出現(xiàn)空值。也就是說(shuō),只要外鍵的每個(gè)非空值出現(xiàn)在指定的主鍵中,這個(gè)外鍵的內(nèi)容就是正確的。

在主表的表名后面指定列名或列名的組合。這個(gè)列或列的組合必須是主表的主鍵或候選鍵。

外鍵中列的數(shù)目必須和主表的主鍵中列的數(shù)目相同。

外鍵中列的數(shù)據(jù)類型必須和主表主鍵中對(duì)應(yīng)列的數(shù)據(jù)類型相同。

在創(chuàng)建表時(shí)設(shè)置外鍵約束

在 CREATE TABLE 語(yǔ)句中,通過(guò) FOREIGN KEY 關(guān)鍵字來(lái)指定外鍵,具體的語(yǔ)法格式如下:

1

2

[CONSTRAINT 外鍵名] FOREIGN KEY 字段名 [,字段名2,…]

REFERENCES 主表名 主鍵列1 [,主鍵列2,…]

例 1

為了展現(xiàn)表與表之間的外鍵關(guān)系,本例在 test_db 數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)部門表 tb_dept1,表結(jié)構(gòu)如下表所示。

創(chuàng)建 tb_dept1 的 SQL 語(yǔ)句和運(yùn)行結(jié)果如下所示。

1

2

3

4

5

6

7

mysql CREATE TABLE tb_dept1

- (

- id INT(11) PRIMARY KEY,

- name VARCHAR(22) NOT NULL,

- location VARCHAR(50)

- );

Query OK, 0 rows affected (0.37 sec)

創(chuàng)建數(shù)據(jù)表 tb_emp6,并在表 tb_emp6 上創(chuàng)建外鍵約束,讓它的鍵 deptId 作為外鍵關(guān)聯(lián)到表 tb_dept1 的主鍵 id,SQL 語(yǔ)句和運(yùn)行結(jié)果如下所示。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

mysql CREATE TABLE tb_emp6

- (

- id INT(11) PRIMARY KEY,

- name VARCHAR(25),

- deptId INT(11),

- salary FLOAT,

- CONSTRAINT fk_emp_dept1

- FOREIGN KEY(deptId) REFERENCES tb_dept1(id)

- );

Query OK, 0 rows affected (0.37 sec)

mysql DESC tb_emp6;

+--------+-------------+------+-----+---------+-------+

| Field? | Type??????? | Null | Key | Default | Extra |

+--------+-------------+------+-----+---------+-------+

| id???? | int(11)???? | NO?? | PRI | NULL??? |?????? |

| name?? | varchar(25) | YES? |???? | NULL??? |?????? |

| deptId | int(11)???? | YES? | MUL | NULL??? |?????? |

| salary | float?????? | YES? |???? | NULL??? |?????? |

+--------+-------------+------+-----+---------+-------+

4 rows in set (1.33 sec)

以上語(yǔ)句執(zhí)行成功之后,在表 tb_emp6 上添加了名稱為 fk_emp_dept1 的外鍵約束,外鍵名稱為 deptId,其依賴于表 tb_dept1 的主鍵 id。

注意:從表的外鍵關(guān)聯(lián)的必須是主表的主鍵,且主鍵和外鍵的數(shù)據(jù)類型必須一致。例如,兩者都是 INT 類型,或者都是 CHAR 類型。如果不滿足這樣的要求,在創(chuàng)建從表時(shí),就會(huì)出現(xiàn)“ERROR 1005(HY000): Can't create table”錯(cuò)誤。

在修改表時(shí)添加外鍵約束

外鍵約束也可以在修改表時(shí)添加,但是添加外鍵約束的前提是:從表中外鍵列中的數(shù)據(jù)必須與主表中主鍵列中的數(shù)據(jù)一致或者是沒有數(shù)據(jù)。

在修改數(shù)據(jù)表時(shí)添加外鍵約束的語(yǔ)法格式如下:

閱讀剩余部分

相關(guān)閱讀

mysql日期如何轉(zhuǎn)字符串

【mysql數(shù)據(jù)庫(kù)】第三章解讀:服務(wù)器性能剖析(上)

mysql case when的用法是什么

mysql關(guān)閉后自動(dòng)重啟怎么辦

mysql精講之二:dml數(shù)據(jù)操作語(yǔ)句

淺析mysql中concat以及group_concat的使用

mysql如何來(lái)創(chuàng)建表

mysql怎么清空數(shù)據(jù)表數(shù)據(jù)

mysql安裝配置jdbc和基礎(chǔ)學(xué)習(xí)

mysql怎么加入一個(gè)數(shù)據(jù)庫(kù)?

在MySQL中如何設(shè)置主鍵和外鍵

工具/原料

電腦??MySQL

方法/步驟

設(shè)置主鍵:

1、通過(guò)終端進(jìn)入到mysql命令行工具。

2、通過(guò)use關(guān)鍵字進(jìn)行到目標(biāo)數(shù)據(jù)庫(kù)里。

3、如原表已有主鍵,先把原來(lái)的主鍵刪除掉,通過(guò)DROPPRIMARYKEY命令:ALTERTABLE`jingyan`DROPPRIMARYKEY;。

4、主鍵已經(jīng)沒有了。

5、通過(guò)命令:ADDPRIMARYKEY來(lái)添加ALTERTABLE`jingyan`ADDPRIMARYKEY(`id`)。

6、輸入后按下回車鍵即可看到queryok執(zhí)行成功的字符。

7、回到數(shù)據(jù)庫(kù)的可視化工具,即可顯示現(xiàn)在的表在id列上添加了主鍵了。

設(shè)置外鍵:

1、創(chuàng)建好主從表。

2、選擇主表,點(diǎn)擊設(shè)計(jì)表,進(jìn)入到表設(shè)計(jì)界面。

3、點(diǎn)擊外鍵,進(jìn)入到外鍵設(shè)置界面。

4、先設(shè)置外鍵名稱和選擇主表的外鍵字段。

5、然后在設(shè)置外鍵字段對(duì)應(yīng)從表的數(shù)據(jù)庫(kù)、表名和字。

6、點(diǎn)擊保存就完成外鍵設(shè)置了。

MySQL之主鍵、外鍵、連接

設(shè)置主鍵的思路:業(yè)務(wù)字段做主鍵、自增字典做主鍵、手動(dòng)賦值字段做主鍵。

多表查詢:分散在多個(gè)不同的表里的數(shù)據(jù)查詢出來(lái)的操作。

外鍵:從表中用來(lái)引用主表中數(shù)據(jù)的那個(gè)公共字段。

連接有2種類型的連接:內(nèi)連接(inner join)和外連接(outer join)

內(nèi)連接:查詢結(jié)果只返回符合連接條件的記錄。

外連接:查詢結(jié)果返回某一個(gè)表中的所有記錄,以及另一個(gè)表中滿足連接條件的記錄。

其中左連接:left join,返回左表中的所有記錄,以及右表中符合連接條件的記錄。

右連接:right join,返回右表中的所有記錄,以及左表中符合連接條件的記錄。

Mysql創(chuàng)建外鍵連接。

建立外鍵需要注意幾點(diǎn):

1,必須使用innodb表引擎

2,兩個(gè)表的字符編碼必須一致

3,被引用的typeid,即父表中的typeid必須是主鍵或者唯一建

滿足以上幾點(diǎn),sql如下:

--------------------------------

create table father (typeid int primary key,name varchar(10)) engine=innodb;

create table son (id int,typeid int ,foreign key (typeid) references father(typeid)) engine=innodb;

如果你的意思只是說(shuō)兩個(gè)表做關(guān)聯(lián),你的sql可以這么寫

select * from father ,son where son.typeid=father.typeid


新聞名稱:mysql外鍵怎么連接 mysql建立外鍵關(guān)聯(lián)
網(wǎng)站URL:http://weahome.cn/article/ddggesg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部