中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

昆山做網(wǎng)站的kamese百度品牌專區(qū)

昆山做網(wǎng)站的kamese,百度品牌專區(qū),wordpress多域名,政協(xié)信息化網(wǎng)站建設(shè)的請示文章目錄 子查詢什么是子查詢where后面使用子查詢from后面使用子查詢select后面使用子查詢exists、not existsin和exists區(qū)別 union&union alllimit 🌈你好呀!我是 山頂風景獨好 💕歡迎來到我的博客,很高興能夠在這里和您見面…

在這里插入圖片描述

文章目錄

  • 子查詢
    • 什么是子查詢
    • where后面使用子查詢
    • from后面使用子查詢
    • select后面使用子查詢
    • exists、not exists
    • in和exists區(qū)別
  • union&union all
  • limit

🌈你好呀!我是 山頂風景獨好
💕歡迎來到我的博客,很高興能夠在這里和您見面!
💕希望您在這里可以感受到一份輕松愉快的氛圍!
💕這里不僅可以獲得有趣的內(nèi)容和知識,也可以暢所欲言、分享您的想法和見解。
🚀 歡迎一起踏上探險之旅,挖掘無限可能,共同成長!

🏠大家訂閱本專欄!本專欄旨在為SQL初學者提供一條逐步邁向高級應(yīng)用的學習之路,帶您從零開始,一步一步練習,逐步掌握SQL的精髓,實現(xiàn)技能的提升與飛躍!😊

子查詢

什么是子查詢

  1. select語句中嵌套select語句就叫做子查詢。
  2. select語句可以嵌套在哪里?
    1. where后面、from后面、select后面都是可以的。
select ..(select)..
from ..(select)..
where ..(select)..

where后面使用子查詢

案例:找出高于平均薪資的員工姓名和薪資。
錯誤的示范:

select ename,sal from emp where sal > avg(sal);

錯誤原因:where后面不能直接使用分組函數(shù)。
可以使用子查詢:

select ename,sal from emp where sal > (select avg(sal) from emp);

from后面使用子查詢

小竅門:from后面的子查詢可以看做一張臨時表。
案例:找出每個部門的平均工資的等級。
第一步:先找出每個部門平均工資。

select deptno, avg(sal) avgsal from emp group by deptno;

image.png
第二步:將以上查詢結(jié)果當做臨時表t,t表和salgrade表進行連接查詢。條件:t.avgsal between s.losal and s.hisal

select t.*,s.grade from (select deptno, avg(sal) avgsal from emp group by deptno) t join salgrade s on t.avgsal between s.losal and s.hisal;

image.png

select后面使用子查詢

select e.ename,(select d.dname from dept d where e.deptno = d.deptno) as dname from emp e;

image.png

exists、not exists

在 MySQL 數(shù)據(jù)庫中,EXISTS(存在)用于檢查子查詢的查詢結(jié)果行數(shù)是否大于0。如果子查詢的查詢結(jié)果行數(shù)大于0,則 EXISTS 條件為真。(即存在查詢結(jié)果則是true。)

主要應(yīng)用場景:

  • EXISTS 可以與 SELECT、UPDATE、DELETE 一起使用,用于檢查另一個查詢是否返回任何行;
  • EXISTS 可以用于驗證條件子句中的表達式是否存在;
  • EXISTS 常用于子查詢條件過濾,例如查詢有訂單的用戶等。
drop table if exists t_customer;
drop table if exists t_order;create table t_customer(customer_id int,customer_name varchar(32)
);create table t_order(order_id int,order_price decimal(5,1),customer_id int
);insert into t_customer(customer_id,customer_name) values(1,'zhangsan');
insert into t_customer(customer_id,customer_name) values(2,'lisi');
insert into t_customer(customer_id,customer_name) values(3,'wangwu');insert into t_order(order_id, order_price, customer_id) values(10, 1000.0, 1);
insert into t_order(order_id, order_price, customer_id) values(20, 2000.0, 1);
insert into t_order(order_id, order_price, customer_id) values(30, 3000.0, 2);
insert into t_order(order_id, order_price, customer_id) values(40, 4000.0, 2);commit;
select * from t_customer;
select * from t_order;

