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_ ...
随机推荐
- 各种字符串Hash函数(转)
/// @brief BKDR Hash Function /// @detail 本 算法由于在Brian Kernighan与Dennis Ritchie的<The C Programmin ...
- File checksum
File checksum https://golang.org/pkg/io/#Copy https://blog.iphpo.com/blog/2017/03/golang-產生檔案的md5-ha ...
- Oracle 11g R2手动配置EM(转)
转自:http://blog.itpub.net/9034054/viewspace-1973418/ Oracle 11g R2手动配置EM Oracle 作者:luashin 时间:2016-01 ...
- MySQL使用存储过程实现判断表中字段或者索引是否存在,如果不存在则创建
使用存储过程可以保证数据库升级脚本可以重复执行而不会报错. CREATE TABLE `tb_user` ( `id` ) NOT NULL COMMENT '非自增id', `account` ) ...
- UltraEdit 替换符
1.在每行的最后一行添加字符串: 打开替换,在查找中输入 ^r 在替换栏中输入要替换的字符 再把下边的正则表达式勾选,然后开始或是全部替换就可以了 2.替换回车换行 在查找中输入 要替换的字符 ...
- xpath库学习
xpath解析是我们在爬虫中最常用也是最通用的一种数据解析方式. 环境安装 pip install lxml 解析原理 使用通用爬虫爬取网页数据 实例化etree对象,且将页面数据加载到该对象中 使用 ...
- pdf转换成jpg不清晰怎么办
用Photoshop打开pdf文件,然后用“文件”-“另存为”“JPG”.
- Eclipse使用Working Set
当Eclipse中创建了太多的project,太多了,看的眼花缭乱,不好管理,也不想更换工作空间,Eclipse中 Java Working Set 工作集,可以将这些project分组,就像文件夹分 ...
- UE4 Cel Shading(卡通渲染)
转自:https://dawnarc.com/2018/01/ue4cel-shading%E5%8D%A1%E9%80%9A%E6%B8%B2%E6%9F%93/ Cel Shading Post ...
- asp.net core使用水晶报表问题
背景 最近项目上遇到一个需求,要后台通过定时任务把水晶报表生成pdf文件,然后邮件发送给相关人. 技术实现思路 选用ASP.NET Core框架(基于2.2版本),通过IHostedS ...