Oracle基礎 6 函式

2021-08-20 13:52:56 字數 3411 閱讀 4779

數值函式

四捨五入函式:round(n,[,m])       n表示要進行四捨五入的值

省略m: 0

m>0:小數點後m位

m<0:小數點前m位

特殊的表:dual表 作用是我們在oracle當中不能直接來使用我們的函式,也就是不能在我們select裡面直接使用我們的函式 他要求在我們select語句後面也就是from子句裡面必須要包含目標表。他是由一行一列來組成的

select round(23.4),round(23.45,1),round(23.45,-1)

在sqlserver就直接可以看到函式執行效果了

在oracle不行,必須設定目標表,必須加上dual

select round(23.4),round(23.45,1),round(23.45,-1) from dual;

上圖是結果

取整函式:ceil(n)取整取得是最大值

floor(n)取整取得是最小值

常用計算函式

abs(n)絕對值

mod(m,n)取餘數

第乙個引數代表被除數,第二個引數表示除數

如果任意乙個值是空值null值那他就輸出null值了

power(m,n)返回的m的n次冪

sqrt(n)平方根

三角函式 sin(n)  asin(n)

cos(n)  acos(n)    

tan(n)   atan(n)

n是弧度

字元函式

大小寫轉換函式upper(char)

lower(char)    

initcap(char) 首字母大寫

select upper('abde'),lower('ade'),initcap('asd') from dual;

比如說     註冊使用者名稱不區分大小寫 我們可以再註冊的時候把名字存到資料庫裡, 不管是大寫小寫,存裡面

取出值再同意轉換,轉換成大寫或者是小寫,然後再與輸入的值把他轉換成大寫或者小寫再進行相應的比較就行了

substr(char,[m[,n]])      第乙個引數是源字串,第二個引數是取子字串的開始位置,第三個是擷取子串的位數

abcde想獲取 bcd

substr('abcde',2,3)

n省略就是擷取到結束

m等於0就從首字母擷取,m是負數是尾部開始擷取    

獲取字串長度length(char)

concat(char1,char2)

與||操作符作用一樣

必須都是字元型或者能轉換成字元型

去除子串    trim(c2 from c1)

從字串c1中去除字元c2

ltrim(c1[,c2])  只能去除乙個

rtrim(c1[,c2]) 從右

trim(c1)去除首尾空格

replace(char,s_string[,r_string])

省去r_string用空格替換

第乙個引數是要替換的字串是誰

第二個引數是要將原來字串中哪乙個字串進行替換

第三個引數是替換成什麼

日期函式

系統時間 sysdate  預設格式 dd-mon-rr   日-月-年

select sysdate from dual;

add_months(date,i)

返回在指定日期上新增的月份

i可以是任何整數,如果i是小數會擷取整數部分

i如果是負數那麼就是減去

select add_months(sysdate,3),add_months(sysdate,-3) from dual;

結果就是當前的加了3個月,減去三個月

next_day(date,char) 第乙個引數就是要計算的日期,第二個引數就是星期幾     如果在英文的環境下就是monday,.....     

中文環境下就直接  星期三  

如果char的值是'星期一'則返回date指定日期的下周一是哪天

last_dat(date)返回日期date所在月的最後一天 就可以知道是否有31號

month_between(date1,date2)

表示兩個日期之間間隔的月份,會有小數 

extract(date from datetime)

date返回datetime相應的日期部分

如果想要年份就是year 如果是日期就是day 或者month

也可以  extract(hour from timestamp '2015-10-1 17:25:13')

獲得17

轉換函式:在oracle當中對不同型別的資料進行轉換,在oracle可以對相容的型別進行隱式轉換

日期型別轉換成字元的函式:

to_char(date[,fmt[,params]])

date:將要轉化的日期

fmt:轉換的格式

params:日期的語言 一般的作業系統的語言  通常不寫

預設:dd-mon-rr  天-月-年

yy yyyy year 年  

mm month   月

dd  day 天

hh24 hh12   小時

mi    ss  分鐘和秒

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

字元型轉換成日期

to_date(char[,fmt[,params]])

to_date('2015-05-22','yyyy-mm-dd') 

顯示的會按照預設格式顯示,我們這個不用的

數字轉換成字元的函式

to_char(number[,fmt])

第乙個引數:數字型別       

第二個引數:格式

9:顯示數字並忽略前面的0

0:顯示數字,位數不足,用0補齊

.或d:顯示小數點

,或g:顯示千位符

$:美元符號

s:加正負號(前後都可以,但是不能同時加上)

字元轉換成數字的函式    

to_number(char[,fmt])

fmt是轉化的格式,可以省略,就是原來什麼樣格式就是相應的數字

在查詢中使用函式

在查詢中使用字元函式,比如在員工資訊表查詢出員工的生日 就是根據員工身份證號碼得到員工生日

比如select substr(cardid,7,8) from users;

oracle基礎 四 函式

1.使用特定格式插入日期值 使用to date函式 思考 如何插入列帶有日期的表,並按照年 月 日的格式插入?insert into emp values 9998,小紅 manager 7782,1988 11 11 78.9,55.33,10 上面的日期寫入不對,正確的方式如下 insert i...

Oracle 常用基礎函式

abs函式 取n的絕對值。concat函式 字串拼接,與 效果相同。initcap函式 將單詞的首字母以大寫的方式返回,其他小寫。單詞由空格 控制字元 標點符號限制 instr 函式 查詢l字元,首個l位於第3個位置。length lengthb函式 length 返回字串的長度 lengthb 返...

Python基礎 6函式封裝

1 有無引數函式說明 1 無引數的函式 就是封裝程式,呼叫程式 2 帶引數的函式 就是通過呼叫部分的實參,往定義部分的形參傳遞資訊 3 區別 無引數的可以在函式內部定義變數,有引數的形參替代定義變數,實參替代賦值變數 2 print的列印位置說明 1 函式內部列印 在函式內部列印的時候直接列印變數,...