日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQL语言(5)

發布時間:2025/3/20 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL语言(5) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

SQL語言(5)

1.數字函數

?Round(arg1,arg2)

四舍五入指定小數的值;
Arg1:數字類型。原數字;
Arg2:整數類型。小數點保留的位數,可以是一個負數,負數則表示指定整數的位置;正數是以小數點為中心向又進行四舍五入,負數正好相反;

?Round(arg1)

四舍五入保留整數;與round(arg1,0)等同;
Arg1:數字類型。原數字;

?Trunc(arg1,arg2)

截斷指定小數的值,不做四舍五入處理;
Arg1:數字類型,原數字;
Arg2:整數類型,小數點保留的位數,可以是一個負數,負數則表示指定整數的位 置;

?Trunc(arg1)

保留整數;與trunc(arg1,0)等同;
Arg1:數字類型,原數字;

?Mod(arg1,arg2)

取余;
Arg1:數字類型。被除數;
Arg2:數字類型。除數;
(以hr用戶中的employees為例)
*

1.計算所有是銷售代表(SA_REP)的雇員的工資被5000除后的余數;
Select mod(salary,5000) from employees where job_id = ‘SA_REP’;

2.日期的處理

(1)Sysdate函數

Sysdate是一個日期函數,他返回當前數據庫服務器的日期和時間;

(2)用日期計算

?日期加或者減一個數,結果是一個日期值;
?兩個日期相減得到兩個日期之間的天數;
?用小時數除以24,可以加小時到日期上;

(以hr用戶中的employees為例)

*例:

顯示所有在部門90中的雇員的名字和從業的周數。雇員的總工作時間以周計算;
Select last_name , (sysdate - hire_date)/7 from employees where department_id = 90;

3.日期函數

?Month_between(date1,date2)

計算date1和date2之間的月數。其結果可以是正數也可以是負數。如果date1大 于date2,結果是正,反正結果為負;
Date1:日期類型;
Date2:日期類型;

?Add_months(date1,num)

添加num個日歷月到date。
Num的值必須是整數,但可以是負數。
Date:日期類型;
Num:整數類型;

?Next_day(date,’char’)

計算date之后的下一個周(’char’)的指定的星期。
Char的值可能是一個表示一天的數或者是一個字符串。(Char為星期幾)如果使用 數字表示星期,1 是從星期日開始的。數字范圍1-7(數字不需要加單引號);
Date:日期類型;
Char:數字或字符串;

?Last_day(date)

計算包含date的月的最后一天的日期;
Date:日期類型;

?Round(date,’fmt’)

返回用格式化模式fmt(yy/year/mm/month)四舍五入到指定單位的date,如果格 式模式fmt被忽略,date被四舍五入到最近的天;
Date:日期類型;
Fmt:字符串類型;

?Trunc(date,’fmt’)

返回用格式化模式fmt截斷到指定單位的當天,如果格式模式fmt被忽略,date被 截斷到最近的天;
Date:日期類型;
Fmt:字符串類型;
(以hr用戶中的employees為例)

例:

一、查詢所有受雇在15年(180個月)以內的雇員的ID,入職時間,顯示他們以被雇用的月,從受雇日期開始加6個月的試用期后的日期,受雇日期后第一個星期五是幾號,以及受雇月的最后一天是幾號;
Select employee_id,hire_date,months_between(sysdate,hire_date),add_months(hire_date,6),next_day(hire_date,’金曜日’),last_day(hire_date) from employees where months_between(sysdate,hire_date) < 180;
二、查詢受雇日期,找出2002年開始工作的那些人,用round和trunc函數顯示開始的月份;
Select last_name , round(hire_date,’mm’) , trunc(hire_date,’mm’) from employees where hire_date like ‘02%’;

4.數據類型轉換

?隱式數據類型轉換

當原數據的類型和目標數據類型不同的時候,如果沒有轉換函數,就會發生隱式 轉換,也稱為自動轉換;

隱式轉換的兩大問題:

1.性能影響
隱式轉換的最大問題就是轉換時會導致索引的無效,進而可能導致全表掃描;
2.不便于閱讀:
由于隱式轉換使得數據庫編程人員和DBA難以了解到究竟發生了怎樣的類型 轉換,而且如果代碼很多很長的話,要查出錯誤就需要花很長時間;

?顯示數據類型轉換

1.to_char(arg1,’fmt’)

將一個日期或者數字轉換為字符類型,帶格式化樣式fmt;
Arg1:數字或者日期類型;要求要轉換的數據;
Fmt:轉換的格式;

?to_char日期轉換;

日期格式的模板元素

時間格式模板元素

日期的時間部分,時間元素格式
Hh24:mi:ss am
*

*:select to_char(sysdate,’hh24:mi:ss:am’) from dual;

其他格式

指定后綴來影響數字顯示

(以hr用戶中的employees為例)

顯示所有雇員的名字和受雇日期,受雇日期以2007年8月10日 12:00:00 AM 顯示;
Select last_name , to_char(hire_date,’yyyy”年”mm”月”dd”日” hh:mi:ss AM’) from employees;

?To_char 數字轉換

數字格式模板

Fm:代表去掉返回結果中的前后空格;

(以hr用戶中的employees為例)

查詢雇員Whalen,顯示他的薪水,在薪水前添加美元符號與千位符;
Select last_name,to_char(salary,’fm$999,999,999.00’) from employees where last_name = ‘Whalen’;

總結

以上是生活随笔為你收集整理的SQL语言(5)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。