版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
查詢SQL培訓(xùn)——單表查詢及函數(shù)培訓(xùn)要點查詢語句整體結(jié)構(gòu)關(guān)于SELECT子句關(guān)于ORDERBY子句關(guān)于WHERE子句運算符表達(dá)式關(guān)于GROUPBY子句關(guān)于HAVING子句查詢語句的整體結(jié)構(gòu)
SELECT
字段清單
FROM
表名【W(wǎng)HERE
查詢條件】
【GTOUPBY
分組表達(dá)式】【HAVING
分組查詢條件】【ORDERBY排序表達(dá)式】可選子句SELECT語句From子句Where子句GroupBy子句Having子句Select子句OrderBy子句查詢語句的執(zhí)行順序SELECT語句關(guān)于Select子句SELECT
字段清單FROM
表名指定多列時,各列之間用逗號分開;指定表中所有列時,可用*實現(xiàn);AS:在列名后使用此關(guān)鍵字來指定列的別名;Distinct:在字段清單中使用此關(guān)鍵字,可去除查詢結(jié)果中的重復(fù)信息。SelectDistinctRiskcodeAs
險種,KindcodeFromPrpcitemkind例SELECT語句selectt.uuidas編號,t.username名稱fromtb_user_infot關(guān)于OrderBy子句SELECT
字段清單FROM
表名ORDERBY排序表達(dá)式OrderBy子句要放在所有子句的最后;排序表達(dá)式可以指定多列,各列之間用逗號分開,按列名順序確定優(yōu)先級;ASC:升序(默認(rèn));DESC:降序。SelectDistinctRiskcode,KindcodeFromPrpcitemkindOrderByRiskcodeDESC,Kindcode例SELECT語句selectt.uuidas編號,t.username名稱,
t.addtimefromtb_user_infotorderbyt.addtimedesc關(guān)于Where子句SELECT
字段清單FROM
表名WHERE
查詢條件ORDERBY排序表達(dá)式
查詢條件可以是單條件,也可以是組合條件;構(gòu)成查詢條件時要使用運算符。查詢條件中字符串和日期要用單引號擴(kuò)起來;字符串是大小寫敏感的;日期值是格式敏感的,缺省的日期格式是'DD-MON-RR'
SelectDistinctRiskcode,KindcodeFromPrpcitemkindWhereRiskcode=‘2701’OrderByRiskcodeDESC,Kindcode例SELECT語句selectt.lotteryid彩種,t.lotteryissue期號,
fromtb_lottery_infotwheret.starttimestamp>to_date('2012-03-06','yyyy-mm-dd')orderbyt.lotteryidasc,t.lotteryissuedesc比較運算符運算符說明=等于>大于<小于>=大于等于<=小于等于<>或!=不等于!<不小于!>不大于
列名運算符常量值Select*FromPrpcfeeWhereCurrecy1=‘CNY’列名運算符列名Select*FromPrpcfeeWhereCurrecy1=Currency例運算符selectt.unionorderid方案號fromtb_lotteryschemeinfotwhere
t.bonusvalue>10000selectt.unionorderid方案號fromtb_lotteryschemeinfotwheret.bonusvalue>t.schemevalueBETWEEN…AND…運算符在兩值(包含)間進(jìn)行比較篩選,例:selectt.unionorderid方案號fromtb_lotteryschemeinfotwheret.bonusvalue/100between500and50000selectt.unionorderid方案號fromtb_lotteryschemeinfotwheret.bonusvalue/100>=500
and
t.bonusvalue/100<=50000運算符IN運算符在指定的多個條件值中進(jìn)行比較篩選,只要滿足其中一個值即條件成立,例:selectt.lotteryid,t.descriptionfromtd_lotterytwheret.lotteryidin(214,215,216,217)selectt.lotteryid,t.descriptionfromtd_lotterytwheret.lotteryid=214ort.lotteryid=215ort.lotteryid=216ort.lotteryid=217運算符LIKE運算符
查詢條件部分匹配即可得查詢結(jié)果,實現(xiàn)模糊查詢;需與通配符一同使用;SQL提供的通配符有:“%”、“-”;%:可表示0個或多個字符;-:可表示一個字符只有CHAR、VARCHAR、TEXT類型的數(shù)據(jù)才能使用Like運算符和通配符;運算符LIKE運算符CNOCNAMECTIMESCOUNT1應(yīng)用數(shù)學(xué)基礎(chǔ)481202生物工程32803計算機軟件基礎(chǔ)32704計算機硬件基礎(chǔ)24805模擬電路設(shè)計28906機械設(shè)計實踐48687數(shù)據(jù)庫設(shè)計16808設(shè)計理論28459計算機入門24150Course運算符
Select
*
From
CourseWhere
CnameLIKE
‘%設(shè)計%’ISNULL運算符
查詢包含空值的記錄;Select*FromPrplclaimWhereendcasedateISNULL例運算符
selectt.uuid,t.realusername,t.usermobile
from
tb_user_privateinfot
where
t.cardidisnullselectt.lotterylevel2id,
t.lotteryvalue/100,
t.bonusvalue/100
fromtb_lottery_orderdetailstwhere
t.lotteryvalue/100>5000
and
t.bonusvalue/100>5000邏輯運算符AND、OR、NOT表示“與”的關(guān)系,即AND連接的條件表達(dá)式均為“True”時,Where子句的查詢結(jié)果才為“True”AND運算符selectt.lotterylevel2id,t.lotteryvalue/100,t.bonusvalue/100
fromtb_lottery_orderdetailstwheret.lotteryvalue/100>5000
ort.bonusvalue/100>5000表示“或”的關(guān)系,即OR連接的條件表達(dá)式中只要有一個為“True”時,Where子句的查詢結(jié)果即為“True”O(jiān)R運算符邏輯運算符AND、OR、NOT邏輯運算符AND、OR、NOT用于對搜索條件的布爾值求反;NOT運算符不能單獨應(yīng)用,而要與其他運算符聯(lián)合使用NOTNOTBETWEEN……AND……NOTINNOTLIKEISNOTNULL
selectt.uuid,t.username,t.email
fromtb_user_infotwheret.emailisnotnull運算符算術(shù)運算符運算符號說明+加-減*乘/除%求余對NUMBER型數(shù)據(jù)可以使用的算術(shù)運算符號有(+-*/)對DATE型數(shù)據(jù)可以使用的算術(shù)運算符號有(+-)算術(shù)表達(dá)式可用于Select子句、Where子句例表達(dá)式
select
t.lotterylevel2id,t.uuid
fromtb_lottery_orderdetailst
where
(t.bonusvalue-t.lotteryvalue)/100>500
andt.tickettime>sysdate-10運算符的優(yōu)先級1算術(shù)運算2比較運算3NOT4AND5OR括號可以改變優(yōu)先級運算符
select
t.lotterylevel2id,t.uuid
fromtb_lottery_orderdetailst
where
(t.bonusvalue-t.lotteryvalue)/100>500
andt.tickettime>sysdate-10例連接符(||)作用:將列或字符與其它列連結(jié);相連接的列必須有相同或相近的數(shù)據(jù)類型;可用于Select子句、Where子句SelectPolicyno保單號,Currency||’’||Sumpremium保費FromPrpcmainWhereRiskcode=‘0101’例表達(dá)式
Select‘彩民’
||
t.username||
‘于’
||
t.wintime||
‘日中獎’
||
t.bonusvalue||'元'
fromtb_lottery_winnertWhere
t.wintime='2012-02-29‘關(guān)于GroupBy子句SELECT
字段清單FROM
表名WHERE
查詢條件GroupBY列名[,列名…]
既可以按照單列分組,也可以按照多列分組;出現(xiàn)在SELECT子句中的字段,如果不是用在組函數(shù)中,那么必須出現(xiàn)在GROUPBY子句中;
Selectjob,avg(sal)FromempWhereGroupByjob;例SELECT語句關(guān)于Having子句SELECT
字段清單FROM
表名WHERE
查詢條件GroupBY列名[,列名…]Having
分組查詢條件Having子句的作用是對分組結(jié)果進(jìn)行篩選,去除不滿足條件的組;
包含在Having子句中的列必須是組列,即通過分組函數(shù)構(gòu)成的條件;
Selectjob,avg(sal)Fromemp
WhereGroupByjobHavingavg(sal)>2000;例SELECT語句Having子句與Where子句Having子句與Where子句的相似之處在于,兩者都定義了篩選條件。但Having子句與Where子句不同在于,Having子句與組有關(guān),而Where與單個行有關(guān);SELECT語句單行函數(shù)單行函數(shù)字符函數(shù)數(shù)字函數(shù)日期函數(shù)轉(zhuǎn)換函數(shù)其他函數(shù)函數(shù)字符函數(shù)函數(shù)格式參數(shù)及功能說明LOWER(字符串)把字符串全部轉(zhuǎn)換為小寫UPPER(字符串)把字符串全部轉(zhuǎn)換為大寫LTRIM(字符串)把字符串頭部的空格去掉RTRIM(字符串)把字符串尾部的空格去掉LENGTH(字符串)返回指定字符串的長度函數(shù)格式舉例結(jié)果LOWER(字符串)LOWER(’aBc’)abcUPPER(字符串)UPPER(’aBc’)ABCLTRIM(字符串)LTRIM(’aBc’)aBcRTRIM(字符串)RTRIM(’aBc’)
aBcLENGTH(字符串)LENGTH(‘a(chǎn)Bc’)3單行函數(shù)字符函數(shù)函數(shù)格式參數(shù)及功能說明SUBSTR(字符串,n,m)返回部分字符串,返回的子串是從字符串左邊第n個字符起,m個字符函數(shù)格式舉例結(jié)果SUBSTR(字符串,n,m)SUBSTR('abcde',2,3)bcd單行函數(shù)數(shù)字函數(shù)函數(shù)格式參數(shù)及功能說明ABS(數(shù)字表達(dá)式)返回表達(dá)式的絕對值ROUND(數(shù)字表達(dá)式,n)四舍五入到指定的小數(shù)位TRUNC(數(shù)字表達(dá)式,n)將數(shù)字表達(dá)式截斷到指定的小數(shù)位MOD(被除數(shù),除數(shù))返回相除后的余數(shù)函數(shù)格式舉例結(jié)果ABS(數(shù)字表達(dá)式)ABS(-190)190ROUND(數(shù)字表達(dá)式,n)ROUND(45.926,2)45.93TRUNC(數(shù)字表達(dá)式,n)TRUNC(45.926,2)45.92MOD(被除數(shù),除數(shù))MOD(1600,300)100單行函數(shù)日期函數(shù)函數(shù)格式參數(shù)及功能說明SYSDATE返回系統(tǒng)當(dāng)前日期TRUNC(date,格式)按照給出的格式要求將日期截斷,如:fmt=mi表示保留分,截斷秒格式—YY(年),MM(月),DD(日),HH(時),MI(分)函數(shù)格式舉例結(jié)果SYSDATESelectsysdateFromdual2010/5/1215:22:21TRUNC(date,格式)trunc(sysdate,’hh’)2010/5/1215:00:00單行函數(shù)轉(zhuǎn)換函數(shù)
TO_CHAR(表達(dá)式,‘格式’)
將日期型或數(shù)值型的表達(dá)式,按指定格式轉(zhuǎn)換為字
符型;在轉(zhuǎn)換日期為字符串的時候,日期中的年,月,日,時,分,秒都需要按相應(yīng)的“格式”來控制轉(zhuǎn)換后的顯示格式。在轉(zhuǎn)換數(shù)值為字符串的時候,數(shù)值也要按相應(yīng)的“格式”來控制轉(zhuǎn)換后的顯示格式。單行函數(shù)轉(zhuǎn)換函數(shù)
TO_CHAR(表達(dá)式,‘格式’)
函數(shù)中的指定格式轉(zhuǎn)換后的顯示YYYY,YYY,YY顯示4位,3位,2位的數(shù)字年份YEAR顯示“年”的英文拼寫MM顯示2位的數(shù)字月份MONTH顯示實際月份的英文全拼名稱MON顯示實際月份的英文縮寫DD顯示2位的數(shù)字“天”DAY顯示實際星期的英文全拼名稱DY顯示實際星期的英文縮寫年、月、日的格式定義單行函數(shù)轉(zhuǎn)換函數(shù)
TO_CHAR(表達(dá)式,‘格式’)
函數(shù)中的指定格式轉(zhuǎn)換后的顯示AM顯示為上午或下午HH24,HH12顯示24小時制的“時”或12小時制的“時”MI顯示分鐘數(shù)字SS顯示秒的數(shù)字SP顯示數(shù)字的英文拼寫TH顯示數(shù)字的在英文中序數(shù)詞的形式“特殊字符”顯示在日期時間中加入的特殊字符時、分、秒的格式定義單行函數(shù)轉(zhuǎn)換函數(shù)
TO_CHAR(表達(dá)式,‘格式’)
函數(shù)轉(zhuǎn)換后的顯示TO_CHAR(‘1980-12-17’,'YYYY-MM-DD:DAY')1980-12-17:星期三TO_CHAR(‘2007-07-2423:55:17’,'YYYY-MM-DDHH24:MI:SSAM‘)2007-07-2423:55:17下午TO_CHAR(‘2007-10-2423:55:17’,'DD"of"MONTH‘)24ofOCTOBERTO_CHAR(‘2007-07-1423:55:17’,‘ddspth‘)fourteenth例單行函數(shù)轉(zhuǎn)換函數(shù)
TO_CHAR(表達(dá)式,‘格式’)
函數(shù)中的指定格式轉(zhuǎn)換后的顯示9對應(yīng)顯示一個實際的數(shù)字字符0對應(yīng)強制顯示0字符$顯示“$”符號L顯示本地的貨幣符.顯示小數(shù)點,顯示千分位符數(shù)字格式定義單行函數(shù)轉(zhuǎn)換函數(shù)
TO_CHAR(表達(dá)式,‘格式’)
函數(shù)轉(zhuǎn)換后顯示TO_CHAR(‘800.00’,‘$99,999.99’)
$800.00TO_CHAR(‘800.00’,‘L00,000.00’)RMB00,800.00例單行函數(shù)轉(zhuǎn)換函數(shù)
TO_NUMBER(表達(dá)式,‘格式’)
將字符型的表達(dá)式,按指定格式轉(zhuǎn)換為數(shù)字(“格式”同TO_CHAR函數(shù)的數(shù)字格式定義);
TO_NUMBER('$123,345.99','$999,999.00')
轉(zhuǎn)換后的結(jié)果:123345.99例單行函數(shù)轉(zhuǎn)換函數(shù)
TO_DATE(表達(dá)式,‘格式’)
將字符型的表達(dá)式,按指定格式轉(zhuǎn)換為日期(“格式”同TO_CHAR函數(shù)的日期及時間格式定義);
TO_DATE('1998-8-23','YYYY-MM-DD')
轉(zhuǎn)換后的結(jié)果:1998-8-23例單行函數(shù)其它函數(shù)-空值函數(shù)函數(shù)格式參數(shù)及功能說明NVL(表達(dá)式,指定值)將空值轉(zhuǎn)換為指定的值;表達(dá)式可以是日期,字符,數(shù)字;“表達(dá)式”與“指定值”數(shù)據(jù)類型必須匹配NVL2(表達(dá)式,值1,值2)若“表達(dá)式”不為Null,則返回“值1”,空返回“值2”單行函數(shù)例Selecta.policyno,quotationno,
NVL(quotationno,‘直接出單'),a.*FromGupolicymaina其它函數(shù)-判斷函數(shù)SelectPolicyno保單號,
Decode(Jfeeflag,’1’,‘見費出單’)標(biāo)志FromPrpcmain查詢結(jié)果:保單號標(biāo)志301012009110000000001301012009120000000005見費出單
例DECODE(表達(dá)式,判斷值,結(jié)果值
[,判斷值,結(jié)果值,]……)單行函數(shù)SelectPolicyno,
Decode(riskcode,‘0101’,‘財產(chǎn)基本險')
FromGupolicyriskCASE表達(dá)式SelectPolicyno保單號,(CASEWHEN
Jfeeflag=’1’
THEN‘見費出單’)標(biāo)志FromPrpcmain例CASEWHEN
條件表達(dá)式
THEN
表達(dá)式返回“True”時的結(jié)果[ELSE
表達(dá)式返回“False”時的結(jié)果]ENDSelectPolicyno,
(CASE
WHENRiskcode='0101'THEN'財產(chǎn)基本險‘
END)FromGupolicyriskEMPLOYEES4400…95003500640010033數(shù)據(jù)分組EMPDEPTNOSAL------------------10245010500010130020800201100203000203000202975301600員工表中工資的最高值MAX(SAL)---------5000SELECT語句分組函數(shù)也叫多行函數(shù)。分組函數(shù)對多行輸入值進(jìn)行計算,得到多行對應(yīng)的單行結(jié)果。在通常的情況下,會對一個表總的數(shù)據(jù)進(jìn)行分組,得到多組數(shù)據(jù),每個組中包括一行或多行數(shù)據(jù)。分組函數(shù)對每組記錄分別進(jìn)行計算,每組返回一個結(jié)果。最終產(chǎn)生多個組對應(yīng)的數(shù)據(jù)集合。分組有多少,最終的結(jié)果集就有多少行。EMPDEPTNOSAL------------------10245010500010130020800201100203000203000202975301600員工表中工資的最高值MAX(SAL)---------5000分組函數(shù)的概念分組函數(shù)常用的分組函數(shù)函數(shù)名稱函數(shù)功能說明SUM()返回一組數(shù)據(jù)的總和針對數(shù)值類型的數(shù)據(jù)AVG()返回一組數(shù)據(jù)的平均值MAX()返回一組數(shù)據(jù)的最大值適用于任何數(shù)據(jù)類型的數(shù)據(jù)MIN()返回一組數(shù)據(jù)的最小值COUNT()返回一組數(shù)據(jù)中的記錄數(shù)分組函數(shù)適用于Select子句,Having子句分組函數(shù)求和函數(shù)—SUM()格式:SUM([DISTINCT]列名)說明:只適用于數(shù)值類型的數(shù)據(jù)DISTINCT為可選項如果指定列中含有NULL值,SUM函數(shù)會忽略該值SelectSUM(Sumpremium)
總保費FromPrpcmainWhereRiskcode=‘0101’例分組函數(shù)Select
SUM(Sumnetpremium)FromGupolicyriskWhereRiskcode='0101'均值函數(shù)—AVG()格式:AVG([DISTINCT]列名)說明:只適用于數(shù)值類型的數(shù)據(jù)DISTINCT為可選項如果指定列中含有NULL值,AVG函數(shù)會忽略該值Sel
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 期貨代理合同
- 貴陽存量房買賣合同
- 勞務(wù)分包合同中的質(zhì)量風(fēng)險防范3篇
- 發(fā)包方終止施工合同3篇
- 城市規(guī)劃勞動合同章保障規(guī)劃質(zhì)量3篇
- 原煤購買協(xié)議3篇
- 關(guān)于解除合作協(xié)議的函3篇
- 兒童玩具展位預(yù)訂合同3篇
- 媒體電力設(shè)施檢修協(xié)議3篇
- 小老鼠滿地跑課程設(shè)計
- 2023屆新高考二卷語文點對點攻關(guān)訓(xùn)練專題:文學(xué)類文本閱讀
- ZYHZYHC系列自控遠(yuǎn)紅外電焊條烘干爐使用說明書
- 食材配送服務(wù)方案
- 2021-2022湖北省武漢市江漢區(qū)七年級上冊期中數(shù)學(xué)試卷+答案
- 2023-計算機考研408真題及答案
- 垃圾焚燒鍋爐系統(tǒng)安裝方案
- 足球裁判規(guī)則PPT
- 中藥的用法課件
- 《教育心理學(xué)》教材
- 2022年專業(yè)技術(shù)職稱等級分類
- DB37 5155-2019 公共建筑節(jié)能設(shè)計標(biāo)準(zhǔn)
評論
0/150
提交評論