雪月书韵茶香
专心做可以提升自己的事情
学习并拥有更好的技能
成为一个值得交往的人

| 函数 | 输入 | 输出 |
|---|---|---|
| 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这三张表