現(xiàn)在我們來看一個簡單的案例,假設(shè)我們要查詢先前有過訂單的顧客,而訂單信息保存在 t_order 表中,顧客信息保存在 t_customer 表中。我們可以使用以下 sql 語句:

select * from t_customer c where exists(select * from t_order o where o.customer_id=c.customer_id);

在這個查詢語句中,子查詢用于檢查是否有訂單與每個客戶相關(guān)聯(lián)。如果子查詢返回至少一行,則表示該顧客已經(jīng)下過訂單,并返回此客戶的所有信息,否則該顧客將不被包含在結(jié)果中。

以下是這個查詢語句的執(zhí)行過程:

  1. 首先查詢表 t_customer 中的所有顧客信息(以下簡稱為顧客表);
  2. 對于顧客表中的每一行,都執(zhí)行一次子查詢,子查詢查詢該顧客有沒有訂單,如果有,則在結(jié)果集中保留該顧客信息;如果沒有,則將該顧客排除;
  3. 最終返回有訂單顧客的所有信息。

除了 EXISTS,也可以使用 NOT EXISTS 條件從 SELECT、UPDATE、DELETE 語句中獲取子查詢的返回結(jié)果。NOT EXISTS 用于檢查一個子查詢是否返回任何行,如果沒有行返回,那么 NOT EXISTS 將返回 true。

例如,我們想要查找所有沒有下過訂單的顧客,可以使用以下 sql 語句:

select * from t_customer c where not exists(select * from t_order o where o.customer_id=c.customer_id);

在這個查詢語句中,如果沒有任何與顧客相關(guān)聯(lián)的訂單,則 NOT EXISTS 子查詢將返回一個空結(jié)果集,這時候 WHERE 條件為 true,并將返回所有顧客信息。如果顧客有訂單,則 NOT EXISTS 子查詢的結(jié)果集將不為空,WHERE 條件為 false,則不會返回該顧客的信息。

總之,無論是 EXISTS 還是 NOT EXISTS,都是非常有用的 SQL 工具??梢酝ㄟ^它們來結(jié)合子查詢來動態(tài)過濾查詢結(jié)果,使 SQL 查詢變得更加靈活和高效。

in和exists區(qū)別

IN 和 EXISTS 都是用于關(guān)系型數(shù)據(jù)庫查詢的操作符。不同之處在于:

  1. IN 操作符是根據(jù)指定列表中的值來判斷是否滿足條件,而 EXISTS 操作符則是根據(jù)子查詢的結(jié)果是否有返回記錄集來判斷。
  2. EXISTS 操作符通常比 IN 操作符更快,尤其是在子查詢返回記錄數(shù)很大的情況下。因為 EXISTS 只需要判斷是否存在符合條件的記錄,而 IN 操作符需要比對整個列表,因此執(zhí)行效率相對較低。
  3. IN 操作符可同時匹配多個值,而 EXISTS 只能匹配一組條件。

下面是一個簡單的示例,用于演示 IN 和 EXISTS 之間的區(qū)別。假設(shè)我們有兩個表 orders 和 products,orders 表中記錄了訂單信息,products 表中記錄了商品信息。現(xiàn)在我們想查詢所有“手機”和“平板電腦”這兩種商品中,至少有一筆訂單銷售了 $1000 以上的商品:

使用 IN 操作符:

SELECT *
FROM products
WHERE product_name IN ('手機', '平板電腦')
AND product_id IN (SELECT product_idFROM ordersWHERE order_amount > 1000
);

使用 EXISTS 操作符:

SELECT *
FROM products
WHERE product_name IN ('手機', '平板電腦')
AND EXISTS (SELECT *FROM ordersWHERE orders.product_id = products.product_idAND order_amount > 1000
);

總之,IN 和 EXISTS 都是用于條件過濾的操作符,但其實現(xiàn)方式和性能特點都不同,需要根據(jù)具體情況進行選擇和使用。

union&union all

不管是union還是union all都可以將兩個查詢結(jié)果集進行合并。
union會對合并之后的查詢結(jié)果集進行去重操作。
union all是直接將查詢結(jié)果集合并,不進行去重操作。(union all和union都可以完成的話,優(yōu)先選擇union all,union all因為不需要去重,所以效率高一些。)
image.png
image.png
案例:查詢工作崗位是MANAGER和SALESMAN的員工。

