函数 | 输入 | 输出 |
---|---|---|
Abs(n) | Select abs(-15) from dual; |
15 |
Ceil(n) | Select ceil(44.778) from dual; |
45 |
Cos(n) | Select cos(180) from dual; |
-.5984601 |
Floor(n) | Select floor(100.2) from dual; |
100 |
Power(m,n) | Select power(4,2) from dual; |
16 |
Mod(m,n) | Select mod(10,3) from dual; |
1 |
Round(m,n) | Select round(100.256,2) from dual; |
100.26 |
Trunc(m,n) | Select trunc(100.256,2) from dual; |
100.25 |
Sqrt(n) | Select sqrt(4) from dual; |
2 |
Sign(n) | Select sign(-30) from dual; |
-1 |
函数 | 输入 | 输出 |
---|---|---|
Initcap(char) | Select initcap(‘hello’) from dual; |
Hello |
Lower(char) | Select lower(‘FUN’) from dual; |
fun |
Upper(char) | Select upper(‘sun’) from dual; |
SUN |
Length(char) | Select Length(‘sun’) from dual; |
3 |
Ltrim(char,set) | Select ltrim( ‘xyzadams’,’xyz’) from dual; |
adams |
Rtrim(char,set) | Select rtrim(‘xyzadams’,’ams’) from dual; |
xyzad |
Translate(char, from, to) | Select translate(‘jack’,’j’ ,’b’) from dual; |
back |
Replace(char, searchstring,[rep string]) | Select replace(‘jack and jue’ ,’j’,’bl’) from dual; |
black and blue |
Instr (char, m, n) | Select instr (‘worldwide’,’d’) from dual; |
5 |
Substr (char, m, n) | Select substr(‘abcdefg’,3,2) from dual; |
cd |
Concat (expr1, expr2) | Select concat (‘Hello’,’ world’) from dual; |
Hello world |
连接字符串s1和s2,返回连接后的字符串
取子串函数,从s串中第m个字符起,取长度为n的一个子串,如果n省略,一直到s串的尾部
返回字符串s的长度
将字符串s中的所有字母变为小写
将字符串s中的所有字母变为大写
移走左边的空格字符
移走右边的空格字符
字符串s1中查找s2字符串,并用s3字符串代替,如果s3省略,删除s1中所有的s2串
s1串中查找s2串出现的位置,并作为函数返回值,如果未查到返回0
名称 | 说明 |
---|---|
sysdate | 获取日期和时间 |
months_between | 获取两个日期之间的月份间隔 |
add_months(date,n) | 在指定日期上添加月份,返回新日期 |
next_day(date,n) | 获取指定日期所在周的第 n 天的日期。周日是一个星期的第一天 |
last_day(date) | 每月的最后一天 |
元素 | 用途 |
---|---|
YYYY YY | 年的表示:YYYY 表示 4 位数字,YY 表示 2 位数字 |
MM MONTH MON | 月份表示:MM 月份的数字表示,MONTH 有为月的名称,MON 为月名称的缩写,在中文环境下,MONTH,MON 都是“X 月” 的形式 |
DD DDD | DD:当月的第几天;DDD:当年的第几天 |
D DY DAY | 表示星期几:D-数字表示;DAY-英文表示,DY-缩写,在中文环境下,DAY 和 DY 都是“星期 X”形式 |
HH HH24 SS MI | 时间表示:HH 为小时、SS 为秒、MI 为分。HH24 为 24 小时形式 |
AM PM | 表示时间的上午和下午 |
-/,.;: | 在结果中插入起分隔作用的标点符号 |
名称 | 说明 |
---|---|
to_char(date,m) | 将日期转换为 m 所指定的格式 |
to_date(m,n) | 将字符串 m 转换为日期类型,n 用于描述字符串 m 的格式 |
to_number(m,n) | 将字符串 m 转换为数值,n 用于描述字符串 m 的格式 |
#####to_date(m,n) | |
函数用于将字符串转为日期类型,第二个参数用来描述第一个参数的格式,以告诉 sqlplus 字符串 m 中哪部分是年份,哪部分是月份,哪部分是日期等等 |
select to_date('2013-05-14','yyyy-mm-dd') from dual;
select to_date('14-05-2013','dd-mm-yyyy') from dual;
select to_date('05-14-2013','mm-dd-yyyy') from dual;
函数用于将字符串m转换为数值,参数n用以说明m的格式
将字符串'$12,345.6'转换为数值
select to_number('$12,345.6','$99,999.9') from dual;
将‘¥12,345.6’转换为数值
select to_number('¥12,345.6','L99,999.99') from dual;
数字格式 | 规则 |
---|---|
9 | 每一个 9 代表一个字符 |
0 | 先导符号 0 |
. | 在指定的位置插入小数点 |
, | 在指定的位置插入逗号 |
L | 匹配先导的 ¥ 符号 |
$ | 匹配先导的 $ 符号 |
如果m列的值为null,则显示n
首先将部门表中某条记录的 tel 列的值更新为 null;
update dept set tel=null where dname='市场部';
select d.did,d.dname,nvl(d.tel,'无') from dept d;
利用伪列ruwnum查询当前的纪录
select rownum,d.* from dept d where rownum between 1 and 3
成对比较,即在查询时,可以使用两个列同时和子查询的结果进行比较,子查询的结构也是两个列组成
查询和 jacky 在同一部门且性别相同的员工信息
select * from emp
where (sex,did) in
(select sex,did from emp
where ename='jacky');
用于标量子查询,例如查询员工信息,将m替换成“男”,f替换成“女”
select eid,ename,
case sex
when 'm' then '男'
when 'f' then '女'
else sex
end
from emp;
用于存在性测试,通常在子查询中,需要将子、父查询的表相连接作为查询条件
查询存在员工的部门
select d.* from dept d where exists
(select e.* from emp e where e.did=d.did);
查询不存在员工的部门
select d.* from dept d where not exists
(select e.* from emp e where e.did=d.did);
定义一个变量来表示一个语句,通过引用变量来引用子句,实现重用,提高效率
用于将数据表或用户导出,导出后可以将数据保存到磁盘文件中,以实现数据的备份。注意该命令是在控制台中运行,而非在sqlplus中运行。例如导出dept ,emp,history这三张表