Oracle学习笔记 常用SQL语句整理

介绍:selectempno,NVL(comm,0),(sal NVL(comm,0))*12fromemp将所有的职位信息替换成中文显示selectename,decode(job,CLERK,办事员,SALESMAN,销售,MANAGER,经理,ANALYST,分析人员,PRESIDENT,总裁)fromemp总结以上是为你收集整理的Oracle学习笔记(二)全部内容,希望文章能够帮你解决Oracle学习笔记(二)所遇到的程序开发问题,单行函数字符串函数将所有的姓名转换成小写selectLOWER(ename)fromemp将所有的雇员姓名以首字母大写的形式保存selectename,INITCAP(ename)fromemp查询雇员姓名长度为5的全部雇员信息select*fromempwhereLENGTH(ename)=5查询雇员姓名长度为5的全部雇员信息select*fromempwhereLENGTH(ename)=5在JAVA程序中,字符串首字母的索引是0,但是在ORACLE里面,所有的字符串的首字母的索引都是1。ORACLE提供了自动转换机制,selectTO_NUMBER(1) TO_NUMBER(2)fromdual通用函数函数名称描述NVL()如果传入的内容是null,则使用默认数值处理,如果不是空则使用原始数值处理DECODE()设置的内容会与每一个比较内容进行比较,如果内容相同,则会使用显示内容进行输出,如果都不相同,则使用最后的默认内容输出处理null函数查询每个雇员的编号、姓名、基本工资、佣金、年薪selectempno,sal,comm,(sal comm)*12fromemp由于很多人的comm为null所以得到的年薪也是null。

介绍:selectempno,NVL(comm,0),(sal NVL(comm,0))*12fromemp将所有的职位信息替换成中文显示selectename,decode(job,CLERK,办事员,SALESMAN,销售,MANAGER,经理,ANALYST,分析人员,PRESIDENT,总裁)fromemp总结以上是为你收集整理的Oracle学习笔记(二)全部内容,希望文章能够帮你解决Oracle学习笔记(二)所遇到的程序开发问题,单行函数字符串函数将所有的姓名转换成小写selectLOWER(ename)fromemp将所有的雇员姓名以首字母大写的形式保存selectename,INITCAP(ename)fromemp查询雇员姓名长度为5的全部雇员信息select*fromempwhereLENGTH(ename)=5查询雇员姓名长度为5的全部雇员信息select*fromempwhereLENGTH(ename)=5在JAVA程序中,字符串首字母的索引是0,但是在ORACLE里面,所有的字符串的首字母的索引都是1。ORACLE提供了自动转换机制,selectTO_NUMBER(1) TO_NUMBER(2)fromdual通用函数函数名称描述NVL()如果传入的内容是null,则使用默认数值处理,如果不是空则使用原始数值处理DECODE()设置的内容会与每一个比较内容进行比较,如果内容相同,则会使用显示内容进行输出,如果都不相同,则使用最后的默认内容输出处理null函数查询每个雇员的编号、姓名、基本工资、佣金、年薪selectempno,sal,comm,(sal comm)*12fromemp由于很多人的comm为null所以得到的年薪也是null。

Oracle学习笔记 常用SQL语句整理

单行函数

字符串函数

将所有的姓名转换成小写

select LOWER(ename) from emp

将所有的雇员姓名以首字母大写的形式保存

select ename,INITCAP(ename) from emp

查询雇员姓名长度为5的全部雇员信息

select * from emp where LENGTH(ename)=5

查询雇员姓名长度为5的全部雇员信息

select * from emp where LENGTH(ename)=5

在JAVA程序中,字符串首字母的索引是0,但是在ORACLE里面,所有的字符串的首字母的索引都是1。如果设置了0,也是按照1的方式来处理。
要求截取每个雇员姓名的三个字母

select ename,SUBSTR(ename,1,3) from emp

要求截取每个雇员姓名的后三个字母

select ename,LENGTH(ename)-3 1) from emp
select ename,-3) from emp

