版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Day02一、DQL查詢語(yǔ)句Select語(yǔ)句用來(lái)查詢表中數(shù)據(jù)1、一條SQL語(yǔ)句是有多個(gè)子句組成,一個(gè)子句有一個(gè)關(guān)鍵字加一系列內(nèi)容組成。2、Select語(yǔ)句中必須含有的是兩個(gè)子句:Select子句和FROM子句3、Select子句用于指定要要查詢的內(nèi)容(字段、函數(shù)、表達(dá)式,from子句用來(lái)指定數(shù)據(jù)來(lái)源的表。查看每個(gè)員工的年薪,并乘于12SELECT ename,job,sal,sal*12FROM emp_god二、字符串字符串類型1.CHAR和VARCHAR2(VARCHAR類型1、表示字符串?dāng)?shù)據(jù)類型,用來(lái)在表中存放字符串信息。2、CHAR存放定長(zhǎng)字符,即存不滿補(bǔ)空格;VARCHAR2存放變長(zhǎng)
2、字符,存多少占用多少。3、按照字符的自然順序排序。4、相對(duì)而言CHAR比VARCHAR2效率高,而VARCHAR2比CHAR節(jié)省空間。2.CHAR和VARCHAR2的存儲(chǔ)編碼1、默認(rèn)單位是字節(jié),可指定為字符CHAR(10,等價(jià)于CHAR(10 BYTE指定單位為字符:CHAR(10 CHAR,20個(gè)字節(jié)VARCHAR2(10,等價(jià)于VARCHAR2(10 BYTE指定單位為字符:VARCHAR2(10 CHAR,20個(gè)字符2、每個(gè)英文字符占用一個(gè)字節(jié),每個(gè)中文字符按編碼不同占用2-4個(gè)字節(jié)ZHS16GBK:2個(gè)字節(jié)UTF-8:2-4個(gè)字節(jié)3.CHAR和VARCHAR2的最大長(zhǎng)度1、CHAR最大
3、取值為2000字節(jié)最多保存2000個(gè)英文字符,1000個(gè)漢字(GBK2、VARCHAR2最大取值為4000字節(jié)最多保存4000個(gè)英文字符,2000個(gè)漢字(GBK3、CHAR可以不指定長(zhǎng)度,默認(rèn)為1,VARCHAR2必須指定長(zhǎng)度。4.LONG和CLOB類型1、LONG:VARCHAR2加長(zhǎng)版,存儲(chǔ)變長(zhǎng)字符串,最多達(dá)2GB的字符串?dāng)?shù)據(jù)2、LONG有諸多限制:每個(gè)表只能有一個(gè)LONG類型列;不能作為主鍵;不能建立索引;不能出現(xiàn)在查詢條件中3、CLOB:存儲(chǔ)定長(zhǎng)或變長(zhǎng)字符串,最多達(dá)4GB的字符串?dāng)?shù)據(jù)4、ORACLE建議開(kāi)發(fā)中使用CLOB替代LONG類型字符串函數(shù)1.CONCAT和“|”1、CONCAT
4、(char1,char2返回兩個(gè)字符串連接后的結(jié)果,兩個(gè)參數(shù)char1,char2是要連接的兩個(gè)字符串。等價(jià)操作:連接操作符“|”如果char1和char2任何一個(gè)為NUL,相當(dāng)于連接了一個(gè)空格2、連接操作符“|”SELECT CONCAT(CONCAT(char1,:,char2FROM table-name;等價(jià)于:SELECT char1|:|char2FROM table-name;2.LENGTH(char用于返回字符串的長(zhǎng)度如果字符類型是VARCHAR2,返回字符的實(shí)際長(zhǎng)度,如果字符類型是CHAR,長(zhǎng)度還要包括后補(bǔ)的空格SELECT字段,LENGTH(字段SELECT 字段FROM
5、 table-name FROM table-nameWHERE條件.WHERE LENGTH(字段=值,條件. 3.UPPER、LOWER和INITCAP1、大小寫(xiě)轉(zhuǎn)換函數(shù),用來(lái)轉(zhuǎn)換字符的大小寫(xiě)2、UPPER(char用于將字符轉(zhuǎn)換為大寫(xiě)形式3、LOWER(char用于將字符轉(zhuǎn)換為小寫(xiě)形式4、INITCAP(char用于將字符串中每個(gè)單詞的首字符大寫(xiě),其它字符小寫(xiě),單詞之間用空格分隔5、如果輸入的參數(shù)是NULL值,仍然返回NULL值例:SELECT UPPER(hello world,LOWER(HELLO WORLD,INITCAP(hello worldFROM dual;其中dual:
6、偽表,當(dāng)查詢的內(nèi)容不是任何表中數(shù)據(jù)時(shí),可以用偽表代替。4.TRIM、LTRIM、RTRIM1、作用:截去子串,去除字符串兩側(cè)的指定字符SELECTTRIM(eFROM eeeeliteeeeeFROM dual;2、語(yǔ)法形式:TRIM(c2 FROM c1從c1的前后截去c2(c2只能是一個(gè)字符LTRIM(c1,c2從c1的左邊(Left截去c2(c2可以是一個(gè)字符串,只要c1左邊中的單個(gè)字符存在c2則截去RTRIM(c1,c2從c1的右邊(Right截去c2(c2可以是一個(gè)字符串,只要c1右邊中的單個(gè)字符存在c2則截去,沒(méi)有c2則表示去除空格5.LPAD、RPAD1、補(bǔ)位函數(shù),用于在字符串c
7、har1的左端或右端用char2補(bǔ)足到n位,char2可重復(fù)多次。LPAD(char1,n,char2左補(bǔ)位函數(shù)RPAD(char1,n,char2右補(bǔ)位函數(shù)2、在emp表中使用左補(bǔ)位,將sal用$補(bǔ)齊6位SELECTename LPAD(sal,6,$as salary FROM emp;6.SUBSTR(str,m,n1、截取str字符串從m處開(kāi)始連續(xù)截取n個(gè)字符;注意:數(shù)據(jù)庫(kù)中下標(biāo)都是從1開(kāi)始的!2、如果省略截取數(shù)量n,或截取數(shù)量n超過(guò)實(shí)際內(nèi)容都是截取到末尾。3、如果m=0,則從首字符開(kāi)始,如果m取負(fù)數(shù),則從尾部開(kāi)始7.INSTR查看字符串的位置1、INSTR(str1,str2,m,n
8、:查找str2在str1中的位置參數(shù):m:從m的位置開(kāi)始搜索,沒(méi)有指定m,則從第一個(gè)字符開(kāi)始搜索n:n用于指定子串的第n次出現(xiàn)次數(shù),如果不指定則取值1如果在str1中沒(méi)有找到子串str2,則返回0數(shù)值數(shù)值類型1.NUMBER(P表示整數(shù)1、完整語(yǔ)法:NUMBER(precision,scale如果沒(méi)有設(shè)置scale。則默認(rèn)取值0,即NUMBER(P表示整數(shù)P表示數(shù)字的總位數(shù),取值為1-382、用來(lái)在表中存放如編碼、年齡、次數(shù)等用整數(shù)記錄的數(shù)據(jù)。2.NUMBER(P,S表示浮點(diǎn)數(shù)aNUMBER(precision,scalei.Precision:NUMBER可以存儲(chǔ)的最大數(shù)字長(zhǎng)度(不包括左右兩
9、邊的0ii.Scale:在小數(shù)點(diǎn)右邊的最大數(shù)字長(zhǎng)度(包括左側(cè)0b指定了s但是沒(méi)有指定p,則p默認(rèn)為38。cNUMBER的變種數(shù)據(jù)類型:內(nèi)部實(shí)現(xiàn)是NUMBER,可以將其理解為NUMBER的別名,目的是多種數(shù)據(jù)庫(kù)及編程語(yǔ)言兼容i.NUMBERIC(P,S:完全映射至NUMBER(P,S;ii.DECIMAL(P,S或DEC(P,S:完全映射至NUMBER(P,S;iii.INTEGER或INT:完全映射至NUMBER(38類型;iv.SMALLINT:完全映射至NUMBER(38類型;v.FLOAT(b:映射至NUMBER類型;vi.DOUBLE PRECISION:映射至NUMBER類型;vii
10、.REAL:映射至NUMBER類型。數(shù)值函數(shù)1.ROUND(n,m:四舍五入?yún)?shù)中的n可以是任何數(shù)字,指要被處理的數(shù)字m必須是整數(shù)m取正數(shù)則四舍五入到小數(shù)后地m位m取0則四舍五入到整數(shù)位m取負(fù)數(shù),則四舍五入到小數(shù)前m位m缺省,默認(rèn)值是02.TRUNC(m,n:截取數(shù)字m,n的定義和ROUND(m,n相同,不同的是功能上按照截取的方式處理數(shù)字n。3.MOD(m,n:求余返回m除以n后的余數(shù);n為0則直接返回m4.CEIL和FLOORCEIL(n、FLOOR(n這兩個(gè)函數(shù)顧名思義,一個(gè)是天花板,就是取大于或等于n的最小整數(shù)值,一個(gè)是地板,就是取小于或等于n的最大整數(shù)值。簡(jiǎn)單的就是:向上取整,向下取
11、整。日期日期類型1.DATE1ORACLE中最常用的日期類型,用來(lái)保存日期和時(shí)間2DATE表示的日期范圍可以是公元前4712年1月1日至公元9999年12月31日3DATE類型在數(shù)據(jù)庫(kù)中存儲(chǔ)固定為7個(gè)字節(jié),格式為:i.第一個(gè)字節(jié):世紀(jì)+100ii.第二個(gè)字節(jié):年iii.第三個(gè)字節(jié):月iv.第四個(gè)字節(jié):天v.第五個(gè)字節(jié):小時(shí)+1vi.第六個(gè)字節(jié):分+1vii.第七個(gè)字節(jié):秒+12.TIMESTAMPORACLE常用的日期類型與DATE的區(qū)別是不僅可以保存日期和時(shí)間,還能保存小數(shù)秒,最高精度可以到ns (納秒數(shù)據(jù)庫(kù)內(nèi)部用7或者11個(gè)字節(jié)存儲(chǔ),精度為0,用7字節(jié)存儲(chǔ),與DATE功能相同,精度大于0則
12、用11字節(jié)存儲(chǔ)。格式為:1第1字節(jié)第7字節(jié):和DATE相同2第8-11字節(jié):納秒,采用4個(gè)字節(jié)存儲(chǔ),內(nèi)部運(yùn)算類型為整數(shù)CREATE TABLE test(C1 DATE,C2 TIMESTAMP;日期關(guān)鍵字 1. SYSDATE 1) 對(duì)應(yīng)數(shù)據(jù)庫(kù)一個(gè)內(nèi)置函數(shù),返回一個(gè) DATE 類型的值,該值表示當(dāng)前系統(tǒng)時(shí)間。精確 到秒。 2) 默認(rèn)顯示格式是 DD-MON-RR;YY-MM-DD 中的年是根據(jù)系統(tǒng)判斷定,而 DD-MON-RR 是根據(jù)下圖判定的: USER SYS 0-49 本世紀(jì) 50-99 上世紀(jì) 0-49 50-99 2. SYSTIMESTAMP 下世紀(jì) 本世紀(jì) 返回當(dāng)前系統(tǒng)時(shí)間的時(shí)
13、間戳類型的值。精確到毫秒。 日期轉(zhuǎn)換函數(shù) 1. TO_DATE TO_DATE()可以將一個(gè)字符串按照給定的日期格式解析為一個(gè) DATE 類型的值。 1) TO_DATE(char,fmt,nlsparams) :將字符串按照給定格式轉(zhuǎn)換為日期類型。 a Char:要轉(zhuǎn)換的字符串 b Fmt:格式 c Nlsparams:指定日期語(yǔ)言 2) 日期格式字符串中凡不是英文,符號(hào),數(shù)字之外的其他字符要使用雙引號(hào)括起來(lái) 2. TO_CHAR 1) 將其它類型的數(shù)據(jù)轉(zhuǎn)換為字符類型 2) TO_CHAR(date,fmt,nlsparams) :將日期類型數(shù)據(jù) date 按照 fmt 的格式輸出字符 串。
14、nlsparams 用于指定日期語(yǔ)言。 SELECT TO_CHAR(SYSDATE,YYYY-MM-DD HH24:MI:SS) FROM dual; 3) a 日期類型可以比大小,越晚的越大 b 日期類型之間可以進(jìn)行減法,差為相減的天數(shù) c 日期可以進(jìn)行加減數(shù)字,等同于加減天數(shù) 4) 需要注意的是,fmt 格式字符串中出現(xiàn)漢字或其他非符號(hào)字符時(shí)需要用雙引號(hào)。 SELECT ename, TO_CHAR(hiredate,YYYY “年” MM “月” DD “日” ) FROM emp; 3. LAST_DAY(date) 1) 查看給定日期所在月的月底 SELECT LAST_DAY(S
15、YSDATE) FROM dual; 4. ADD_MONTHS 1) ADD_MONTHS(date,i) :返回日期 date 加上 i 個(gè)月后的日期值 a 參數(shù) i 可以是任何數(shù)字,大部分時(shí)候取正值整數(shù) b 如果 i 是小數(shù),將會(huì)被截取整數(shù)后再參與運(yùn)算 c 如果 i 是負(fù)數(shù),則獲得的是減去 i 個(gè)月后的日期值 d 計(jì)算職員入職 20 周年紀(jì)念日: SELECT ename, ADD_MONTHS(hiredate,20*12)as “20 周年” FROM emp; 5. MONTHS_BETWEEN 1) MONTH_BETWEEN(date1,date2) :計(jì)算 date1 和 d
16、ate2 兩個(gè)日期值之間間隔了多少 個(gè)月。 2) 實(shí)際運(yùn)算時(shí) date1-date2,如果 date2 時(shí)間比 date1 晚,會(huì)得到負(fù)值。 3) 除非兩個(gè)日期間隔是整數(shù)月,否則會(huì)得到帶小數(shù)位的結(jié)果。 4) 例:計(jì)算職員入職多少個(gè)月: SELECT ename, MONTHS_BETWEEN(SYSDATE,hiredate)as“hiredate” FROM emp; 6. NEXT_DAY(date,i) 返回給定日期第二天開(kāi)始一周內(nèi)的周幾的日期。i 表示周幾: 1 表示為周日,2 為周一,依次類推 SELECT NEXT_DAY(SYSDATE,6) FROM dual; 7. LEAS
17、T、GREATEST 求最小值與最大值,參數(shù)至少一個(gè)。 如:查看今天與 2008-10-10 那個(gè)?。?SELECT LEAST(SYSDATE, TO_DATE( 2008-10-10 ,YYYY-MM-DD) ) FROM dual; 8. EXTRACT 提取指定日期中指定時(shí)間分量的值,DATE 可以提取年月日,時(shí)間戳還可以提取時(shí)分秒。 SELECT EXTRACT(YEAR FROM SYSDATE) FROM dual; 例:查看 82 年入職的員工? SELECT ename ,sal ,hiredate, FROM emp WHERE EXTRACT(YEAR FROM 82)
18、; NULL 值 NULL 的含義 1. 數(shù)據(jù)庫(kù)里的重要概念:NULL,即空值 2. 有時(shí)表中的某些字段值,數(shù)據(jù)未知或暫時(shí)不存在,取值 NULL 3. 任何數(shù)據(jù)類型均可取值 NULL NULL 的操作 1. 插入 NULL 值 a b 顯式插入 隱式插入 2. 更新成 NULL 值 a b c UPDATE student SET gender = NULL; 注意這種更新只有在此列沒(méi)有非空約束的情況才可操作。 如果某列有非空約束,則無(wú)法更新為 NULL 值,上述語(yǔ)句會(huì)報(bào)錯(cuò)。 3. NULL 條件查詢 a b 在判斷某個(gè)字段的值是否為空時(shí),要使用 IS NULL 和 IS NOT NULL 判斷。不能用等號(hào) “=”判斷為空。 NULL 與字符串連接,等于什么都沒(méi)有做;NULL 與數(shù)字計(jì)算,結(jié)果還是 NULL。 4. 非空約束 a b c 非空(NOT NULL)約束用于確保字段值不為空; 默認(rèn)情況下, 任何列都允許有空值, 但系統(tǒng)的業(yè)務(wù)邏輯可能會(huì)要求某些列不能取空 值; 當(dāng)某個(gè)字段被設(shè)置了非空約束條件,這個(gè)字段中必須存在有效值。即:當(dāng)執(zhí)行插入 數(shù)據(jù)的操作時(shí),必須提供這個(gè)列的數(shù)據(jù),
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 福建省泉州永春僑中2025屆物理高三上期中考試模擬試題含解析
- 2025屆上海市浦東新區(qū)南匯中學(xué)物理高三上期末質(zhì)量檢測(cè)模擬試題含解析
- 2025屆江西省贛州市尋烏中學(xué)高一物理第一學(xué)期期中經(jīng)典試題含解析
- 黑龍江省哈爾濱市2025屆物理高三上期末經(jīng)典試題含解析
- 哈爾濱市第六中學(xué)2025屆高三物理第一學(xué)期期中統(tǒng)考模擬試題含解析
- 2025屆湖南省醴陵市第二中學(xué)高三物理第一學(xué)期期末預(yù)測(cè)試題含解析
- 2025屆江蘇南京市物理高一上期中達(dá)標(biāo)測(cè)試試題含解析
- 2025屆安徽省長(zhǎng)豐縣朱巷中學(xué)高二物理第一學(xué)期期末教學(xué)質(zhì)量檢測(cè)試題含解析
- 2025屆寧夏長(zhǎng)慶中學(xué)物理高一第一學(xué)期期末質(zhì)量檢測(cè)模擬試題含解析
- 廣東省廣州市越秀區(qū)2025屆物理高二上期末監(jiān)測(cè)模擬試題含解析
- 婚姻心理學(xué)解讀包含內(nèi)容
- DZ/T 0462.3-2023 礦產(chǎn)資源“三率”指標(biāo)要求 第3部分:鐵、錳、鉻、釩、鈦(正式版)
- 備戰(zhàn)2024年高考英語(yǔ)考試易錯(cuò)點(diǎn)12 名詞性從句(4大陷阱)(解析版)
- 公務(wù)員歷史常識(shí)100題及一套完整答案
- 信息技術(shù)與高中英語(yǔ)教學(xué)融合的途徑
- 花籃拉桿式懸挑腳手架.計(jì)算書(shū)及相關(guān)圖紙
- 職業(yè)道德與法律說(shuō)課稿市公開(kāi)課一等獎(jiǎng)省賽課微課金獎(jiǎng)?wù)n件
- 復(fù)習(xí)一元一次方程省公開(kāi)課金獎(jiǎng)全國(guó)賽課一等獎(jiǎng)微課獲獎(jiǎng)?wù)n件
- 史學(xué)概論完整版本
- 供水管網(wǎng)搶修管理課件
- 信訪維穩(wěn)工作培訓(xùn)
評(píng)論
0/150
提交評(píng)論