91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

什么是Java中的表連接查詢

發布時間:2020-07-28 11:27:09 來源:億速云 閱讀:159 作者:Leah 欄目:編程語言

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

1、什么是表連接查詢?

1)數據準備

# 創建部門表

create table dept(

id int primary key auto_increment,

name varchar(20)

)

insert into dept (name) values ('開發部'),('市場部'),('財務部');

# 創建員工表

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) -- 外鍵,關聯部門表(部門表的主鍵)

)

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語句查詢多張表,因為查詢結果在多張不同的表中。每張表取1列或多列。

3)多表查詢的分類

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

2、笛卡爾積現象

1)什么是笛卡爾積現象

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

select * from emp,dept;

2)如何清除笛卡爾積現象的影響

不是所有的數據組合都是有用的,只有員工表.dept_id = 部門表.id 的數據才是有用的。所以需要通過條件過濾掉沒用的數據。

-- 設置過濾條件 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、內連接

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

1)隱式內連接

隱式內連接:看不到JOIN關鍵字,條件使用WHERE指定。

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

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

什么是Java中的表連接查詢

2)顯式內連接

顯示內連接:使用INNER JOIN ... ON語句, 可以省略INNER

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

查詢唐僧的信息,顯示員工id,姓名,性別,工資和所在的部門名稱,我們發現需要聯合2張表同時才能查詢出需要的數據,使用內連接。

什么是Java中的表連接查詢

4、左外連接

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

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

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

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

-- 在部門表中增加一個銷售部

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

select * from dept;

-- 使用內連接查詢

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 ... ONOUTER可以省略

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

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

可以理解為:在內連接的基礎上保證右表的數據全部顯示

-- 在員工表中增加一個員工

-- 在員工表中增加一個員工

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

select * from emp;

-- 使用內連接查詢

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中的表連接查詢

看完上述內容,你們對什么是Java中的表連接查詢有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昌宁县| 平顺县| 连江县| 大埔区| 高安市| 东乌珠穆沁旗| 皮山县| 威远县| 长沙县| 通化市| 惠水县| 青州市| 东乡族自治县| 重庆市| 宝丰县| 延安市| 明光市| 晋宁县| 阿克陶县| 宝清县| 邹城市| 金阳县| 德江县| 宁强县| 阳新县| 马山县| 平邑县| 临江市| 五峰| 叙永县| 奉新县| 侯马市| 革吉县| 清丰县| 沁源县| 平塘县| 翼城县| 河池市| 德兴市| 吴忠市| 安远县|