綜合練習(二)

目錄

列出薪金比 SMITH 或 ALLEN 多的所有員工的編號、姓名、部門名稱、領導姓名、部門人數,以及所在部門的平均工資、最高和最低工資

補充

spool


Oracle從入門到總裁:https://blog.csdn.net/weixin_67859959/article/details/135209645

列出薪金比 SMITH 或 ALLEN 多的所有員工的編號、姓名、部門名稱、領導姓名、部門人數,以及所在部門的平均工資、最高和最低工資

?確定要使用的數據表

emp 表:員工的編號、姓名

dept 表:部門名稱

emp 表:領導姓名

emp 表:統計信息

確定已知的關聯字段

員工與部門:emp.deptno=dept.deptno

員工與領導:emp.mgr=memp.empno

第一步:知道 SMITH 或 ALLEN 的薪金,這個查詢返回多行單列(WHERE 中使用)。

SQL> select sal2  from emp3  where ename in('SMITH','ALLEN');SAL
----------8001600

第二步:應該比里面的任意一個多即可,但是要去掉這兩個員工

由于是多行單列子查詢,所以使用 >ANY 完成

SQL> select e.empno,e.ename,e.sal2  from emp e3  where e.sal>any(4  select sal5  from emp6      where ename in('SMITH','ALLEN'))7      and e.ename not in('SMITH','ALLEN');EMPNO ENAME                       SAL
---------- -------------------- ----------7839 KING                       50007902 FORD                       30007566 JONES                      29757698 BLAKE                      28507782 CLARK                      24507844 TURNER                     15007934 MILLER                     13007654 MARTIN                     12507521 WARD                       12507900 JAMES                       950已選擇 10 行。

第三步:找到部門名稱

SQL> select e.empno,e.ename,e.sal,d.dname2  from emp e,dept d3  where e.sal>any(4  select sal5  from emp6      where ename in('SMITH','ALLEN'))7      and e.ename not in('SMITH','ALLEN')8      and e.deptno=d.deptno;EMPNO ENAME                       SAL DNAME
---------- -------------------- ---------- ----------------------------7839 KING                       5000 ACCOUNTING7902 FORD                       3000 RESEARCH7566 JONES                      2975 RESEARCH7698 BLAKE                      2850 SALES7782 CLARK                      2450 ACCOUNTING7844 TURNER                     1500 SALES7934 MILLER                     1300 ACCOUNTING7521 WARD                       1250 SALES7654 MARTIN                     1250 SALES7900 JAMES                       950 SALES

第四步:找到領導信息

SQL> select e.empno,e.ename,e.sal,d.dname,m.ename2  from emp e,dept d,emp m3  where e.sal>any(4  select sal5  from emp6      where ename in('SMITH','ALLEN'))7      and e.ename not in('SMITH','ALLEN')8      and e.deptno=d.deptno9      and e.mgr=m.empno(+);EMPNO ENAME                       SAL DNAME                        ENAME
---------- -------------------- ---------- ---------------------------- --------------------7902 FORD                       3000 RESEARCH                     JONES7844 TURNER                     1500 SALES                        BLAKE7521 WARD                       1250 SALES                        BLAKE7654 MARTIN                     1250 SALES                        BLAKE7900 JAMES                       950 SALES                        BLAKE7934 MILLER                     1300 ACCOUNTING                   CLARK7566 JONES                      2975 RESEARCH                     KING7698 BLAKE                      2850 SALES                        KING7782 CLARK                      2450 ACCOUNTING                   KING7839 KING                       5000 ACCOUNTING已選擇 10 行。

第五步:得到部門人數,以及部門平均工資、最高和最低工資

整個查詢里面不能夠直接使用GROUP BY,所以現在應該利用子查詢實現統計操作

SQL> select e.empno,e.ename,e.sal,d.dname,m.ename,temp.count,temp.avg,temp.max,temp.min2  from emp e,dept d,emp m,(3  select deptno dno,count(empno) count,avg(sal) avg,max(sal) max,min(sal) min4      from emp5      group by deptno) temp6  where e.sal>any(7  select sal8  from emp9      where ename in('SMITH','ALLEN'))10      and e.ename not in('SMITH','ALLEN')11      and e.deptno=d.deptno12      and e.mgr=m.empno(+)13      and d.deptno=temp.dno;EMPNO ENAME                       SAL DNAME                        ENAME                     COUNT        AVG        MAX        MIN
---------- -------------------- ---------- ---------------------------- -------------------- ---------- ---------- ---------- ----------7902 FORD                       3000 RESEARCH                     JONES                         3 2258.33333       3000        8007844 TURNER                     1500 SALES                        BLAKE                         6 1566.66667       2850        9507654 MARTIN                     1250 SALES                        BLAKE                         6 1566.66667       2850        9507521 WARD                       1250 SALES                        BLAKE                         6 1566.66667       2850        9507900 JAMES                       950 SALES                        BLAKE                         6 1566.66667       2850        9507934 MILLER                     1300 ACCOUNTING                   CLARK                         3 2916.66667       5000       13007566 JONES                      2975 RESEARCH                     KING                          3 2258.33333       3000        8007698 BLAKE                      2850 SALES                        KING                          6 1566.66667       2850        9507782 CLARK                      2450 ACCOUNTING                   KING                          3 2916.66667       5000       13007839 KING                       5000 ACCOUNTING                                                 3 2916.66667       5000       1300已選擇 10 行。