数值函数

ROUND()函数,四舍五入

select ROUND(789.567) from dual  //790
select ROUND(789.567,2) from dual  //789.57
select ROUND(789.567,-2) from dual  //800

TRUNC()函数,不会进位

select TRUNC(789.567),TRUNC(789.567,2),-2) from dual//789,789.56,700

求模函数

select MOD(10,3) from dual//1

日期函数

SYSDATE SYSTIMESTAMP两个伪列。
日期 数字:若干天后的日期
日期-数字:若干天前的日期
日期-日期:天数
查询每个雇员的编号、姓名、职位、已经被雇佣的天数

select empno,ename,job,SYSDATE-hiredate from emp

如果直接使用天数来实现年或月的计算,是不准确的。ORACLE提供了四个日期处理函数

在当前日期下增加指定月份(4个月)

select ADD_MONTHS(SYSDATE,4) from dual

计算每个雇员已经被雇佣的月数

select empno,hiredate,MONTHS_BETWEEN(SYSDATE,hiredate) from emp

在当前时间所在月份的最后一天

select LAST_DAY(SYSDATE) from dual

要求查询出所有在雇佣所在月倒数第三天雇佣的雇员信息

select * from emp where hiredate=LAST_DAY(hiredate)-2

查询出下一个星期三

select next_day(SYSDATE,星期三) from dual

以年、月、日的方式计算出每个雇员到现在为止雇佣年限。

select empno,TRUNC(MONTHS_BETWEEN(SYSDATE,hiredate)/12) year,TRUNC(MOD(MONTHS_BETWEEN(SYSDATE,hiredate),12)) month,TRUNC(SYSDATE-ADD_MONTHS(hiredate,hiredate))) day from emp

转换函数

函数名称 描述
TO_CHAR() 将日期或数字格式化为指定结构的字符串
TO_DATE() 按照指定的转换格式编写字符串后将其变为日期型数据
TO_NUMBER() 将字符串变为数字

TO_CHAR的转换格式:
– 日期:年(yyyy)、月(mm)、日(dd)
– 时间:时(hh、hh24)、分(mi)、秒(ss)
– 数字:任意数字(9)、本地货币符号(L)

将日期显示格式化

select to_char(SYSDATE,yyyy-mm-dd hh24:mi:ss) from dual

实现日期数据的拆分

select to_char(SYSDATE,yyyy),to_char(SYSDATE,mm),dd) from dual

要求查询出2月份雇佣的雇员

select * from emp where to_char(hiredate,mm)=02
select * from emp where to_char(hiredate,mm)=2
//ORACLE之中提供自动转型

拆分数字

select TO_CHAR(894651651,L999,999,999) from dual

将字符串变为日期

select TO_DATE(1993-03-23,yyyy-mm-dd) from dual

将字符串变为数字,没有用。ORACLE提供了自动转换机制。

select TO_NUMBER(1)   TO_NUMBER(2) from dual

通用函数

函数名称 描述
NVL() 如果传入的内容是null,则使用默认数值处理,如果不是空则使用原始数值处理
DECODE() 设置的内容会与每一个比较内容进行比较,如果内容相同,则会使用显示内容进行输出,如果都不相同,则使用最后的默认内容输出

处理null函数
查询每个雇员的编号、姓名、基本工资、佣金、年薪

select empno,sal,comm,(sal comm)*12 from emp

由于很多人的comm为null所以得到的年薪也是null。所以为了保证计算的准确性,需要将null替换成0。

select empno,NVL(comm,0),(sal NVL(comm,0))*12 from emp

将所有的职位信息替换成中文显示

select ename,decode(job,CLERK,办事员,SALESMAN,销售,MANAGER,经理,ANALYST,分析人员,PRESIDENT,总裁) from emp

总结

以上是为你收集整理的Oracle学习笔记(二)全部内容,希望文章能够帮你解决Oracle学习笔记(二)所遇到的程序开发问题。

0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论