一、字符函数

(1)连接符 concat

--连接符
select concat('10086','-')||'1531234567' 电话号  from dual;

(2)首字母大写 initcap

--首字母大写
select initcap('wangxiaoming') from dual;

(3)查找字符串 str

str1 被查找的字符串

str2 查找字符串

str3 从哪个位置查

str4 第几次出现

--查找字符串
select instr('410727201812131111','2018',2,1) from dual;

注:2的意思为从前面一串字符中第二位开始查找,不会影响初始查找得出的值。1的意思为从第几为出现(不重要)

(4)大小写转换 upper lower

--大小转换
select upper(列名) 大写,lower(列名) 小写 from 表名;

(5)字符串补充(粘贴)函数 lpad rpad
-- str1需补充字符串
-- str2补充至多少位
-- str3补充字符
select lpad('str1',str2,'str3') from dual;--向左补充
select rpad('str1',str2,'str3') from dual;--向右补充

注:不是补充str2个字符,是将str2个字符补全,如果str1的字符>str2,则不补充。

例子:

--左补充
select lpad('left',8,'*') from dual;
--右补充
select rpad('right',8,'*') from dual;

(6)删除字符 trim
-- str1 需删除字符串
-- str2 删除字符
select ltrim('str1','str2') from dual;  --注意符号的缺失

例子:

--删除左边字符
select ltrim('***1***left','*') from dual;
--删除右边字符
select rtrim('right***1***','*') from dual;

(7)子字符函数 substr(含义:截取字符串中某一字符)
-- str1 需截取字符串
-- str2截取开始位置
-- str3截取多少位

select substr('str1',str2,str3) from dual;

注:(左闭区间,截取位置包含str2)

例子:

--截取字符
select substr('1531234567',1,3) from dual;

根据截取字符得出一个小案例如下:

--购物支付手机号保密
select rpad(substr('1531234567',1,3),8,'*') from dual;
--结果:153*****

(8)替换函数
--str1 需替换字符串
--str2需替换字符
--str3替换字符

select replace('str1','str2','str3') from dual;

例子:

--将呵呵替换为**
select replace('呵呵','呵','*') from dual;

二、数学函数

(1)向上取整 ceil

例子:

--返回大于等于给出数字的最小整数
select ceil(3.14) from dual;
--不进行四舍五入,结果为4

(2)向下取整 floor

例子:

-- 取消小数,结果为3
select floor(3.14) from dual;

(3)精确地四舍五入 round

--  str1   -1      0        +1
--         负数   整数    正数

注:可取负数,整数,小数

例子:

--结果3.1410
select round(3.1415926,4)from dual;
--结果31410
select round(31415.926,-1)from dual;

(4)按照指定精度截取一个数 trunc

例子:

--正数截取
select trunc (3.1415926,4)from dual;
--负数截取
select trunc (31415.926,-4)from dual;

(5)返回数字的根 sqrt

例子:

select sqrt(25)from dual;

 三、日期函数

(1)返回当前系统的时间 sysdate

select sysdate from dual;

(2)to_char 将日期类型的值转换为char类型的值

--将系统时间转为字符类型
select sysdate,to_char(sysdate,'dd-mm-yyyy day')from dual;

(3)trunc 截断时间

--只显示系统时间的年份
select sysdate,trunc(sysdate,'yyyy') from dual;
--只显示系统时间的月份
select sysdate,trunc(sysdate,'mm') from dual;

(4)增加或减少月份

select sysdate,add_months(sysdate,3) from dual;
--计算两个时间之间相差的时间
select sysdate,months_between(sysdate,to_date('2017-3-9','yyyy-mm-dd')) from dual;

四、其他函数


(1)nvl(expr1,expr2):如果expr1为null,返回expr2;不为null,返回expr1;注意expr1和expr2的类型要一致。

select nvl(expr1,expr2) from 表名;

(2)nvl2(expr1,expr2,expr3):expr1不为null,返回expr2;为null,返回expr3;expr2和expr3的类型不同的话,expr3会转换为expr2的类型。

select nvl2(expr1,expr2,expr1) from 表名;

五、聚合函数(avg、max、min、count、sum)

--统计符合条件的数目
select count(*) from 表名;
--求和
select sum(sal) from emp;
--求平均数
--distinct 表示将重复的值删除
--all 计算所有的值,重复也不删除
--以上不写默认all
select avg(sal) from emp;