補充

spool

在數據庫實際操作中,需要將查詢結果輸出到指定文件中,此時可以使用 spool 命令?

spool filename [create][replace][append]|OFF|OUT

其中

filename 為輸出的文件名稱,默認的擴展名為 LST,后面所跟參數作用如下

create 表示創建新的文件,是默認狀態

replace 表示替代已經存在的文件

append 表示把查詢內容附加到已經存在的文件中

OFF|OUT 表示關閉輸出

例如:

下面代碼將查詢結果輸出到 D 盤的 temp.ext 文件中?

SQL> spool d:\temp.txt
SQL> select empno,ename,job from emp;EMPNO ENAME                JOB
---------- -------------------- ------------------7369 SMITH                CLERK7499 ALLEN                SALESMAN7521 WARD                 SALESMAN7566 JONES                MANAGER7654 MARTIN               SALESMAN7698 BLAKE                MANAGER7782 CLARK                MANAGER7839 KING                 PRESIDENT7844 TURNER               SALESMAN7900 JAMES                CLERK7902 FORD                 ANALYSTEMPNO ENAME                JOB
---------- -------------------- ------------------7934 MILLER               CLERK8989 HELLO已選擇 13 行。SQL> spool off

此時,我的D盤就有了這個文件,內容如下?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/712230.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/712230.shtml
英文地址,請注明出處:http://en.pswp.cn/news/712230.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

STM32USART串口數據包

文章目錄 前言一、介紹部分數據包兩種包裝方式(分割數據)HEX數據包文本數據包 數據包的收發流程數據包的發送數據包的接收固定包長的hex數據包接收可變包長的文本數據包接收 二、實例部分固定包長的hex數據包接收連接線路代碼實現 可變包長的文本數據包接…

【InternLM 實戰營筆記】基于 InternLM 和 LangChain 搭建你的知識庫

準備環境 bash /root/share/install_conda_env_internlm_base.sh InternLM升級PIP # 升級pip python -m pip install --upgrade pippip install modelscope1.9.5 pip install transformers4.35.2 pip install streamlit1.24.0 pip install sentencepiece0.1.99 pip install a…

MySQL 多表查詢 連接查詢 外連接

介紹 MySQL 多表查詢 連接查詢 內連接 外連接分為兩種,左外和右外連接, 左外:相當于查詢表1(左表)的所有數據 包含 表1和表2交集部分的數據,完全包含左表的數據 右外:相當于查詢表2(右表)的所有數據 包含 表1和表2交集部分的數據…

比特幣暴漲逼近歷史最高點;阿里云全線降價20%丨 RTE 開發者日報 Vol.155

開發者朋友們大家好: 這里是 「RTE 開發者日報」 ,每天和大家一起看新聞、聊八卦。我們的社區編輯團隊會整理分享 RTE (Real Time Engagement) 領域內「有話題的 新聞 」、「有態度的 觀點 」、「有意思的 數據 」、「有思考的 文…

mysql查詢某個庫下所有表的數據量

