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

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

什么是Java中的表連接查詢

今天就跟大家聊聊有關(guān)什么是Java中的表連接查詢,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)尼瑪,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18982081108

1、什么是表連接查詢?

(1)數(shù)據(jù)準(zhǔn)備

#創(chuàng)建部門表

create table dept(

id int primary key auto_increment,

name varchar(20)

)

insert into dept (name) values ('開(kāi)發(fā)部'),('市場(chǎng)部'),('財(cái)務(wù)部');

#創(chuàng)建員工表

create table emp (

id int primary key auto_increment,

name varchar(10),

gender char(1), --性別

salary double, --工資

join_date date, --入職日期

dept_id int,

foreign key (dept_id) references dept(id) --外鍵,關(guān)聯(lián)部門表(部門表的主鍵)

)

insert into emp(name,gender,salary,join_date,dept_id) values('孫悟空','男',7200,'2013-02-24',1);

insert into emp(name,gender,salary,join_date,dept_id) values('豬八戒','男',3600,'2010-12-02',2);

insert into emp(name,gender,salary,join_date,dept_id) values('唐僧','男',9000,'2008-08-08',2);

insert into emp(name,gender,salary,join_date,dept_id) values('白骨精','女',5000,'2015-10-07',3);

insert into emp(name,gender,salary,join_date,dept_id) values('蜘蛛精','女',4500,'2011-03-14',1);

(2)多表查詢的作用

比如:我們想查詢孫悟空的名字和他所在的部門的名字,則需要使用多表查詢。如果一條SQL語(yǔ)句查詢多張表,因?yàn)椴樵兘Y(jié)果在多張不同的表中。每張表取1列或多列。

(3)多表查詢的分類

多表查詢分為內(nèi)連接和外連接。內(nèi)連接又分為隱式內(nèi)連接和顯示內(nèi)連接。而外連接又分為左外連接和右外連接。

2、笛卡爾積現(xiàn)象

(1)什么是笛卡爾積現(xiàn)象

--需求:查詢所有的員工和所有的部門

select * from emp,dept;

(2)如何清除笛卡爾積現(xiàn)象的影響

不是所有的數(shù)據(jù)組合都是有用的,只有員工表.dept_id =部門表.id的數(shù)據(jù)才是有用的。所以需要通過(guò)條件過(guò)濾掉沒(méi)用的數(shù)據(jù)。

--設(shè)置過(guò)濾條件 Column 'id' in where clause is ambiguous

select * from emp,dept where id=5;

select * from emp,dept where emp.`dept_id` = dept.`id`;

--查詢員工和部門的名字

select emp.`name`, dept.`name` from emp,dept where emp.`dept_id` = dept.`id`;

3、內(nèi)連接

用左邊表的記錄去匹配右邊表的記錄,如果符合條件的則顯示。如:從表.外鍵=主表.主鍵

(1)隱式內(nèi)連接

隱式內(nèi)連接:看不到JOIN關(guān)鍵字,條件使用WHERE指定。

SELECT字段名 FROM左表,右表 WHERE條件

select * from emp,dept where emp.`dept_id` = dept.`id`;

什么是Java中的表連接查詢

(2)顯式內(nèi)連接

顯示內(nèi)連接:使用INNER JOIN ... ON語(yǔ)句,可以省略INNER

SELECT字段名 FROM左表 [INNER] JOIN右表 ON條件

查詢唐僧的信息,顯示員工id,姓名,性別,工資和所在的部門名稱,我們發(fā)現(xiàn)需要聯(lián)合2張表同時(shí)才能查詢出需要的數(shù)據(jù),使用內(nèi)連接。

什么是Java中的表連接查詢

4、左外連接

左外連接:使用LEFT OUTER JOIN ... ON,OUTER可以省略

SELECT字段名 FROM左表 LEFT [OUTER] JOIN右表 ON條件

用左邊表的記錄去匹配右邊表的記錄,如果符合條件的則顯示;否則,顯示NULL

可以理解為:在內(nèi)連接的基礎(chǔ)上保證左表的數(shù)據(jù)全部顯示(左表是部門,右表員工)

--在部門表中增加一個(gè)銷售部

insert into dept (name) values ('銷售部');

select * from dept;

--使用內(nèi)連接查詢

select * from dept d inner join emp e on d.`id` = e.`dept_id`;

--使用左外連接查詢

select * from dept d left join emp e on d.`id` = e.`dept_id`;

什么是Java中的表連接查詢

5、右外連接

右外連接:使用RIGHT OUTER JOIN ... ON,OUTER可以省略

SELECT字段名 FROM左表 RIGHT [OUTER ]JOIN右表 ON條件

用右邊表的記錄去匹配左邊表的記錄,如果符合條件的則顯示;否則,顯示NULL

可以理解為:在內(nèi)連接的基礎(chǔ)上保證右表的數(shù)據(jù)全部顯示

--在員工表中增加一個(gè)員工

--在員工表中增加一個(gè)員工

insert into emp values (null, '沙僧','男',6666,'2013-12-05',null);

select * from emp;

--使用內(nèi)連接查詢

select * from dept inner join emp on dept.`id` = emp.`dept_id`;

--使用右外連接查詢

select * from dept right join emp on dept.`id` = emp.`dept_id`;

什么是Java中的表連接查詢

看完上述內(nèi)容,你們對(duì)什么是Java中的表連接查詢有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


分享名稱:什么是Java中的表連接查詢
轉(zhuǎn)載來(lái)源:http://weahome.cn/article/picjcs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部