oracle数据库和表的操作的更多相关文章

  1. WPF根据Oracle数据库的表,生成CS文件小工具

    开发小工具的原因: 1.我们公司的开发是客户端用C#,服务端用Java,前后台在通讯交互的时候,会用到Oracle数据库的字段,因为服务器端有公司总经理开发的一个根据Oracle数据库的表生成的cla ...

  2. 定时从远程的数据库中取数据,然后把取出来的数据插入或更新本地的oracle数据库的表

    最近项目中有一种需求: 大致需求是这样的 通过给定的 用户名和密码 要定时从远程的数据库中取数据,然后把取出来的数据插入或更新本地的oracle数据库的表 项目的结构式struts1 hibernat ...

  3. Oracle 数据库整理表碎片

    Oracle 数据库整理表碎片 转载:http://kyle.xlau.org/posts/table-fragmentation.html 表碎片的来源 当针对一个表的删除操作很多时,表会产生大量碎 ...

  4. Oracle 删除用户和表空间////Oracle创建删除用户、角色、表空间、导入导出、...命令总结/////Oracle数据库创建表空间及为用户指定表空间

    Oracle 使用时间长了, 新增了许多user 和tablespace. 需要清理一下 对于单个user和tablespace 来说, 可以使用如下命令来完成. 步骤一:  删除user drop ...

  5. SpringBoot程序启动时在Oracle数据库中建表充值

    例子工程下载链接:https://files.cnblogs.com/files/xiandedanteng/gatling20200428-1.zip 需求:在工程启动时在Oracle数据库中建表. ...

  6. PowerDesigner连接Oracle数据库建表序列号实现自动增长

    原文:PowerDesigner连接Oracle数据库建表序列号实现自动增长 创建表就不说了.下面开始介绍设置自动增长列. 1 在表视图的列上创建.双击表视图,打开table properties — ...

  7. Oracle数据库创建表是有两个约束带有默认索引

    Oracle数据库创建表是有两个约束带有默认索引.1.主键primary Key:唯一索引.非空2.唯一Unique:唯一索引,可以是空值如果没有设定主键和唯一约束,表中不会有默认索引的. 建立主键/ ...

  8. 链接oracle数据库 生成表对应的javabean

    package com.databi.utils; import java.io.File; import java.io.FileOutputStream; import java.io.IOExc ...

  9. ORACLE 数据库及表信息

    查看ORACLE 数据库及表信息   -- 查看ORACLE 数据库中本用户下的所有表 SELECT table_name FROM user_tables; -- 查看ORACLE 数据库中所有用户 ...

随机推荐

  1. Visual Studio Code 调整字体大小

    { "editor.fontSize": 14, "window.zoomLevel": 1, } // 将设置放入此文件中以覆盖默认设置 { , , #代码字 ...

  2. 揽货最短路径解决方案算法 - C# 蚁群优化算法实现

    需求为(自己编的,非实际项目): 某配送中心进行揽货,目标客户数为50个客户,配送中心目前的运力资源如下: 现有车辆5台 单台运力最大行驶距离200千米 单台运力最大载重公斤1吨 问:运力怎样走法才能 ...

  3. 二、Item Pipeline和Spider-----基于scrapy取校花网的信息

    Item Pipeline 当Item在Spider中被收集之后,它将会被传递到Item Pipeline,这些Item Pipeline组件按定义的顺序处理Item. 每个Item Pipeline ...

  4. Oracle创建表时Storage参数具体含义

    本文通过图表和实例的阐述在Oracle数据库创建新表时Storage的参数具体含义. 可用于:表空间.回滚段.表.索引.分区.快照.快照日志 参数名称 缺省值 最小值 最大值 说明 INITIAL 5 ...

  5. vim操作备忘录

    vim操作备忘录 vim 备忘录 vim的书籍虽然看不不少,可是老是容易忘记,主要是自己操作总结过少,这个博客就主要用来记录一些比较常见的术语和操作,以防止自己再次忘记. <leader> ...

  6. bzoj 2669 [cqoi2012]局部极小值 DP+容斥

    2669: [cqoi2012]局部极小值 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 838  Solved: 444[Submit][Status ...

  7. nyoj720 项目安排 二分+dp

    思路:dp(i)表示前i个项目的最大收益,转移方程很好写dp(i) = max{ dp(k) + val(i) },val(i)表示第i个项目的价值,dp(k)表示前k个的最佳收益,k满足ed(k) ...

  8. uva10003 区间DP

    很清晰的区间dp问题.d(i,j)表示断点i到断点j的最小费用,由于开头和结尾也是断点,所以应该加入断点数组,即 cut[0]=0; cut[n+1]=len; 边界就是d(i,i+1)=0; 转移方 ...

  9. Raft论文学习笔记

    先附上论文链接  https://pdos.csail.mit.edu/6.824/papers/raft-extended.pdf 最近在自学MIT的6.824分布式课程,找到两个比较好的githu ...

  10. web工程导入新环境的注意事项

    问题一:The type java.lang.Object cannot be resolved. 解决办法: 当你在Eclipse引用不同版本JDK工程时会发生该问题.由于你开发环境中应用了多个版本 ...