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_ ...
随机推荐
- Spring Boot Controller单元测试
一.创建Controller 一个方法是用传统IO来下载文件,一个是NIO下载文件 @Controller public class FileController { private Logger l ...
- 【转】MySQL的安装与配置——详细教程-window系统下
https://www.cnblogs.com/winton-nfs/p/11524007.html 免安装版的Mysql MySQL关是一种关系数据库管理系统,所使用的 SQL 语言是用于访问数据库 ...
- Debian 9安装java与设置环境变量
安装默认JRE / JDK 先更新软件包索引: apt update 检查是否已安装Java: java -version 如果当前未安装Java,您将看到以下输出: Output-bash: jav ...
- js中[object Object]与object.prototype.toString.call()
最近在用node读取文件中的json数据后,用JSON.parse()转成了json,然后响应数据传给前端,发现输出值object对象时显示[object object],在这里我们来看一下他的具体意 ...
- 部署一个fc网站需要注意的地方
1. php环境 必须5.3 2. yum install nodejs 3. yum install v8-devel 3. 下载v8js php扩展, 版本是 v8js-0.1.3 tar -zx ...
- SDN实验---Ryu的应用开发(三)流量监控
一:实现流量监控 (一)流量监控原理 其中控制器向交换机周期下发获取统计消息,请求交换机消息------是主动下发过程 流速公式:是(t1时刻的流量-t0时刻的流量)/(t1-t0) 剩余带宽公式:链 ...
- 伪造他人账号信息提交数据问题(一般接口都会去校验身份和身份id是否一致)
某APP客户端可以劫持任意账号 双师: 上课的学生上报学生上课状态,请求中带学生自己的id,当切换成其他学生的id ,接口报错,应该会校验token 和 提交的学生id 是否一致
- bash命令检测Shell脚本中的语法错误和查看详细执行过程
(1).bash命令检测Shell脚本中的语法错误 bash -v [脚本] [root@youxi1 ~]# vim a.sh #/bin/bash sum=$[$1+$2] echoo $sum ...
- WEBSHELL-恶意代码检测
静态查杀 提取特征写成规则库,调用规则库查杀.基于规则,会比较快,但漏报.误报会比较明显,一般的Webshell一句话木马变形混淆会比较多. yara规则 $eval = /(<\?php|[; ...
- Windows 10 多用户同时远程登录
win服务器版默认是支持多用户登陆的,甚至可以在主机上用不同用户自己远程登陆自己,如window server 2016. Win10 正常情况下是不允许用户同时远程的,即一个用户远程进来会把另一个用 ...