本文共 4392 字,大约阅读时间需要 14 分钟。
Oracle 数据库中的转换函数用于将数据从一种数据类型转换为另一种类型。主要包括 TO_CHAR、TO_DATE 和 TO_NUMBER 三个函数。
TO_CHAR 函数用于将字符、日期或数字转换为字符类型。其功能包括:
nchar、nvarchar2、clob、nclob 等类型转换为 char 类型。 SELECT TO_CHAR('AABBCC') FROM dual;varchar2 类型。 SELECT TO_CHAR(SYSDATE, 'yyyy-mm-dd hh24:mi:ss') FROM dual;SELECT TO_CHAR(-100, 'L99G999D99MI') FROM dual;TO_DATE 函数用于将字符转换为日期类型。其功能包括:
char、nchar、varchar2、nvarchar2 等类型转换为日期类型。fmt,则按照指定格式进行转换。fmt 为 'J' 表示使用公元制 Julian day。SELECT TO_DATE(2454336, 'J') FROM dual;SELECT TO_DATE('2007-8-23 23:25:00', 'yyyy-mm-dd hh24:mi:ss') FROM dual;TO_NUMBER 函数用于将字符转换为数值类型。其功能包括:
char、nchar、varchar2、nvarchar2 等类型按照指定格式转换为数值类型。SELECT TO_NUMBER('-100.00', '9G999D99') FROM dual;Oracle 的聚合函数用于对多行数据进行操作,常见的聚合函数包括 AVG、SUM、COUNT、MAX 和 MIN。
AVG(n) 用于计算记录集中 n 列的平均值。
SELECT AVG(col2) FROM temp;SELECT col1, AVG(col2) FROM temp GROUP BY col1;SUM(n) 用于计算记录集中 n 列的总和。
SELECT SUM(col2) FROM temp;SELECT col1, SUM(col2) FROM temp GROUP BY col1;COUNT(n) 用于统计记录集中指定列的记录数。
SELECT COUNT(*) FROM temp;SELECT col1, COUNT(*) FROM temp GROUP BY col1;MAX(n) 和 MIN(n) 分别用于获取记录集中 n 列的最大值和最小值。
SELECT MAX(col2) FROM temp;SELECT col1, MAX(col2) FROM temp GROUP BY col1;SELECT MIN(col2) FROM temp;SELECT col1, MIN(col2) FROM temp GROUP BY col1;Oracle 提供多种日期函数用于操作日期数据,常见函数包括 SYSDATE、LAST_DAY、ADD_MONTHS、MONTHS_BETWEEN、NEXT_DAY、ROUND 等。
获取当前日期和时间。
SELECT SYSDATE FROM dual;返回指定日期所在月份的最后一天。
SELECT LAST_DAY(TO_DATE('2011-2-1', 'YYYY-MM-DD')) FROM dual;返回指定日期前或之后的月份。
SELECT add_months(sysdate,6) FROM dual;返回两个日期间的月份数。
SELECT MONTHS_BETWEEN('04-11月-05', '11-1月-01') FROM dual;返回指定日期后的指定星期几或天数。
SELECT NEXT_DAY(SYSDATE, '星期一') FROM dual;按指定格式对日期进行四舍五入。
SELECT ROUND(TO_DATE('13-2月-03'), 'YEAR') FROM dual;Oracle 提供丰富的字符函数用于对字符串进行操作,常见函数包括 CHR、LOWER、UPPER、CONCAT、LTRIM、RTRIM、REPLACE、INITCAP、INSTR、LENGTH 等。
返回字符集合中与指定代码等价的字符。
SELECT CHR(97) FROM dual;将字符串转换为小写或大写。
SELECT LOWER('A') FROM dual;SELECT UPPER('字') FROM dual;将两个字符串连接。
SELECT CONCAT('Hello', 'world') FROM dual;去除字符串的前后空格。
SELECT LTRIM('ABA', 'A') FROM dual;SELECT RTRIM('ABA', 'A') FROM dual;替换字符串中的子字符串。
SELECT REPLACE('Hello', 'H', 'h') FROM dual;将字符串的第一个字母大写,其余字母小写。
SELECT INITCAP('hello') FROM dual;查找字符串中指定子字符串的位置。
SELECT INSTR('ABACAAA', 'A', 2, 2) FROM dual;返回字符串的长度。
SELECT LENGTH('Hello') FROM dual;Oracle 提供多种数字函数用于对数值数据进行运算,包括 ABS、ACOS、COS、SIN、ASIN、EXP、FLOOR、MOD、POWER、ROUND、TRUNC、SIGN、SQRT 等。
返回数值的绝对值。
SELECT ABS(-13) FROM dual;返回 e 的 n 次方。
SELECT exp(6) FROM dual;返回小于等于数值的最大整数。
SELECT FLOOR(9.6) FROM dual;返回余数。
SELECT MOD(9,6) FROM dual;执行四舍五入运算。
SELECT ROUND(2.936, 2) FROM dual;截取数值的小数部分。
SELECT TRUNC(2.936, 2) FROM dual;检测数值的正负。
SELECT SIGN(6.698), SIGN(-9), SIGN(0) FROM dual;返回数值的平方根。
SELECT SQRT(4) FROM dual;Insert into 表名 (列名) Values ('插入的数据') Update 表名 set 列名 = '数据' where 条件
Order by 列名 [asc|desc]
Select distinct 列名 from 表名
Delete from 表名 where 条件
=!=<><=>=BETWEEN ... ANDIN (列表)LIKE (匹配字符模式)IS NULL (检查是否为空)ANDORNOTSelect * from 表名 where 条件子查询
WHERE column1 = column2WHERE column1 != column2WHERE column1 = column2(Oracle 自动匹配)WHERE column1 = column2(左外或右外连接)WHERE column1 = column2FROM 表1, 表2 WHERE 条件dualSELECT col1, col2 FROM dual;TRUNCSELECT TRUNC(col1, 5) FROM dual;ROUNDSELECT ROUND(col1, 2) FROM dual;EXP 和 IMP 导出和导入数据。exp file_name=‘test.exp’ owner=scottimp file_name=‘test.exp’ owner=scott%FOUND、NOT FOUND。COMMITROLLBACKSAVEPOINTSET TRANSACTIONCREATE PROCEDURE 定义。CREATE FUNCTION 定义。CREATE TRIGGER 定义。CREATE SEQUENCE 序列名INCREMENT BY 1START WITH 1MAXVALUE 999999999
SELECT seq_newsid.nextval FROM sys.dual;
DROP SEQUENCE 序列名
转载地址:http://sxtoz.baihongyu.com/