Oracle数据库之操作符及函数
一、操作符:
1、分类:
算术、比较、逻辑、集合、连接;
2、算术操作符:
执行数值计算;
-- 工资加1000
select empno,ename,job,sal+1000 from emp;
3、比较操作符:
-- 比较运算符(between and包头不包尾)
select * from emp where sal between 1000 and 2000;
(不等于是!= , 在mysql中是<> )
4、逻辑操作符:and or not
--查询奖金不为空的员工信息
select * from emp where comm is not null;
5、集合操作符:
将两个查询的结果组合成一个结果:
select sid from t_score where score>=70 and cid = ''
INTERSECT
select sid from t_score where score>=70 and cid = '';
①、intersect 返回两个查询的公共行;
②、union:返回两个查询的不重复的所有行;这里面可以是一个表中的数据(在mysql中是另外的联合查询--不是一个表)
③、minus:返回从第一个查询的结果中排除第二个查询中出现的行;(在第一个的结果中查找不满足第二个的)
6、连接操作符:
将多个字符串或数据值合并成一个字符串;
--连接操作符
select ('员工号为'||empno||',姓名为'||ename||'的工资为'||sal) from emp
7、优先级:
算术>连接>比较>not逻辑>and逻辑>or逻辑操作符
二、SQL函数:
用于执行特殊的操作的函数;
1、分类:
单行、 分组、分析;
2、单行函数分类:
从表中查询的每一行只返回一个值;
字符、数字、日期、转换、其他;
3、字符函数:

-- 字符串函数
select lower(ename),job from emp; --小写 select ltrim('xysdezadmas','xyz') from dual;--截取:从左边开始按后面字段开始截取,有几个截取几个,没有就不截取
①、其他字符函数:
chr:根据ASCII码返回对应的字符(0:48 a:97 A:65)
lpad和rpad: 填充;
trim:去除左右两边的空格符;
lenth:字符串长度;
decode:逐个值置换;
select sname,decode(cid,1,'开发部')as 部门 from java0322; select ename,decode(job,'CLERK','职员','SALESMAN','导购') as 工作 from emp
4、数字函数;