select ename,sal from emp where job='MANAGER'
union all
select ename,sal from emp where job='SALESMAN';

以上案例采用or也可以完成,那or和union all有什么區(qū)別?考慮走索引優(yōu)化之類的選擇union all,其它選擇or。
兩個結(jié)果集合并時,列數(shù)量要相同:
image.png

limit

  1. limit作用:查詢第幾條到第幾條的記錄。通常是因為表中數(shù)據(jù)量太大,需要分頁顯示。
  2. limit語法格式:
    1. limit 開始下標, 長度
  3. 案例:查詢員工表前5條記錄
select ename,sal from emp limit 0, 5;

如果下標是從0開始,可以簡寫為:

select ename,sal from emp limit 5;
  1. 查詢工資排名在前5名的員工(limit是在order by執(zhí)行之后才會執(zhí)行的)
select ename,sal from emp order by sal desc limit 5;
  1. 通用的分頁sql

假設(shè)每頁顯示3條記錄:pageSize = 3
第1頁:limit 0, 3
第2頁:limit 3, 3
第3頁:limit 6, 3
第pageNo頁:limit (pageNo - 1)*pageSize, pageSize


? 這就是今天要分享給大家的全部內(nèi)容了,我們下期再見!😊

🏠 我在CSDN等你哦!我的主頁😍

在這里插入圖片描述

http://www.risenshineclean.com/news/51721.html

相關(guān)文章:

  • 有沒關(guān)于做動畫設(shè)計師的網(wǎng)站臺灣新聞最新消息今天
  • 自己做的網(wǎng)站如何讓別的網(wǎng)可以查看seo賺錢暴利
  • 北京開發(fā)網(wǎng)站上海有哪些優(yōu)化網(wǎng)站推廣公司
  • 網(wǎng)站怎么做的防采集此網(wǎng)站三天換一次域名
  • 網(wǎng)站換模板影響全網(wǎng)整合營銷外包
  • 網(wǎng)站注冊賬號怎么做百度網(wǎng)址鏈接是多少
  • 做網(wǎng)站的怎么認證微博短視頻seo營銷系統(tǒng)
  • 畢設(shè)做桌面軟件還是網(wǎng)站優(yōu)化seo公司哪家好
  • 想做電商需要投資多少錢seo資料
  • php網(wǎng)站開發(fā)筆試題百度競價排名正確解釋
  • 可提供獨立站建站服務(wù)的公司寧波網(wǎng)站優(yōu)化公司價格
  • 網(wǎng)站怎么做效果更好天橋區(qū)seo全網(wǎng)宣傳
  • 六一兒童節(jié)網(wǎng)站制作北京百度seo排名點擊器
  • c 做asp.net網(wǎng)站西安seo建站
  • 網(wǎng)站建設(shè)新方向開魯網(wǎng)站seo不用下載
  • 做編程的網(wǎng)站有哪些方面廣告公司注冊
  • 在那個網(wǎng)站做直播好賺錢百度指數(shù)與百度搜索量
  • wordpress 企業(yè)站 模板網(wǎng)絡(luò)廣告的優(yōu)勢有哪些
  • 河北建設(shè)網(wǎng)站信息查詢中心seo優(yōu)化服務(wù)商
  • 河北做網(wǎng)站哪家公司好西安網(wǎng)站seo公司
  • 網(wǎng)站推廣的必要性品牌網(wǎng)站建設(shè)公司
  • 連云港專業(yè)做網(wǎng)站環(huán)球網(wǎng)今日疫情消息
  • 蜘蛛爬取網(wǎng)站旅游營銷推廣方案
  • 做企鵝號的視頻素材網(wǎng)站獨立站網(wǎng)站
  • 如何在網(wǎng)站中做二級下拉菜單網(wǎng)站怎樣優(yōu)化關(guān)鍵詞好
  • 通州網(wǎng)站建設(shè)電話日本比分預(yù)測
  • 廈門百度網(wǎng)站建設(shè)新浪微輿情大數(shù)據(jù)平臺
  • 網(wǎng)站開發(fā)的目的意義數(shù)據(jù)統(tǒng)計網(wǎng)站
  • 企業(yè)網(wǎng)站規(guī)劃案例國外免費網(wǎng)站建設(shè)
  • 自己怎么免費做網(wǎng)站公司網(wǎng)頁制作