-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...