要查詢MySQL數據庫下指定數據庫的所有表的數據量(即每個表中的記錄數),你可以使用以下步驟: 連接到MySQL數據庫:首先,你需要使用MySQL客戶端或任何支持MySQL連接的編程語言(如Python, PHP, Nod…

adb命名大全

1. 獲取內部版本號: adb shell getprop ro.build.display.innerver 2. 獲取按鍵值: adb shell getevent 3. 獲取apk信息: adb shell dumpsys package 包名 ->info.txt 4. 獲取應用包名:adb shell dumpsys window windows | gre…

男頻和女頻的區別是什么?

男頻是我去找權力。女頻是權力來找我。 男頻不管是什么類型的,核心大抵都是接近權力,干掉權力,成為強權。 開局男主角弱小,被人嘲笑,被人瞧不起,父母親人連帶著沒地位,欠錢,被冤枉&a…

算法D32 | 貪心算法2 | 122.買賣股票的最佳時機II 55. 跳躍游戲 45.跳躍游戲II

122.買賣股票的最佳時機II 本題解法很巧妙&#xff0c;大家可以看題思考一下&#xff0c;在看題解。 代碼隨想錄P 只收集每天的正利潤&#xff0c;利潤可以每天分解。 Python: class Solution:def maxProfit(self, prices: List[int]) -> int:if len(prices)<2: retur…

C++的晨曦之旅:開啟編程的新篇章

個人主頁&#xff1a;日刷百題 系列專欄&#xff1a;〖C/C小游戲〗〖Linux〗〖數據結構〗 〖C語言〗 &#x1f30e;歡迎各位→點贊&#x1f44d;收藏??留言&#x1f4dd; ? ? 一、 命名空間 在 C/C 中&#xff0c;變量、函數和后面要學到的類都是大量存在的&#xff0…

龍躍金三銀四,程序員如何翻云覆雨贏取心儀offer

春天的腳步漸近&#xff0c;萬物復蘇&#xff0c;生機盎然。對于許多程序員來說&#xff0c;一年中最繁忙、最重要的面試季節也隨之而來。金三銀四&#xff0c;即三月和四月&#xff0c;被廣大程序員視為求職的黃金時期。在這兩個月里&#xff0c;各大公司紛紛開放招聘&#xf…

div在vue的組件之中如何設置這個字體的顏色和樣式大小

在Vue組件中設置<div>的字體顏色和樣式大小可以通過兩種主要方式實現&#xff1a;通過內聯樣式&#xff08;inline styles&#xff09;或者通過CSS類&#xff08;CSS classes&#xff09;。 使用內聯樣式 在Vue模板中直接在元素上使用style屬性來設置樣式。這種方法適用…

Android Shadow插件化框架分析與集成(一)

一、shadow源碼導入及分析 1、下載項目源碼 2、導入到Android studio 3、設置jdk及sdk版本 包/應用描述類型sample-constant公共字符串常量libsample-host宿主應用applicationsample-host-lib宿主應用依賴包libsample-manager是插件管理器的動態實現,主要負責加載插件和安裝…

【Android開發】01-第一個Android APP

一、改MainActivity class MainActivity : AppCompatActivity() {/*因Android的app有生命周期&#xff0c;故入口是OnCreate而不是main函數*/override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main…

071:vue+cesium 實現下雨效果

第071個 點擊查看專欄目錄 本示例的目的是介紹如何在vue+cesium中實現下雨效果,這里使用著色器來實現實例特效。 直接復制下面的 vue+cesium源代碼,操作2分鐘即可運行實現效果. 文章目錄 示例效果配置方式示例源代碼(共120行)著色代碼實現心得:專欄目標示例效果

【筆記】深度學習入門:基于Python的理論與實現(六)

深度學習 深度學習是加深了層的深度神經網絡 加深網絡 本節我們將這些已經學過的技術匯總起來&#xff0c;創建一個深度網絡&#xff0c;挑戰 MNIST 數據集的手寫數字識別 向更深的網絡出發 基于33的小型濾波器的卷積層。激活函數是ReLU。全連接層的后面使用Dropout層。基…

初階數據結構:棧與隊列的擴展補充

目錄 1. 棧與隊列練習題1.1 棧的括號匹配問題1.2 用隊列來實現棧1.3 用棧來實現隊列1.4 擴展&#xff1a;循環隊列 1. 棧與隊列練習題 1.1 棧的括號匹配問題 題目信息&#xff1a; 題目鏈接&#xff1a; 括號匹配問題 思路&#xff1a; 利用棧的后進先出特性來實現括號的匹配 …

網絡編程day3

1.思維導圖 2.TCP機械臂測試 tcpCli.c #include<myhead.h> #define SER_IP "192.168.125.162" //服務器IP #define SER_PORT 7777 //服務器端口#define CLI_IP "192.168.159.144" //客戶端IP #define CLI_PORT 9999 //客戶端端口號int…

婚姻情感 17

婚姻情感 17 怎么和女生聊天&#xff1f;讓對方感興趣給對方好體驗深層次的聊天刷心疼長得帥和強大的區別從我到我們 追女生的思路 怎么和女生聊天&#xff1f; 在和女生互動的時候就很難去進入一種很深層次的一個連接&#xff0c;就是說很多時候我們和女生互動總是停留在第三…

底層自行實現——監督學習算法(1線性回歸)

1.1 簡單線性回歸 1. 簡介 簡單線性回歸&#xff08;SLR - Simple Linear Regression&#xff09;模型可以表示為&#xff1a; Y β 0 β 1 X ? Y \beta_0 \beta_1X \epsilon Yβ0?β1?X? Y Y Y&#xff1a;因變量或目標變量。 X X X&#xff1a;自變量或解釋變量。…

考取ORACLE數據庫OCP的必要性 Oracle數據庫

OCP證書是什么&#xff1f; OCP&#xff0c;全稱Oracle Certified Professional&#xff0c;是Oracle公司的Oracle數據庫DBA&#xff08;Database Administrator&#xff0c;數據庫管理員)認證課程。這是Oracle公司針對數據庫管理領域設立的一項認證課程&#xff0c;旨在評估和…