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_ ...
随机推荐
- SpringBoot——Profile多环境支持
1.多profile文件形式 主配置文件编写时, 文件名可以是application-{profile}.properties/yml 默认使用的application.properties的配置. ...
- HIVE出现Read past end of RLE integer from compressed stream Stream for column 1 kind LENGTH position: 359 length: 359 range: 0错误
错误日志 Diagnostic Messages for this Task: Error: java.io.IOException: java.io.IOException: java.io.EOF ...
- win10下通过编译源码方式在chrome中成功安装react-devtools开发工具插件
win10下通过编译源码方式在chrome中成功安装react-devtools开发工具插件 1.去git上下载react-devtools文件到本地,https://github.com/fac ...
- 【GMT43智能液晶模块】例程十六:LAN_TCPS实验——以太网数据传输
源代码下载链接: 链接:https://pan.baidu.com/s/1e5Qp-xASjlA0pje3S7TdIg提取码:9v37 复制这段内容后打开百度网盘手机App,操作更方便哦 GMT43购 ...
- python之terminaltables
from terminaltables import AsciiTable, DoubleTable, SingleTable from colorclass import Color, Window ...
- python 使用 elasticsearch 常用方法(索引)
#记录管理索引等方法 from elasticsearch import Elasticsearch es = Elasticsearch(['xx.xx.xx.xx:9200']) #获取文档内容r ...
- 解决在MAC上输入法切换慢的问题
Mac Book Pro升级到Catalina 10.15.1 之后,不论是系统自带的中文输入法,还是安转的第三方中文输入法,当使用快捷键"Ctrl + Space"进行中英文输入 ...
- K3Wise插件开发实战教程(全套)持续更新中。。。
这是林枫山自己编写制作的全套K3wise插件教程,欢迎下载学习. 下载目录链接如下(如果链接下载不了,请加QQ:714259796获取教程): 进度01-K3Wise数据表详解 下载学习文档 ...
- Kubernetes 及安装注意事项
Docker Desktop for Mac/Windows开启Kubernetes 及安装注意事项 Table of Contents 1 解决方案 2 注意事项 2.1 Choose Kubeco ...
- 在 Java 中不使用多余变量交换两个字符串
在 Java 中不使用多余变量交换两个字符串 public class Test { public static void main(String[] args) { String a = " ...