5、日期函数:
对日期值进行计算,并生成日期数据类型或数值类型的结果;
add_months 偏移;
months_between:月数差;
last_day 最后一天;
round:四舍五入;
trunc:只舍不入,返回指定日期模式截断后的第一天;
next_day(d,day):下周周几的日期
extract:计算年份差:
--日期函数
select add_months(sbirth,-3) from java0322;--月份偏移3月,可以是负数,也就是向前偏移 select extract(year from sysdate) from dual;--截取当前时间的年份 select sname,extract(year from sysdate) - extract(year from sbirth) from java0322;--计算年纪
6、转换函数:
to_char:按照指定的格式转化字符串;
to_date:将字符串转化为日期;
to_number:将数字字符串转化为数字;----可以实现直接在sql语句中进行格式的转换
--转换函数(字符串,格式)
Select TO_CHAR(0.123,'$0.9999') FROM DUAL;
--字符串转日期
select to_date ('2005-02-28','yyyy-mm-dd') from dual;
--字符串转数字
select to_number('') from dual;
其他函数:
nvl:isnull,不为空时为本身,为空时指定0;
nvl2:不为空时指定值2,为空时指定值3;
NullIF:相等时为空,否则为前者
--查询员工表的所有人的姓名,工资+奖金(奖金没有的时候,由null转为0)---nvl转换空值的函数
select ename,sal+nvl(comm,0)as sal from emp;--当空为0,不为空为comm select ename,sal+nvl2(comm,10000,0) from emp;---不为空时10000,为空时0; select nullif(100,200) from dual;--相等为空,不等为前者
7、分组函数:
基于一组行来返回结果;
avg、min、max、sum、count
8、分析函数:
根据一组行来计算聚合值;用于计算完成聚集的累计排名、移动平均数等;
row_number:返回连续的排位,不论值是否相等;
rank:具有相等值的行排位相同,序数随后跳跃;
dense_rank:具有相等值的行排位相同,序号是连续的
-- 排位
select empno,ename,job,sal,row_number()over (order by sal desc) as numm from emp; --返回连续的排位,不论值是否相等12345 select empno,ename,job,sal,rank()over (order by sal desc) as numm from emp; --相等值的行排位相同,序号随后跳跃;12245 select empno,ename,job,sal,dense_rank()over (order by sal desc) as numm from emp; --相等值的行排位相同,序号是连续的;12234
Oracle数据库之操作符及函数的更多相关文章
- 编程开发之--Oracle数据库--存储过程和存储函数(2)
上一小结我们简单介绍了存储过程和存储函数,对存储过程和存储函数有了一个基本的了解,接下来介绍在java程序中如何调用我们创建的存储过程和存储函数 1.在应用程序中调用我们的存储过程 创建一个简单的Ja ...
- 关于oracle数据库(10)函数
分析函数,用于统计排名 语法:函数名() over(order by 排序字段 asc | desc) row_number() 无论值是否相等,生成连续的行号 -- 1,2,3,4, select ...
- 编程开发之--Oracle数据库--存储过程和存储函数(1)
1.存储过程和存储函数 描述:指存储在数据库中供所有用户程序调用的子程序叫做存储过程.存储函数 区别:存储函数可以通过return子句返回一个函数的值 (1)存储过程 语法:create [or re ...
- 启用Linux云平台oracle数据库实口令复杂性函数:PASSWORD_VERIFY_FUNCTION=NULL
第一步:采用putty.exe登录数据库服务器. 输入IP后点击“Open”按钮: 第二步:登录对应的数据库实例. 执行:# su – oracle 查找:$ps -ef | grep pmon 找到 ...
- Oracle数据库基础--存储过程和函数
一.存储过程和函数 存储过程: 对一个模块的封装 函数: 功能与存储过程几乎一样 区别: 函数必须通过return 关键字返回一个值 存储过程: 不需要return返回值 参数: 输入型参数 输出型参 ...
- oracle数据库中的存储函数
oracle中的存储函数,和系统内的函数类似,可以像调用系统函数一样调用存储函数.它与存储过程的唯一区别就是存储过程没有return返回值,存储函数可以与存储过程互换,存储函数可以在存储过程中调用. ...
- Oracle数据库,内置函数小结
1.聚合函数 count(字段) // 求非空行的数量 max(字段) // 获取最大值 sum(字段) //求和 avg(字段) // 平均值 min(字段) // 最小值 2.转换函数 to_da ...
- Oracle数据库常用关键字以及函数
常用关键字 insert into---插入数据 delete---删除数据 update---更新一条数据 select---实际工作中尽量不要写* set---设置某些属性 where---给执行 ...
- Oracle数据库---存储过程、存储函数
--创建存储过程CREATE OR REPLACE PROCEDURE first_procISBEGIN DBMS_OUTPUT.PUT_LINE('我是过程'); DBMS_OUTPUT.PUT_ ...
随机推荐
- virtualenv, conda, pip分别是什么
自己一直使用virtualenv,但是发现很多工具或框架都是以来conda,于是就网上搜了下二者的区别,感觉这篇文章讲的比较清楚:https://blog.csdn.net/zhouchen1998/ ...
- jetty demo实例启动
Jetty是一个提供HHTP服务器.HTTP客户端和javax.servlet容器的开源项目.Jetty和tomcat相比,是轻量级服务器,支持热拔插,可扩展性大tomcat集成了很多功能,个性化瘦身 ...
- snf快速开发平台试用演示地址
BS演示地址: http://49.4.68.200:65432 administrator / Administrator snf-cs试用版本下载地址:https://pan.baid ...
- 【mybatis】子查询
networkResource的 resultMap <resultMap id="NetworkResultMap" type="com.chinamobile. ...
- 【iCore4 双核心板_FPGA】实验二十:NIOS II之UART串口通信实验
实验指导书及源代码下载地址: 链接:https://pan.baidu.com/s/1g_tWYYJxh4EgiGvlfkVu1Q 提取码:dwwa 复制这段内容后打开百度网盘手机App,操作更方便哦 ...
- Qt编写安防视频监控系统17-在线地图
一.前言 在线地图模块在一开始设计整个系统的时候就考虑进去了,主要功能就是在摄像机管理中,提供经纬度信息,然后加载百度地图在浏览器中显示,根据摄像机信息表中的每个摄像机的经纬度信息,自动生成设备点在地 ...
- 运行应用-使用Deployment运行无状态应用程序
以下介绍如何使用kubernetes的deployment对象运行应用程序. 目标 - 创建nginx deployment. - 使用kubectl列出有关部署的信息. - 更新部署 创建和探索ng ...
- cordova 的安桌动画
1.cordova 的安桌动画cordova plugin add cordova-plugin-lottie-splashscreenhttps://github.com/timbru31/cord ...
- 图像拼接(image stitching)
# OpenCV中stitching的使用 OpenCV提供了高级别的函数封装在Stitcher类中,使用很方便,不用考虑太多的细节. 低级别函数封装在detail命名空间中,展示了OpenCV算法实 ...
- Dev系列控件的AJAX使用Demo
一.Dev Data Edit控件通用属性以及方法: 属性 1.GetEnabled():返回控件是否为可操作状态 2.GetText():返回控件的Text的值 3.SetEnabled():设置控 ...