日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

ef mysql 外键 一对一_MySQL 外键 一对一 一对多 多对多 复制

發(fā)布時間:2024/8/23 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ef mysql 外键 一对一_MySQL 外键 一对一 一对多 多对多 复制 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

#外鍵

## 1,學(xué)習(xí)外鍵首先要明白表與表之間的關(guān)系

? 首先要換位思考 在考慮了這邊 還要考慮另一邊

? 然后在下定論### 判斷表關(guān)系的語法

#### 圖書與出版社

? 一本書可不可以有多個出版社 不可以

? 一個出版社可不可以出版多本書 可以

? 這就是一對多關(guān)系#### 圖書與作者

? 一本書可不可以有多個作者 可以

? 一個作者可不可以寫多本書 可以

? 多對多的關(guān)系### 作者與作者信息

? 一個作者可不可以有多個個人信息 不可以

? 一個作者的個人信息能不能有多個作者 不可以

? 要么兩個是一對一,要么沒關(guān)系

primary key 主鍵約束,該約束的意思就是,該字段的值非空且不能重復(fù)

關(guān)鍵字 references 建立表與表之間的關(guān)系

foreign key 外鍵約束,意思就是該字段與另外一張表有聯(lián)系.好比兒子必定有爸爸,要是有人想把爸爸K掉,兒子就肯定不干了!反之沒兒子的人如果要被K,就沒人管啦## 2,一對多

?#foreign key會帶來什么效果

?1,在創(chuàng)建表的時候,先創(chuàng)建 被關(guān)聯(lián)的表不帶有foreign key

? 創(chuàng)建完在創(chuàng)建帶有foreign key

```python

create table dep(

id int primary key auto_increment,

dep_name char(10),

dep_comment char(60)

);

create table emp(

id int primary key auto_increment,

name char(15),

gender enum('male','female') not null default 'male',

dep_id int,

foreign key (dep_id) references dep(id) 給這個dep_ip傳入的id必須是

另一個表的id 而 referencnces 就是鏈接起另一張表 dep 里面一般都放的是令一張表的主鍵 且在給dep_id 傳值的時候必須是另一張表有的id 如果沒有就報錯

on update cascade

on delete cascade

);

insert into dep (dep_name,dep_comment) values

('教學(xué)部','輔導(dǎo)學(xué)生,教授python'),

('外交','中國形象大屎'),

('技術(shù)部門','技術(shù)能力有限部門');

insert into emp (name,gender,dep_id) values

('jason','male',1),

('egon','male',2),

('taken','female',3);

```## 3,多對多

```python#圖書表與作者表之間的關(guān)系

"""仍然站在兩張表的角度:

1.站在圖書表:一本書可不可以有多個作者,可以!那就是書多對一作者

2.站在作者表:一個作者可不可以寫多本書,可以!那就是作者多對一書

雙方都能一條數(shù)據(jù)對應(yīng)對方多條記錄,這種關(guān)系就是多對多!"""

#先來想如何創(chuàng)建表?圖書表需要有一個外鍵關(guān)聯(lián)作者,作者也需要有一個外鍵字段關(guān)聯(lián)圖書。問題來了,先創(chuàng)建誰都不合適!如何解決?#建立第三張表,該表中有一個字段fk左表的id,還有一個字段是fk右表的id

create table author (

id int primary key auto_increment,

name char(10));

create table book(

id int primary key auto_increment,

bname char(10),

price int);

insert into author (name) values

('egon'),

('jason'),

('yangxin'),

('alex');

insert into book (bname,price) values

('php從入門到消失',1000),

('葵花寶典',553),

('小澤瑪利亞大戰(zhàn)蒼井空',200009),

('小澤精選',20000),

('小倉精選',2222);

create table author2book(

id int primary key auto_increment,

author_id int,

book_id int,

foreign key (author_id) references author(id)

on update cascade

on delete cascade,

foreign key (book_id) references author(id)

on update cascade

on delete cascade);

insert into author2book(author_id,book_id) values

(1,2),

(2,3),

(3,4),

(1,4),

(4,2);

```## 4,一對一

用戶名 和用戶信息

?

```python

左邊的表記錄唯一對應(yīng)右邊的一條記錄,反之也一樣

create table username(

id int primary key auto_increment,

name char(10) notnull,

age intnotnull);

insert into username(name,age) values

('jason',98),

('yangxin',18),

('wukai',10);

create table card(

id int primary key auto_increment,

identity int unique,#該字段唯一

username_id int unique,#該字段唯一

foreign key (card_id) references username(id)

on delete cascade

on update cascade);

insert into card(identity,username_id) values

('170020',1),

('125435',2),

('146547',3);

```## 5修改表

```python#mysql對大小寫不敏感!!!

語法:1. 修改表名

ALTER TABLE 表名

RENAME 新表名;2. 增加字段

ALTER TABLE 表名

ADD 字段名 數(shù)據(jù)類型 [完整性約束條件…], ? ? ? ? ? ? ? ? ? ? ? ? ? ADD 字段名 數(shù)據(jù)類型 [完整性約束條件…];

ALTER TABLE 表名

ADD 字段名 數(shù)據(jù)類型 [完整性約束條件…] ?FIRST; ? ? ? ALTER TABLE 表名

ADD 字段名 數(shù)據(jù)類型 [完整性約束條件…] ?AFTER 字段名;3. 刪除字段

ALTER TABLE 表名

DROP 字段名;4. 修改字段 ?#modify只能改字段數(shù)據(jù)類型完整約束,不能改字段名,但是change可以!

ALTER TABLE 表名

MODIFY 字段名 數(shù)據(jù)類型 [完整性約束條件…];

ALTER TABLE 表名

CHANGE 舊字段名 新字段名 舊數(shù)據(jù)類型 [完整性約束條件…]; ? ? ?ALTER TABLE 表名

CHANGE 舊字段名 新字段名 新數(shù)據(jù)類型 [完整性約束條件…];

```## 6復(fù)制表

?

```python#復(fù)制表 語法 create table 表名 select *from 被復(fù)制的表名#只能復(fù)制表的結(jié)構(gòu)+記錄 不會復(fù)制 主鍵 外鍵 和索引

```

總結(jié)

以上是生活随笔為你收集整理的ef mysql 外键 一对一_MySQL 外键 一对一 一对多 多对多 复制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。