单行函数 第一部分 第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;
时间: 2024-10-10 06:14:52