資料庫外連線(左 右 全) 內連線

2021-12-29 21:42:40 字數 2362 閱讀 6686

-1sql指令碼 0表資料 1左外連線 應用 結果 2右外連線 應用 結果 3全外連線 測試sql 4內連線 測試sql 結果

-1、sql指令碼

set foreign_key_checks=0;

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

-- table structure for `clazz`

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

drop table if exists `clazz`;

create table `clazz` (

`cid` int(11) not null auto_increment,

`cname` varchar(30) not null,

primary key (`cid`)

) engine=innodb default charset=utf8;

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

-- records of clazz

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

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

-- table structure for `student`

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

drop table if exists `student`;

create table `student` (

`sid` int(11) not null auto_increment,

`sname` varchar(30) not null,

`sage` varchar(3) not null,

`cid` int(11) not null,

primary key (`sid`),

key `student_clazz` (`cid`),

constraint `student_clazz` foreign key (`cid`) references `clazz` (`cid`) on delete no action on update no action

) engine=innodb default charset=utf8;

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

-- records of student

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

0、表資料

1、左外連線

左外連線,就是無論on中的條件滿不滿足,都保留左表所有資料

應用要查詢出所有班級的班級名稱以及班級內的學生數。

查詢語句如下:

select cname 班級,count(sname) 總人數 from clazz left join student on (clazz.cid = student.cid) group by clazz.cid結果:

2、右外連線

右外連線,即無論on中的條件滿不滿足,都保留右表所有資料

應用查詢出所有學生資訊,如果學生資訊中沒有班級編號,則顯示「無設定班級」。

查詢語句如下:

select sname, if(isnull(cname),'無班級設定',cname) 班級 from clazz right join student on (clazz.cid = student.cid)

3、全外連線

全外連線,即無論on中的條件滿不滿足,都保留所有表所有資料

測試sql

由於mysql不支援全外連線,所以此條語句只能在其他資料庫中執行。

select * from clazz full outer join student on (clazz.cid = student.cid)4、內連線

內連線,即只保留滿足on條件的資料項,無匹配的資料項被剔除

測試sql

select * from clazz inner join student on (clazz.cid = student.cid)結果

資料庫中內連線 外連線 全連線

內連線 把兩個表中資料對應的資料查出來 外連線 以某個表為基礎把對應資料查出來 全連線是以多個表為基礎 student表 no name 1 a 2 b 3 c 4 d grade表 no grade 1 90 2 98 3 95 內連線 inner join 查詢條件中對應的資料,no4沒有資料不...

資料庫的外連線 內連線 左外連線,全外連線

students表和advisors表 一 內連線 按照advistor id進行表的合併,合併後的資料只有兩個表中advistor id都有的值,對應的行 二 左外連線 按照advistor id進行的左外連線合併,保證表students中advistor id的每一列都在合併後的新錶中,對於ad...

資料庫表左右外內連線查詢

資料表的連線有 1 內連線 自然連線 只有兩個表相匹配的行才能在結果集中出現 2 外連線 包括 1 左外連線 左邊的表不加限制 2 右外連線 右邊的表 不加限制 3 全外連線 左右兩表都不加限制 3 自連線 連線發生在一張基表內 size size x small s size size x sma...