MySQL基礎(chǔ)之多表查詢案例分享
多表查詢案例
數(shù)據(jù)環(huán)境準(zhǔn)備
create table salgrade( grade int, losal int, hisal int ) comment '薪資等級(jí)表'; insert into salgrade values (1,0,3000); insert into salgrade values (2,3001,5000); insert into salgrade values (3,5001,8000); insert into salgrade values (4,8001,10000); insert into salgrade values (5,10001,15000); insert into salgrade values (6,15001,20000); insert into salgrade values (7,20001,25000); insert into salgrade values (8,25001,30000);
在這個(gè)案例中,我們主要運(yùn)用上面所講解的多表查詢的語法,完成以下的12個(gè)需求即可,而這里主要涉及到的表就三張:emp員工表、dept部門表、salgrade薪資等級(jí)表 。
查詢員工的姓名、年齡、職位、部門信息 (隱式內(nèi)連接)
表: emp , dept
連接條件: emp.dept_id = dept.id
select e.name , e.age , e.job , d.name from emp e , dept d where e.dept_id = d.id;

查詢年齡小于30歲的員工的姓名、年齡、職位、部門信息(顯式內(nèi)連接)
表: emp , dept
連接條件: emp.dept_id = dept.id
select e.name , e.age , e.job , d.name from emp e inner join dept d on e.dept_id =d.id where e.age < 30;

查詢擁有員工的部門ID、部門名稱
表: emp , dept
連接條件: emp.dept_id = dept.id
select distinct d.id , d.name from emp e , dept d where e.dept_id = d.id;

查詢所有年齡大于40歲的員工, 及其歸屬的部門名稱; 如果員工沒有分配部門, 也需要展示出來(外連接)
表: emp , dept
連接條件: emp.dept_id = dept.id
select e.*, d.name from emp e left join dept d on e.dept_id = d.id where e.age >40 ;

查詢所有員工的工資等級(jí)
表: emp , salgrade
連接條件 : emp.salary >= salgrade.losal and emp.salary <= salgrade.hisal
-- 方式一 select e.* , s.grade , s.losal, s.hisal from emp e , salgrade s where e.salary >= s.losal and e.salary <= s.hisal; -- 方式二 select e.* , s.grade , s.losal, s.hisal from emp e , salgrade s where e.salary between s.losal and s.hisal;

到此這篇關(guān)于MySQL基礎(chǔ)之多表查詢案例分享的文章就介紹到這了,更多相關(guān)MySQL多表查詢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
淺談InnoDB隔離模式的使用對(duì)MySQL性能造成的影響
Mysql字符串字段判斷是否包含某個(gè)字符串的2種方法
Linux centos7環(huán)境下MySQL安裝教程
詳解MySQL恢復(fù)psc文件記錄數(shù)為0的解決方案
總結(jié)MySQL建表、查詢優(yōu)化的一些實(shí)用小技巧
mysql 字符串轉(zhuǎn)數(shù)組的實(shí)現(xiàn)示例
mysql root密碼的重設(shè)方法(親測(cè)可用)

