1、 P1/71 16-12-16 SQL PL/SQL 语法手 册 目 录 第一部分 SQL 语法部分 . 2 一、 CREATE TABLE 语句 2 二、 CREATE SEQUENCE 语句 . 4 三、 CREATE VIEW 语句 . 5 四、 INSERT 语句 : . 6 五、 UPDATE 语句 : . 8 六、 DELETE 语句 : 9 七、 TRUNCATE 语句 : .10 八、 各类 FUNCTIONS: 11 1. 转换函数 : . 11 2. 日期函数 15 3. 字符函数 19 4. 数值函数 27 5. 单行函数 : . 32 6. 多行函数 34 第二部分 P
2、L/SQL 语法部分 .40 一、 PL/SQL 语言简介 .40 二、 变量说明 .47 三、 PL/SQL 控制程序流 .51 四、 存储过程 .54 五、 存储函数 .54 六、 PACKAGE 54 七、 触发器 .57 八、 应用实例 .59 P2/71 16-12-16 第一部分 SQL 语法部分 一、 Create table 语句 语句 : CREATE TABLE schema.table_name ( column datatype DEFAULT expr column_constraint . | table_constraint , column datatype D
3、EFAULT expr column_constraint . | table_constraint .) PCTFREE integer PCTUSED integer INITRANS integer MAXTRANS integer TABLESPACE tablespace STORAGE storage_clause RECOVERABLE | UNRECOVERABLE PARALLEL ( DEGREE integer | DEFAULT INSTANCES integer | DEFAULT ) | NOPARALLEL CACHE | NOCACHE | CLUSTER cl
4、uster (column , column.) ENABLE enable_clause | DISABLE disable_clause . AS subquery 表是 Oracle 中最重要的数据库对象 ,表存储一些相似的数据集合 ,这些数据描述成若干列或字段 .create table 语句的基本形式用来在数据库中创建容纳数据行的表 .create table 语句的简单形式接收表名 ,列名 ,列数据类型和大小 .除了列名和描述外 ,还可以指定约束条件 ,存储参数和该表是否是个 cluster 的一部分 . Schema 用来指定所建表的 owner,如不指定则为当前登录的用户 .
5、Table_name 用来指定所创建的表名 ,最长为 30 个字符 ,但不可以数字开头 (可为下划线 ),但不可同其它对象或 Oracle 的保留字冲突 . Column 用来指定表中的列名 ,最多 254 个 . Datatype 用来指定列中存储什么类型的数据 ,并保证只有有效的数据才可以输入 . column_constraint 用来指定列约束 ,如某一列不可为空 ,则可指定为 not null. table_constraint 用来指定表约束 ,如表的主键 ,外键等 . Pctfree 用来指定表中数据增长而在 Oracle块中预留的空间 . DEFAULT为 10%,也就是说该表
6、的每个块只能使用 90%,10%给数据行的增大时使用 . Pctused 用来指定一个水平线 ,当块中使用的空间低于该水平线时才可以向该中加入新数据行 . P3/71 16-12-16 Parallel 用来指定为加速该表的全表扫描可以使用的并行查询进程个数 . Cache 用来指定该表为最应该缓存在 SGA 数据库缓冲池中的候选项 . Cluster 用来指定该表所存储的 cluster. Tablespace 用来指定用数据库的那个 分区来存储该表的数据 . Recoverable|Unrecoverable 用来决定是否把对本表数据所作的变动写入 Redo 文件 .以恢复对数据的操作 .
7、 As 当不指定表的各列时 ,可利用 As 子句的查询结果来产生数据库结构和数据 . 例 : 1) create table mytab1e(mydec decimal, myint inteter) tablespace user_data pctfree 5 pctused 30; 2) create table mytable2 as ( select * from mytable1); P4/71 16-12-16 二、 create sequence 语句 语句 : CREATE SEQUENCE schema.sequence_name INCREMENT BY integer S
8、TART WITH integer MAXVALUE integer | NOMAXVALUE MINVALUE integer | NOMINVALUE CYCLE | NOCYCLE CACHE integer | NOCACHE ORDER | NOORDER 序列用来为表的主键生成唯一的序列值 . Increment by 指定序列值每次增长的值 Start with 指定序列的第一个值 Maxvalue 指定产生的序列的最大值 Minvalue 指定产生的序列的最小值 Cycle 指定当序列值逵到最大或最小值时 ,该序列是否循环 . Cache 指定序列生成器一次缓存的值的个数 Or
9、der 指定序列中的数值是否按访问顺序排序 . 例 : 1) create sequence myseq increment by 4 start with 50 maxvalue 60 minvalue 50 cycle cache 3; 2) sql create sequence new_s; sqlinsert into new (new_id,last_name,first_name) values(new_s.nextval,daur,permit); P5/71 16-12-16 三、 create view 语句 语句 : CREATE OR REPLACE FORCE | N
10、OFORCE VIEW schema.view_name (alias ,alias.) AS subquery WITH CHECK OPTION CONSTRAINT constraint 视图实 际上是存储在数据库上旳 select 语句 .每次在 sql 语句中使用视图时 ,表示该视图的 select 语句就用来得到需要的数据 . Or replace 创建视图时如果视图已存在 ,有此选项 ,新视图会覆盖旧的 视图 . Force 如有此选项 ,当视图基于的表不存在或在该模式中没有创建视图的权限时 ,也可以建立视图 . As subquery 产生视图的 select 查询语句 Wit
11、h check option 如果视图是基于单表的且表中所有的非空列都包含在视图中时 ,该视图可用于 insert 和 update 语句中 ,本 选项保证在每次插入或更新数据后 ,该数据可以在视 图中查到 例 : 1) create or place view new_v as select substr(d.d_last_name,1,3), d.d_lastname,d.d_firstname,b.b_start_date,b.b_location from new1 d, new2 b where d.d_lastname=b.b_lastname; P6/71 16-12-16 四、
12、 INSERT 语句 : 1. 语法 INSERT INTO schema.table | view | subquery dblink (column , column .) VALUES (expr , expr .) | subquery WHERE condition 2. 插入单行 使用 VALUES 关键词为新行的每一列指定一个值 .如果不知道某列的值 ,可以使用NULL关键词将其值设为空值 (两个连续的逗号也可以表示空值 ,也可使 用 NULL关键词 ) 插入一行时试图为那些 NOT NULL 的列提供一个 NULL 值 ,会返回错误信息 . 举例 : 插入一条记录到 DEPAR
13、TMENT 表中 INSERT INTO DEPARTMENT (DEPARTMENT_ID,NAME,LOCATION_ID) VALUES (01,COMPUTER,167) 3. 插入多行 将 SELECT语句检索出来的所有数据行都插入到表中 .这条语句通常在从一个表向另一个表快速复制数据行 . 举例 : INSERT INTO ORDER_TEMP SELECT A.ORDER_ID,B.ITEM_ID,C.NAME,E.FIRST_NAME|.|E.LAST_NAME, A.ORDER_DATE,A.SHIP_DATE,D.DESCRIPTION,B.ACTUAL_PRICE, B.
14、QUANTITY,B.TOTAL FROM SALES_ORDER A, ITEM B, CUSTOMER C, PRODUCT D, EMPLOYEE E WHERE MONTHS_BETWEEN(TO_DATE(A.ORDER_DATE),TO_DATE(01-7 月-91)0 AND A.CUSTOMER_ID=C.CUSTOMER_ID AND C.SALESPERSON_ID=E.EMPLOYEE_ID AND A.ORDER_ID=B.ORDER_ID P7/71 16-12-16 AND B.PRODUCT_ID=D.PRODUCT_ID 4. 从其它表复制数据 : 要快速地从一
15、个表向另一个尚不存在的表复制数据 ,可以使用 CREATE TABLE 语句定义该表并同时将 SELECT 语句检索的结果复制到新表中 . CREATE TABLE EMPLOYEE_COPY AS SELECT * FROM EMPLOYEE P8/71 16-12-16 五、 UPDATE 语句 : 1. 语法 UPDATE schema.table | view | subquerydblink alias SET (column , column .) = (subquery) | column = expr | (subquery) , (column , column .) = (
16、subquery) | column = expr | (subquery) . WHERE condition UPDATE 语句更新所有满足 WHERE 子句条件的数据行 .同样 ,该语句可以用SELECT语句检索得到 .但 SELECT必须只检索到一行数据值 .否则报错 .而且每更新一行数据 ,均要执行一次 SELECT 语句 . 举例 : UPDATE EMPLOYEE_COP SET SALARY= SALARY-400 WHERE TO_NUMBER(TO_CHAR(HIRE_DATE,YYMMDD)850101 UPDATE ITEM_COP A SET A.ACTUAL_PRI
17、CE= ( SELECT B.LIST_PRICE FROM PRICE B,SALES_ORDER C WHERE A.PRODUCT_ID=B.PRODUCT_ID AND A.ORDER_ID=C.ORDER_ID AND TO_NUMBER(TO_CHAR(C.ORDER_DATE,YYYYMMDD) BETWEEN TO_NUMBER(TO_CHAR(B.START_DATE,YYYYMMDD) AND NVL(TO_NUMBER(TO_CHAR(END_DATE,YYYYMMDD),29991231) ) P9/71 16-12-16 六、 DELETE 语句 : 1. 语法 DE
18、LETE FROM schema.table | viewdblink alias WHERE condition DELETE 语句删除所有满足 WHERE 子句条件的数据行 . 举例 : DELETE FROM item WHERE ORDER_ID=510 P10/71 16-12-16 七、 TRUNCATE 语句 : 1. 语法 TRUNCATE schema.table P11/71 16-12-16 八、 各类 Functions: 1. 转换函数 : 1.1. 函數 :TO_CHAR 语法 : TO_CHAR(number,format) 用途 : 将一个数值转换成与之等价的字
19、符串 .如果不指定格式 ,将转换成最简单的字符串形式 .如果为负数就在前面加一个减号 . Oracle 为数值提供了很多格式 ,下表列出了部分可接受的格式 : 元素 描述 示例 值 结果 9 返回指定位数的数值 ,前面为 0,显示为空格 99999 784 -578 1234567 45.895 784 -578 # 46 插入小数点 9999.99 784 45.3482 784.00 45.35 在结果串的 指定位置插入逗号 9,999,999 784 1234567 0.44 784 1,234,567 0 $ 返回值前面加一个元符号 $99,999 784 -578 $784 -$57
20、8 B 结果的整数部分如果是0,就显示成空格 B9999.9 784 0.44 784.0 .4 S 返回 有正负号的数值 S9999 784 +784 EEEE 以科 计数法表示数值 9.9EEEE 45 0.0666 4.5E+01 6.7E-02 P12/71 16-12-16 1.2. 函數 :TO_CHAR 语法 : TO_CHAR(date,format) 用途 : 将按 format 参数指定的格式将日期值转换成相应的字符串形式 .同样 ,Oracle 提供许多的格式模型 ,用户可以用它们的组合来表示最终的输出格式 .唯一限制就是最终的掩码不能超过 22 个字符 .下表列出了部分
21、日期格式化元素 . Oracle 为数值提供了很多格式 ,下表列出了部分可接受的格式 : 格式 意义 D 用数字表示星期几 (1,2,3,4,5,6,7) DY 用三个 字符表示星期几的缩写形式 (MON) DAY 星期几的完整表示 (MONDAY) DD 用数字表示一月中的几号 DDD 用数字表示年份中的天数 W 一月中的星期数 WW 一年中的星期数 MM 用数字表示月数 MON 用三个字母表示月的缩写 (APR) MONTH 月的完整英文表示 (FEBRUARY) Y 年份中的最后一个数字 (9) YY 年份中的最后二个数字 (99) YYY 年份中的最后三个数字 (999) YYYY 年
22、份用四个数字表示 (1999) YEAR 年份的字母全部拼写 (NINETEEN-NINETY-NINE) AM 或 PM 午前或午后表示符 HH 用小时表示日期 MI 分钟表示小时 SS 秒钟表示分钟 SSSS 自午夜以来的秒数 (这个数字经常在 0-86399 之间 ) P13/71 16-12-16 1.3. 函數 :TO_DATE 语法 : TO_DATE(string,format) 用途 : 根据给定的格式将一个字符串转换成 Oracle 的日期值 . 该函数的主要用途是用来验证输入的日期值 .在应用程序中 ,用户必须验证输入日期是否有效 ,如月份是否在 112 之间和日期中的天数
23、是否在指定月份的天数内 . P14/71 16-12-16 1.4. 函數 :TO_NUMBER 语法 : TO_NUMBER(string,format) 用途 : 该函数将一个字符串转换成相应的数值 .对于简单的字符串转换数值 (例如几位数字加上小数点 ).格式是可选的 . P15/71 16-12-16 2. 日期函数 2.1. 函數 :ADD_MONTHS 语法 : ADD_MONTHS(date,number) 用途 : 在日期 date 上加指定的月数 ,返回一个新日期 .如果给定为负数 ,返回值为日期 date 之前几个月的日期 .number 应当是个整数 ,如果是小数 ,正数
24、被截为小于该数的最大整数 ,负数 被截为大于该数的最小整数 . 例如 : SELECT TO_CHAR(ADD_MONTHS(sysdate,1), DD-MON-YYYY) “Next month“ FROM dual Next month - 19-FEB-2000 2.2. 函數 :LAST_DAY 语法 : LAST_DAY(date) 用途 : 返回日期 date 所在月份的最后一天的日期 . 例如 : SELECT SYSDATE, LAST_DAY(SYSDATE) “Last“, LAST_DAY(SYSDATE) - SYSDATE “Days Left“ FROM DUAL
25、 SYSDATE Last Days Left - - - 19-JAN-00 31-JAN-00 12 2.3. 函數 :MONTHS_BETWEEN 语法 : MONTHS_BETWEEN(date1,date2) 用途 : 返回两个日期之间的月份 .如果两个日期月份内的天数相同 (或 者都是某个月的最后一天 ),返回值是整数 .否则 ,返回值是小数 ,每于 1/31 月来计算月中剩余天数 .如果第二个日期比第一个日期还早 ,则返回值是负数 . P16/71 16-12-16 例如 : SELECT MONTHS_BETWEEN(TO_DATE(02-02-1992, MM-DD-YYYY
26、), TO_DATE(01-01-1992, MM-DD-YYYY) “Months“ FROM DUAL Months - 1.03225806 SELECT MONTHS_BETWEEN(TO_DATE(02-29-1992, MM-DD-YYYY), TO_DATE(01-31-1992, MM-DD-YYYY) “Months“ FROM DUAL Months - 1 2.4. 函數 :NEXT_DAY 语法 : NEXT_DAY(date,day) 用途 : 该函数返回日期 date 指定若天后的日期 .注意 :参数 day 必须为星期 ,可以星期几的英文完整拼写 ,或前三个字母缩
27、写 ,或数字 1,2,3,4,5,6,7 分别表示星期日到星期六 .例如 ,查询返回本月最后一个星期五的日期 . 例如 : SELECT NEXT_DAY(last_day(sysdate)-7),FRIDAY) P17/71 16-12-16 FROM dual NEXT_DAY( - 28-JAN-00 2.5. 函數 :ROUND 语法 : NEXT_DAY(date,format) 用途 : 该函数把一个日期四舍五入到最接近格式元素指定的形式 .如果省略 format,只返回 date的日期部分 .例如 ,如果想把时间 (24/01/00 14:58:41)四舍五入到最近的小时 .下表
28、显示了所有可用格式元素对日期的影响 . Format Element Result SS 24/01/00 14:58:41 MI 24/01/00 14:59:00 HH 24/01/00 15:00:00 DD 25/01/00 00:00:00 MM 01/02/01 00:00:00 YY 01/01/00 00:00:00 CC 01/01/00 00:00:00 例如 : SELECT to_char(ROUND(sysdate,HH),DD-MON-YY HH24:MI:SS) FROM dual TO_CHAR(ROUND(SYSDATE,HH),DD-MON-YYHH24:M
29、I:SS) - 24-JAN-00 15:00:00 2.6. 函數 :TRUNC 语法 : TRUNC(date,format) P18/71 16-12-16 用途 : TRUNC 函数与 ROUND 很相似 ,它根据指定的格式掩码元素 ,只返回输入日期用户所关心的那部分 ,与 ROUND 有所不同 ,它删除更精确的时间部分 ,而不是将其四舍五入 . 例如 : SELECT TRUNC(sysdate) FROM dual TRUNC(SYS - 24-JAN-00 FLOOR 函数: 求两个日期之间的天数用; select floor(sysdate - to_date(20080805
30、,yyyymmdd) from dual; P19/71 16-12-16 3. 字符函数 3.1. 函數 :ASCII 语法 : ASCII(character) 用途 : 返回指定字符的 ASCII 码值 .如果为字符串时 ,返回第一个字符的 ASCII 码值 . 例如 : SELECT ASCII(Z) FROM dual ASCII(Z) - 90 3.2. 函數 :CHR 语法 : CHR(number) 用途 : 该函数执行 ASCII 函数的反操作 ,返回其 ASCII 码值 等于数值 number 的字符 .该函数通常用于向字符串中添加不可打印字符 . 例如 : SELECT
31、CHR(65)|BCDEF FROM dual CHR(65 - ABCDEF P20/71 16-12-16 3.3. 函數 :CONCAT 语法 : CONCAT(string1,string2) 用途 : 该函数用于连接两个字符串 ,将 string2 跟在 string1 后面返回 ,它等价于连接操作符 (|). 例如 : SELECT CONCAT(This is a, computer) FROM dual CONCAT(THISISA, - This is a computer 它也可以写成这样 : SELECT This is a| computer FROM dual THI
32、SISA|COMPUT - This is a computer 这两个语句的结果是完全相同的 ,但应尽可能地使用 |操作符 . 3.4. 函數 :INITCAP 语法 : INITCAP(string) 用 途 : 该函数将字符串 string 中每个单词的第 1 个字母变成大写字母 ,其它字符为小写字母 . 例如 : P21/71 16-12-16 SELECT INITCAP(first_name|.|last_name) FROM employee WHERE department_id=12 INITCAP(FIRST_NAME|.|LAST_N - Chris.Alberts Ma
33、tthew.Fisher Grace.Roberts Michael.Douglas 3.5. 函數 :INSTR 语法 : INSTR(input_string,search_string,n,m) 用途 : 该函数是从字符串 input_string 的第 n 个字符开始查找搜索字符串的第 m 次出现 ,如果没有找到搜索的字符串 ,函数将返回 0.如果找到 ,函数将返回位置 . 例如 : SELECT INSTR(the quick sly fox jumped over the lazy brown dog,the,2,1) FROM dual INSTR(THEQUICKSLYFOXJ
34、UMPEDOVERTHELAZYBROWNDOG,THE,2,1) - 31 P22/71 16-12-16 3.6. 函數 :INSTRB 语法 : INSTRB(input_string,search_string,n,m) 用途 : 该函数类似于 INSTR 函数 ,不同之处在于 INSTRB 函数返回搜索字符串出现的字节数 ,而不是字符数 .在 NLS 字符集中仅包含单字符时 ,INSTRB 函数和 INSTR 函数是完全相同的 . 3.7. 函數 :LENGTH 语法 : LENGTH(string) 用途 : 该函数用于返回输入字符串的字符数 .返回的长度并非字段所定义的长度 ,而
35、只是字段中占满字符的部分 .以列实例中 ,字段 first_name 定义为 varchar2(15). 语法 : SELECT first_name,LENGTH(first_name) FROM employee FIRST_NAME LENGTH(FIRST_NAME) - - JOHN 4 KEVIN 5 3.8. 函數 :LENGTHB 语法 : LENGTHB(string) 用途 : 该函数用于返回输入字符串的字节数 .对于只包含单字节字符的字符集来说 LENGTHB函数和 LENGTH 函数完全一 样 . P23/71 16-12-16 3.9. 函數 :LOWER 语法 :
36、LOWER(string) 用途 : 该函数将字符串 string 全部转换为小写字母 ,对于数字和其它非字母字符 ,不执行任何转换 . 3.10. 函數 :UPPER 语法 : UPPER(string) 用途 : 该函数将字符串 string 全部转换为大写字母 ,对于数字和其它非字母字符 ,不执行任何转换 . 3.11. 函數 :LPAD 语法 : LPAD(string,length,set) 用途 : 在字符串 string 的左边加上一个指定的字符集 set,从而使串的长度达到指定的长度 length.参数 set 可以是单个字符 ,也可以是字符串 .如果 string 的长度小于
37、 length 时 ,取 string 字符串的前 length 个字符 . 语法 : SELECT first_name,LPAD(first_name,20, ) FROM employee FIRST_NAME LPAD(FIRST_NAME,20,) - - JOHN JOHN KEVIN KEVIN P24/71 16-12-16 3.12. 函數 :RPAD 语法 : RPAD(string,length,set) 用途 : 在字符串 string 的右边加上一个指定的字符集 set,从而使串的长度达到指定的长度 length.参数 set 可以是单个字符 ,也可以是字符串 .如果
38、 string 的长度小于 length 时 ,取 string 字符串的前 length 个字符 . 例如 : SELECT first_name,rpad(first_name,20,-) FROM employee FIRST_NAME RPAD(FIRST_NAME,20,-) - - JOHN JOHN- KEVIN KEVIN- 3.13. 函數 :LTRIM 语法 : LTRIM(string,set) 用途 : 该函数从字符串的左边开 始 ,去掉字符串 set 中的字符 ,直到看到第一个不在字符串 set 中的字符为止 . 例如 : SELECT first_name,ltri
39、m(first_name,BA) FROM employee WHERE first_name=BARBARA FIRST_NAME LTRIM(FIRST_NAM - - BARBARA RBARA P25/71 16-12-16 3.14. 函數 :RTRIM 语法 : RTRIM(string,set) 用途 : 该函数从字符串的右边开始 ,去掉字符串 set 中的字符 ,直到看到第一个不在字符串 set 中的字符为止 .具有 NULL 值的字段不能与具有空白字符的字段相比较 . 这是因为空白字符与 NULL 字符是完全不同的两种字符 .该函数的另外一个用途是当进行字段连接时去掉不需要的
40、字符 . 3.15. 函數 :SUBSTR 语法 : SUBSTR(string,start,length) 用途 : 该函数从输入字符串中取出一个子串 ,从 start 字符处开始取指定长度的字符串 ,如果不指定长度 ,返回从 start 字符处开始至字 符串的末尾 . 3.16. 函數 :REPLACE 语法 : REPLACE(string,search_set,replace_set) 用途 : 该函数将字符串中所有出现的 search_set 都替换成 replace_set 字符串 .可以使用该函将字符串中所有出现的符号都替换成某个有效的名字 .如果不指定 replace_set,
41、则将从字符串string 中删除所有的搜索字符串 search_set. 例如 : SELECT REPLACE(abcdefbdcdabc,dsssdcdrd,abc,ABC) FROM dual REPLACE(ABCDEFBDCDABC, - ABCdefbdcdABC,dsssdcdrd P26/71 16-12-16 3.17. 函數 :TRANSLATE 语法 : TRANSLATE(string,search_set,replace_set) 用途 : 该函数用于将所有出现在搜索字符集 search_set 中的字符转换成替换字符集 replace_set中的相应字符 .注意 :
42、如果字符串 string 中的某个字符没有出现在搜索字符集中 .则它将原封不动地返回 .如果替换字符集 replace_set 比搜索字符集 search_set 小 ,那么搜索字符集search_set 中后面的字符串将从字符串 string 中删除 . 例如 : SELECT TRANSLATE(GYK-87M,0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ, 9999999999xxxxxxxxxxxxxx) FROM dual TRANSL - xx-99x P27/71 16-12-16 4. 数值函数 4.1. 函數 :ABS 语法 : ABS(numbe
43、r) 用途 : 该函数返回数值 number 的绝对值 .绝对值就是一个数去掉符号的那部分 . 4.2. 函數 :SQRT 语法 : SQRT(number) 用途 : 该函数返回数值 number 的平方根 ,输入值必须大于等于 0,否则返回错误 . 4.3. 函數 :CEIL 语法 : CEIL(number) 用途 : 该函数返回大于等于输入值的下一个整数 . 4.4. 函數 :FLOOR 语法 : FLOOR(number) 用途 : 该函数返回小于等于 number 的最大整数 . P28/71 16-12-16 4.5. 函數 :MOD 语法 : MOD(n,m) 用途 : 该函数
44、返回 n 除 m 的模 ,结果是 n 除 m 的剩余部分 .m,n 可以是小数 ,负数 . 4.6. 函數 :POWER 语法 : POWER(x,y) 用途 : 该函数执行 LOG 函数的反操作 ,返回 x 的 y 次方 . 4.7. 函數 :ROUND 语法 : ROUND(number,decimal_digits) 用途 : 该函数将数值 number 四舍五入到指定的小数位 .如果 decimal_digits 为 0,则返回整数 .decimal_digits 可以为负数 . 4.8. 函數 :TRUNC 语法 : TRUNC(number,decimal_pluces) 用途 :
45、 该 函数在指定的小数字上把一个数值截掉 .如果不指定精度 ,函数预设精度为 0. decimal_pluces 可以为负数 . P29/71 16-12-16 4.9. 函數 :SIGN 语法 : SIGN(number) 用途 : 该函数返回 number 的符号 ,如果 number 为正数则返回 1,为负数则返回 -1,为 0 则返回 0. 4.10. 函數 :SIN 语法 : SIN(number) 用途 : 该函数返回弧度 number 的正弦值 . 4.11. 函數 :SINH 语法 : SINH(number) 用途 : 该函数返回 number 的返正弦值 . 4.12. 函
46、數 :COS 语法 : COS(number) 用途 : 该函数返回弧度 number 的三角余弦值 .要用角度计算余弦 ,可以将输入值乘以 0.01745 转换成弧度后再计算 . P30/71 16-12-16 4.13. 函數 :COSH 语法 : COSH(number) 用途 : 该函数返回输入值的反余弦值 . 4.14. 函數 :TAN 语法 : TAN(number) 用途 : 该函数返回弧度 number 的正切值 . 4.15. 函數 :TANH 语法 : TANH(number) 用途 : 该函数返回数值 number 的反正切值 . 4.16. 函數 :LN 语法 : LN(number) 用途 : 该函数返回 number 自然对数 .