oracle函数及相关问题
show user 查看当前用户
select * from tab; 查看当前数据库中的表
desc 表名 ; 查看表结构
between and 包含开头结尾
函数:
months_between(a,b) 两时间间隔月数 a大时间 b小时间
add_months(a,b) 添加月数,a时间 b月数数字
next_day(a,'星期一') 查看下一个星期一的时间 a 时间
last_day(a) 当前月份最后一天
to_char(sysdate,'YYYY-MM-DD') -- 2022-03-03
to_char(sysdate,'fmYYYY-MM-DD') -- 2022-3-3
to_char(11111,'99,999') -- 数字格式化成 111,111 9代表一位数字
to_number("10") 数值类型字符串 转数字
to_date(a,b) 时间字符串转时间
nvl(a,b) 空值处理 若a为空将替换成b
nvl2(a,b,c) 若a非空,返回b,否则返回c
decode(a,b,c,……,d) 相当与 if /else if /else, a为字段,bc成对 若a=b就返回c,所有成对的都不满足返回d
case when boolean then value1 when boolean then value2 else value3 end
min(a) a的最小值
max(a) a的最大值
avg(a) a的平均值
sum(a) a的求和
ceil(a) 大于或等于a的最小整数
floor(a) 小于或等于a的最大整数
mod(a,b) a除以b的余数
round(a,b) 四舍五入,a:值 b:需要保留的小数
trunc(a,b) 取整,a值 b需要保留的小数位,不进行四舍五入
lpad(a,b,c) 左补全 a为字段值,b为需要返回的字段长度,若b的值小于a的长度,返回值是a左侧截取b的长度,c是需要在左侧补全的字符,可缺省
rpad(a,b,c) 右补全, a为字段值,b为需要返回的字段长度,若b的值小于a的长度,返回值是a左侧截取b的长度,c是需要在右侧补全的字符,可缺省
length(a) a的长度
lower(a) 将a转成小写
upper(a) 将a转成大写
ltrim(a,b) 将a左侧的b截去,b缺省空格
rtrim(a,b) 将a右侧的b截去,b缺省空格
trim(a from b ) 将a左右两侧的b截去,b缺省空格
replace(a,b,c) 将a中的b替换成c
substr(a,b,c) 截取, a值 ,b开始位置,索引从1开始,0不截取,c需要截取的长度
select * from table1,table2 笛卡尔积
oracle查询语句执行顺序:
1.FROM 2. ON 3.JOIN 4.WHERE 5.GROUP BY 6.WITH CUBE or WITH ROLLUP 7.HAVING 8.SELECT 9.DISTINCT 10.ORDER BY 11.TOP
1、FROM 子句:执行顺序为从后往前、从右到左。数据量较少的表尽量放在后面。
2、WHERE子句:执行顺序为自下而上、从右到左。将能过滤掉最大数量记录的条件写在WHERE 子句的最右。
3、GROUP BY:执行顺序从左往右分组,最好在GROUP BY前使用WHERE将不需要的记录在GROUP BY之前过滤掉。
4、HAVING 子句:消耗资源。尽量避免使用,HAVING 会在检索出所有记录之后才对结果集进行过滤,需要排序等操作。
5、SELECT子句:少用*号,尽量取字段名称。ORACLE 在解析的过程中, 通过查询数据字典将*号依次转换成所有的列名, 消耗时间。
6、ORDER BY子句:执行顺序为从左到右排序,消耗资源。
inner join
left join
right join
full join 并集
Oracle 有事务回滚的 对增删改 需执行commit才会真正提交,rollback可以回滚commit之前的增删改
update 可以起到锁的作用,两条相同的update语句,只有前一条commit或rollback ,下一条才会执行
select * from table for update ,对同一表查询,只有commit或rollback ,下一条查询语句才会执行
最新文章
- CSS style和HTML style有什么区别?
- 使用JAVA编写电话薄程序,具备添加,查找,删除等功能
- 小白学习MVC5+EF6遇到的问题一
- IOS开发基础知识--碎片31
- 20款免费的 PSD 网站模板【免费下载】
- iOS 中实现功能引导页面
- laravel框架总结(三) -- 路径分析
- Matlab工具箱安装体会
- exit与return区别
- 一个简单的RTTI实现
- FilenameUtils工具类
- 仿网易邮箱5.0(四):信息提示插件(tips.js)
- SLA服务可用性怎么达到?
- jieba(杰巴)分词的三种模式
- laravel 自动加载 自定义的文件/辅助函数
- Java多线程消费者、生产者的基本思路
- linux的基本操作(磁盘管理)
- [js]js中变量带var和不带var的区别
- CopyOnWriteArrayList&;Collections.synchronizedList()
- Jumpserver堡垒机
热门文章
- Python系统模块os.py和sys.py常用函数
- 技术前沿:ISP芯片终极进化——VP芯片(AI视觉处理器)
- 地址重写了,只是ip 没转发,应该是9999那个才对,rewrite /sbgl/(.*) http://127.0.0.1:9999/$1 permanent;,这样,
- 操作系统实战45讲笔记- 05 CPU工作模式:程序执行的三种模式
- Android MD5加密、RSA加密
- RepVGG:一个结构重参数化网络
- equals的用法的注意事项
- Devexpress WPF ChartControl 多Y轴
- [ARC140D] One to One
- docker介绍、安装及镜像管理