1. 程式人生 > >ORACLE初學第六篇(數值型別及函式)

ORACLE初學第六篇(數值型別及函式)

數值型別及函式

number 是 oracle 中的資料型別;number(precision,scale); Precision,scale 均可選;
Precision 代表精度,sacle 代表小數位的位數;Precision 範圍[1,38] scale 範圍[-84,127] 舉例:
12345.678 Precision 是 8 scale 是 3;
number(6,3)型別和number(6,-3)型別插入資料的結果如下:

SQL> 
SQL> insert into a2 values(1,'xiao','2222',123.4556
,1234.5678); 1 row inserted SQL> select * from a2 where id=1 and name='xiao'; ID NAME PASSWORD EG EG_EG ---------- -------------------- -------------------- -------- -------- 1 xiao 2222 123.456 1000 //number(6,3)型別時,插入像23.67:前後會自動補全前面補空格小數點後面不足三位補充0
//number(6,-3)型別時,插入像123.456資料,小數點前面不足四位數值為0 //小數點前面有四位數及以上第四位以前的都變為0像1234.567插入資料庫資料將變成1000剛好解釋上面的例子

一、數值求絕對值以及取整函式

//abs()函式
應用例子:
select abs(n1) from t_number where id=1;
//round()函式四捨五入
select round(n1,2) from t_number where id=1;//解釋:round(n1,2)中的第二個引數2為小數的位數如果只有一個引數像round(n1)預設就沒有小數了
//向上取整ceil()
select ceil(12.4
) from dual;//輸出13 select ceil(-12,3)from dual;//輸出-12 ***!注意*** //向下取整floor() select ceil(12.4) from dual;//輸出12 //取模函式mod(5,3) select mod(5,3) from dual;//輸出2 //正負函式sign() select sign(0)from dual;//輸出0 select sign(-12)from dual;//輸出-1 select sign(212)from dual;//輸出1

二、其他函式

Sqrt() 求平方根:select sqrt(9) from dual;
Power()求乘方:select power(2,3) from dual;

> SQL> select power(2,10)from dual; POWER(2,10)
> -----------
>        1024
//擷取函式trunc()第二個引數是擷取小數的個數
> SQL> select trunc(123.456,2) from dual; TRUNC(123.456,2)
> ----------------
>           123.45

三、to_char()格式化數值函式

//為了美觀前後補全零。

> SQL> select to_char(123.456,'0000.0000') from dual;
> TO_CHAR(123.456,'0000.0000')
> ----------------------------
>  0123.4560

 ***如果多了就會隨便弄資料***例如:

>  SQL> select to_char(22123.456,'0000.0000') from dual;
> TO_CHAR(22123.456,'0000.0000')
> ------------------------------
> ##########

-----------99999的形式--------------------
//如果是99999替代的話,小數部分不足補充零整數部分不補充

> SQL> select to_char(123.456,'9999.9999') from dual;
> TO_CHAR(123.456,'9999.9999')
> ----------------------------
>   123.4560

----------------999,999,999逗號分隔的形式------------------

> SQL> select to_char(12123.456,'99,999,999.9999') from dual;
> TO_CHAR(12123.456,'99,999,999.
> ------------------------------
>      12,123.4560
------------FM99,999,999去空格的形式小數後面有零也會去掉--------------
------------------$的形式---------------------
> SQL> select to_char(12123.456,'$99,999,999.9999') from 
> dual; TO_CHAR(12123.456,'$99,999,999
> ------------------------------
>      $12,123.4560
中文的¥可以用L來實現
>SQL> select to_char(12123.456,'FML99,999,999.9999') from 
> dual; TO_CHAR(12123.456,'FML99,999,9
> ------------------------------ 
> ¥12,123.456
FM上面講過的這裡不多做解釋了
------------C顯示具體的貨幣-------------------
> SQL> select to_char(12123.456,'FM99,999,999.9999C') from dual;
> TO_CHAR(12123.456,'FM99,999,99
> ------------------------------ 12,123.456CNY

下一篇進入日期類的學習