一、操作符:

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数据库之操作符及函数的更多相关文章

  1. 编程开发之--Oracle数据库--存储过程和存储函数(2)

    上一小结我们简单介绍了存储过程和存储函数,对存储过程和存储函数有了一个基本的了解,接下来介绍在java程序中如何调用我们创建的存储过程和存储函数 1.在应用程序中调用我们的存储过程 创建一个简单的Ja ...

  2. 关于oracle数据库(10)函数

    分析函数,用于统计排名 语法:函数名() over(order by 排序字段 asc | desc) row_number() 无论值是否相等,生成连续的行号 -- 1,2,3,4, select ...

  3. 编程开发之--Oracle数据库--存储过程和存储函数(1)

    1.存储过程和存储函数 描述:指存储在数据库中供所有用户程序调用的子程序叫做存储过程.存储函数 区别:存储函数可以通过return子句返回一个函数的值 (1)存储过程 语法:create [or re ...

  4. 启用Linux云平台oracle数据库实口令复杂性函数:PASSWORD_VERIFY_FUNCTION=NULL

    第一步:采用putty.exe登录数据库服务器. 输入IP后点击“Open”按钮: 第二步:登录对应的数据库实例. 执行:# su – oracle 查找:$ps -ef | grep pmon 找到 ...

  5. Oracle数据库基础--存储过程和函数

    一.存储过程和函数 存储过程: 对一个模块的封装 函数: 功能与存储过程几乎一样 区别: 函数必须通过return 关键字返回一个值 存储过程: 不需要return返回值 参数: 输入型参数 输出型参 ...

  6. oracle数据库中的存储函数

    oracle中的存储函数,和系统内的函数类似,可以像调用系统函数一样调用存储函数.它与存储过程的唯一区别就是存储过程没有return返回值,存储函数可以与存储过程互换,存储函数可以在存储过程中调用. ...

  7. Oracle数据库,内置函数小结

    1.聚合函数 count(字段) // 求非空行的数量 max(字段) // 获取最大值 sum(字段) //求和 avg(字段) // 平均值 min(字段) // 最小值 2.转换函数 to_da ...

  8. Oracle数据库常用关键字以及函数

    常用关键字 insert into---插入数据 delete---删除数据 update---更新一条数据 select---实际工作中尽量不要写* set---设置某些属性 where---给执行 ...

  9. Oracle数据库---存储过程、存储函数

    --创建存储过程CREATE OR REPLACE PROCEDURE first_procISBEGIN DBMS_OUTPUT.PUT_LINE('我是过程'); DBMS_OUTPUT.PUT_ ...

随机推荐

  1. Research Guide: Pruning Techniques for Neural Networks

    Research Guide: Pruning Techniques for Neural Networks 2019-11-15 20:16:54 Original: https://heartbe ...

  2. javascript正则提取字母和数字小数

    var item = {name:"PM2.5"}; item.nameFirst = item.name.replace(/[^a-zA-Z]/g, ''); item.name ...

  3. kotlin基础 条件控制 when

    When 表达式 when 将它的参数和所有的分支条件顺序比较,直到某个分支满足条件. when 既可以被当做表达式使用也可以被当做语句使用.如果它被当做表达式,符合条件的分支的值就是整个表达式的值, ...

  4. 图片放大神器: waifu2x

    在线版可以在这个地址上使用:http://waifu2x.udp.jp/index.zh-CN.html , 但是在线版最大图片为5M,最大上传分辨率为1500*1500,且最大放大倍数为2倍,还是有 ...

  5. NodeJs FS 文件系统模块

    1. fs.stat 检测是文件还是目录 fs.stat('html',function(err,stats){ if(err){ console.log(err); return false; } ...

  6. vmare_mac 关闭完整性检查

    今天在vmware 15 安装mac10.13,安装之后不能全屏,查了很多资料最后完美解决 首先我们需要进入mac的恢复模式 等待出现苹果LOGO,直到进度条加载完毕 然后打开实用工具-终端 关闭SI ...

  7. 解决StrToDateTime()不是有效日期类型的问题

    方法一: function GetDateFormat():string; var SysFrset: TFormatSettings; begin Result:=''; GetLocaleForm ...

  8. c++ 二进制方式读取文件 读取特殊类型数据

    #include <iostream> #include <fstream> using namespace std; /* 二进制方式进行读写文件,可以读写 各种各样数据类型 ...

  9. cmake 指定gcc/g++版本

    export CC=/usr/local/bin/gcc export CXX=/usr/local/bin/g++ cmake /path/to/your/project make

  10. 工具分享:excel2json,将Excel表格转换为JSON

    此次分享的是github上的一个开源小工具:excel2json,用于把Excel表转换成json对象,并保存到一个文本文件. 项目地址:https://github.com/neil3d/excel ...