單行函數
第一部分
第1章 數值型函數
--1 創建用戶指定其使用的表空間
--1.1 查看當前表空間狀態
COL tablespace_name FOR a15;
COL file_name FOR a50;
SELECT tablespace_name,file_id,file_name FROM dba_data_files;
--1.2 創建目錄
mkdir -p /u01/app/oracle/oradata/PROD/disk6/
--1.3 創建表空間
CREATE TABLESPACE DBLION DATAFILE '/u01/app/oracle/oradata/PROD/disk6/tb_dblion01.dbf' SIZE 100M;
--1.4 創建用戶并指定默認表空
CREATE USER dblion IDENTIFIED BY dblion DEFAULT TABLESPACE DBLION;
--1.5 授權
GRANT RESOURCE,CONNECT TO dblion;
第一部分
第1章 數值型函數
--1.函數分類
1 2 3 4 5 6
1 CEIL FLOOR ROUND TRUNC
2 ABS SIGN MOD REMAINDER BITAND
3 SIN COS TAN ASIN ACOS ATAN
4 EXP LN POWER LOG SQRT
5 NANVL WIDTH_BUCKET
99 TAN2 COSH SINH TANH --子類為99的不講
--2.總結函數表
CREATE TABLE T_FUNCTION(
FID VARCHAR2(8), --函數ID
FNAME VARCHAR2(20), --函數名稱
PARM_LIST VARCHAR2(30), --參數列表
FFUNC VARCHAR2(100), --函數功能
RET_TYPE VARCHAR2(20) --返回值類型
);
--規則:
FID 12表示函數大類34子類5是否講解6保留78為子類中序號
--4.詳細內容
--=============================================================================
函數ID :1
函數名稱:CEIL
參數列表:CEIL(n)
函數功能: 返回向上取整的值
返回值類型:NUMBER
-------------------------------------------------------------------------------
INSERT INTO T_FUNCTION(FID,FNAME,PARM_LIST,FFUNC,RET_TYPE)
VALUES('01011001','CEIL','CEIL(n)','返回向上取整的值','NUMBER');
COMMIT;
SELECT * FROM T_FUNCTION;
-------------------------------------------------------------------------------
--向上取整
SELECT
CEIL(9), --9
CEIL(9.1), --10
CEIL(9.49), --10
CEIL(8.49), --9
CEIL(8.51), --9
CEIL(8.99) --9
FROM DUAL;
--類型轉換
SELECT
CEIL('9'), --9
CEIL('9.1'), --10
CEIL('9.49'), --10
CEIL('8.49'), --9
CEIL('8.51'), --9
CEIL('8.99') --9
FROM DUAL;
--表達式
SELECT
CEIL(8 + 1.0), --9
CEIL(8 + 1.1), --10
CEIL(8 + 1.51), --10
CEIL(8 + 0.49), --9
CEIL(8 + 0.51), --9
CEIL(8 + 0.99) --9
FROM DUAL;
--=============================================================================
函數ID :2
函數名稱:FLOOR
參數列表:FLOOR(n)
函數功能: 返回向下取整的值
返回值類型:NUMBER
-------------------------------------------------------------------------------
INSERT INTO T_FUNCTION(FID,FNAME,PARM_LIST,FFUNC,RET_TYPE)
VALUES('01011002','FLOOR','FLOOR(n)','返回向下取整的值','NUMBER');
COMMIT;
SELECT * FROM T_FUNCTION;
-------------------------------------------------------------------------------
--向下取整
SELECT
FLOOR(9), --9
FLOOR(9.1), --9
FLOOR(9.49), --9
FLOOR(8.49), --8
FLOOR(8.51), --8
FLOOR(8.99) --8
FROM DUAL;
--類型轉換
SELECT
FLOOR('9'), --9
FLOOR('9.1'), --9
FLOOR('9.49'), --9
FLOOR('8.49'), --8
FLOOR('8.51'), --8
FLOOR('8.99') --8
FROM DUAL;
--表達式
SELECT
FLOOR(8 + 1.0), --9
FLOOR(8 + 1.1), --9
FLOOR(8 + 1.51), --9
FLOOR(8 + 0.49), --8
FLOOR(8 + 0.51), --8
FLOOR(8 + 0.99) --8
FROM DUAL;
記憶:
CEIL 天花板所以是向上取整
FLOOR 地板所以是向下取整
--=============================================================================
函數ID :3
函數名稱:ROUND
參數列表:ROUND(n[,INTEGER])
函數功能: 返回四舍五入后的值
返回值類型:NUMBER
-------------------------------------------------------------------------------
INSERT INTO T_FUNCTION(FID,FNAME,PARM_LIST,FFUNC,RET_TYPE)
VALUES('01011003','ROUND','ROUND(n[,INTEGER])','返回四舍五入后的值','NUMBER');
COMMIT;
SELECT * FROM T_FUNCTION;
-------------------------------------------------------------------------------
SELECT
ROUND(0), -- 0
ROUND('0'), -- 0
ROUND( 10.1234), -- 10
ROUND(-10.1234), -- -10
ROUND( 9.9999), -- 10
ROUND( -9.9999) -- -10
FROM DUAL;
SELECT
ROUND(123.123456789) COL01, -- 123
ROUND(123.123456789,0) COL11, -- 123
ROUND(123.123456789,1) COL12, -- 123.1
ROUND(123.123456789,2) COL13, -- 123.12
ROUND(123.123456789,3) COL14, -- 123.123
ROUND(123.123456789,4) COL15, -- 123.1235
ROUND(123.123456789,-1) COL16, -- 120
ROUND(123.123456789,-2) COL17, -- 100
ROUND(123.123456789,-3) COL18 -- 0
FROM DUAL;
=FLOOR(n * POWER(10, integer) + 0.5) * POWER(10, -integer)
SELECT
FLOOR(123.123456789 * POWER(10, 3) + 0.5) COL1,
FLOOR(123.123456789 * POWER(10, 3) + 0.5) * POWER(10, -3) COL2,
FLOOR(123.123456789 * POWER(10, 4) + 0.5) COL3 ,
FLOOR(123.123456789 * POWER(10, 4) + 0.5) * POWER(10, -4) COL4
FROM DUAL;
--=============================================================================
函數ID :4
函數名稱:TRUNC
參數列表:TRUNC(n[,INTEGER])
函數功能: 返回截斷后的值
返回值類型:NUMBER
-------------------------------------------------------------------------------
INSERT INTO T_FUNCTION(FID,FNAME,PARM_LIST,FFUNC,RET_TYPE)
VALUES('01011004','TRUNC','TRUNC(n[,INTEGER])','返回截斷后的值','NUMBER');
COMMIT;
SELECT * FROM T_FUNCTION;
-------------------------------------------------------------------------------
SELECT
TRUNC(0), -- 0
TRUNC('0'), -- 0
TRUNC( 10.1234), -- 10
TRUNC(-10.1234), -- -10
TRUNC( 9.9999), -- 9
TRUNC( -9.9999) -- -9
FROM DUAL;
SELECT
TRUNC(123.123456789) COL01, -- 123
TRUNC(123.123456789,0) COL11, -- 123
TRUNC(123.123456789,1) COL12, -- 123.1
TRUNC(123.123456789,2) COL13, -- 123.12
TRUNC(123.123456789,3) COL14, -- 123.123
TRUNC(123.123456789,4) COL15, -- 123.124 --4后面被截斷
TRUNC(123.123456789,-1) COL16, -- 120
TRUNC(123.123456789,-2) COL17, -- 100
TRUNC(123.123456789,-3) COL18
FROM DUAL;
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。