oracle02

来源:http://www.cnblogs.com/PinkPink/archive/2017/09/27/7600354.html
-Advertisement-
Play Games

SQL語句完整結構: select from where group by having order by 今天分享的知識點:(1)分組查詢 select 中非組函數的列需要在group by 進行參與分組運算 where 後面不能使用組函數,having可以;如果使用非組函數過濾,優先使用wher ...


SQL語句完整結構:
select from where group by having order by

今天分享的知識點:
(1)分組查詢
select 中非組函數的列需要在group by 進行參與分組運算
where 後面不能使用組函數,having可以;如果使用非組函數過濾,優先使用where
增強分組查詢group by rollup(a,b),先對a和b分組,再對a分組,再對null分組;

(2)自連接和外連接查詢(全集,子集。全集表在哪邊就是啥連接)
自連接
select e1.empno,e1.ename,e1.mgr,e2.ename from emp e1,emp e2 where e1.mgr=e2.empno(+);

sql99標準:
A a left join B b on a.col1=b.col2 左連接
A a right join B b on a.col1=b.col2 右連接
orcle:
A a , B b where a.col1(+)=b.col2 右連接
A a , B b where a.col1 =b.col2(+) 左連接

select d.deptno 部門編號,d.dname 部門名稱,count(e.empno) 部門總人數 from emp e, dept d where e.deptno(+)=d.deptno
group by d.deptno,d.dname order by d.deptno;

(3) 等值連接
等值連接 where =
不等值連接 where between and,等


(4)子查詢(select 語句的嵌套)
子查詢放在哪裡?select ,from ,where,having
子查詢用什麼關鍵字連接?單行子查詢使用(=,<>,>,>=,<,<=,between and),多行子查詢使用單行運算符和(in(),any(),all())
子查詢和主查詢執行順序?一般首先執行子查詢,相關子查詢首先執行主查詢;
子查詢一般參與排序麽?一般不參與排序,但是在分頁查詢中需要對子查詢排序;
相關子查詢需要註意什麼?主查詢的結果可以以參數傳遞給子查詢使用
對多行子查詢not in()不能使用null的理解

(5)層次查詢(針對的是一張表,該表中存在tree的結構)
connect by prior empno=mgr start with mgr is null

(6)分頁查詢
一張表不經過任何操作預設帶有rownum行號,經過排序操作之後,該行號也隨著排序了,但不是從1-2-3排序的
為了重新按照1-2-3排序,需要將參與排列的表放入from中構成一張新的表;新表的順序是按照1-2-3排序的
rownum 不能直接rownum>1,但是可以使用rownum<6
為了使用rownum>1,我們把rownum當成列來使用而不是行號;
select * from (select rownum rm,e1.* from (select rownum,e.* from emp e order by sal desc)
e1 where rownum<8 ) e2 where rm>2;
(7)集合操作
union 去重,union all不去重
集合參與運算(並集,交集,差集)需要每一個集合的列個數和類型要一樣;
order by放在最後;
set timing on
(8)臨時表
create global temporary xx on commit delete rows;

註意:

自然連接(顯示的只能是* ,不能使用on 有一個連接條件)
select * from emp natural join dept;

交叉連接(產生了笛卡爾積)
select e.ename,d.dname from emp e cross join dept d;

內連接(在笛卡爾積上選擇了滿足on條件的記錄行)
顯式內連接:select * from emp e inner join dept d on e.deptno=d.deptno;
隱式內連接:select * from emp e , dept d where e.deptno=d.deptno;

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Android 8.0 為用戶和開發者引入多種新功能。本文重點介紹面向開發者的新功能。 用戶體驗 通知 在 Android 8.0 中,我們已重新設計通知,以便為管理通知行為和設置提供更輕鬆和更統一的方式。這些變更包括: 通知渠道:Android 8.0 引入了通知渠道,其允許您為要顯示的每種通知類 ...
  • 1. UIStackView相關屬性理解 UIStackView是iOS9之後推出的,我也是第一次接觸,在學習的過程中對於其中的相關屬性,尤其是對其中的distribution幾個屬性值,一知半解的,所以特寫此文通過代碼實例理解它們每個屬性的區別。 UIStackView主要包括了四大屬性:axis ...
  • 多渠道打包: 可以理解為:同時發佈多個渠道的apk。分別上架不同的應用商店。這些apk帶有各自渠道的標簽,用於統計分析各個商店的下載次數等數據。 實現步驟 一、添加友盟渠道標簽 添加位置:app目錄下的 AndroidManifest.xml文件 添加語句: 示例: 二、添加渠道 添加幾個,打包的時 ...
  • Https系列會在下麵幾篇文章中分別作介紹: 一:https的簡單介紹及SSL證書的生成二:https的SSL證書在伺服器端的部署,基於tomcat,spring boot三:讓伺服器同時支持http、https,基於spring boot四:https的SSL證書在Android端基於okhttp ...
  • 在目前的軟體應用中,輸入方式還是以文字輸入方式為主,但是語音輸入的方式目前應用的越來越廣泛。這是一個利用 Olami SDK 編寫的一個24點iOS程式,是通過語音進行輸入。 Olami SDK的介紹在下麵這個網址 https://cn.olami.ai/wiki/?mp=sdk&content... ...
  • 1. 退出 Xcode 2. 重啟電腦 3. 找到 這個 DerivedData 文件夾 刪除 (路徑: ~/Library/Developer/Xcode/DerivedData) 4. 刪除這個 com.apple.dt.Xcode 文件 (路徑: ~/Library/Caches/com.ap ...
  • 1.MD5加密 ///MD5加密 + (NSString *)md5:(NSString *)inputString{ const char *cStr = [inputString UTF8String]; unsigned char digest[CC_MD5_DIGEST_LENGTH]; C ...
  • [20170927]關於hugepages.txt--//今天測試hugepages與內核參數nr_overcommit_hugepages,才發現HugePages_Surp表示什麼?--// [20170209]理解pre_page_sga參數.txt => http://blog.itpub. ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...