1、单行函数
1.1、单行函数和组函数的概念
单行函数:针对sql语句影响的数据,每一行都作处理,每一行产生一个结果
select upper(first_name) from s_emp;
组函数:针对sql语句影响的数据,分组进行处理,每组进行处理,每组产生一个结果
select count(first_name) from s_emp;
1.2、测试表:dual
desc dual
select count(*) from dual;
1.3、字符串函数
upper(s):返回s的全大写形式
lower(s):返回s的全小写形式
initcap(s):返回s的每个单词首字母大写,其余小些的形式
select upper('hello') from dual;
concat(x,y):字符串连接 ||
substr(s,start[,length]):从字符串s的satrt开始,向右截取length个字符
s:源字符串
start:开始截取的位置,从1开始
start > 0 表示从字符串的左边开始数
start < 0 表示从字符串的右边开始数
start = 0 按照1来处理。
length:截取的字符串的长度
缺省时表示截取到字符串的结尾
length(s):获取s字符串的长度
--截取s_emp表中first_name的后三位
select substr(first_name,-3) from s_emp;
select substr(first_name,length(first_name)-2) from s_emp;
1.4、数字函数
round(x[,y]):四舍五入
y:
缺省时,默认y=0;例如:round(3.56) = 4;
y为正整数,四舍五入到小数点后y位;例如:round(3.567,2) = 3.57;
y为副整数,四舍五入到小数点前|y|位;例如:round(356.7,-2) = 400;
trunc(x[,y]):截取
y:
缺省时,默认y=0;例如:round(3.56) = 3;
y为正整数,截取到小数点后y位;例如:round(3.567,2) = 3.56;
y为副整数,截取到小数点前|y|位;例如:round(356.7,-2) = 300;
ceil(x):向上取整
floor(x):向下取整
1.5、日期类型和常用的日期函数
1.5.1、日期类型
日期类型:date
默认格式:dd-MON-yy
date类型的各部分的表示方式:
cc 世纪信息
yy 2位数字的年 18
yyyy 4位数字的年 2018
year 英文年份的全拼 twenty eighteen
mm 2位数字的月 07
mon(Mon) 月份单词的前三个字母 jul(JUL)
month(Mon) 月份单词的全拼 july(JULY)
dd 2位数字的日 05
dy 星期几单词的前三个字母 thu
day 星期几单词的全拼 thursday
hh 12小时制 11
hh24 24小时制 23
mi 2位数字的分钟 19
ss 2位数字的秒 09
当前系统时间:sysdate
select sysdate from dual;
1.5.2、日期的算术运算
--日期 + 数字
select sysdate + 90 from dual;
--日期 - 数字
select sysdate - 128 from dual;
--日期1 - 日期2
select sysdate - to_date('01-JAN-00') from dual;
注释:上述计算都是以 天 为单位,如果需要计算小时,分钟则需要 /24/60
select to_char(sysdate - 1/24,'yyyy-mm-dd hh24:mi:ss') from dual;
1.5.3、常用的函数
add_months(date1,n):在日期date1加上n个月
months_between(date1,date2):date1和date2相差的月数
next_day(date1,dy):日期date1的下一个dy(星期几)
select next_day(sysdate,'FRIDAY') from dual;
//第二个参数,可以使用数字1-7,1表示星期天,7表示星期六
select next_day(sysdate,6) from dual;
last_day(date1):日期date1所在月份的最后一天
select last_day('05-FEB-18') from dual;
1.6、类型转换函数
1.6.1、to_char({date1|n},[,fmt])
1)日期-->字符串
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
2)数字-->字符串
fmt以fm开头
格式的构成:
9 小数点前代表0-9,小数点后代表1-9
0 小数点前代表前导0,小数点后代表0-9
. 小数点
$ 美元符号
L 本地货币符号
, 分隔符
select to_char(1234.56,'fm099,999.00') from dual;
select to_char(salary,'fm$099,999.00') from s_emp;
select to_char(salary,'fm$099,999.99') from s_emp;
1.6.2、to_date(s[,fmt])
字符串--->日期
insert into
1.6.3、to_number(s[,fmt])
字符串-->数字
--隐式转换
select id,first_name,salary from s_emp where id='1';
--显示转换
select to_number('$001,123.56','fm$099,999.00') from dual;
1.7、函数的嵌套
一个函数的返回值,作为另一个函数的参数
--查询员工的id,first_name,manager_id,如果manager_id为NULL,显示成BOSS
select id,first_name,nvl(to_char(manager_id),'BOSS') from s_emp;
2、表连接
2.1、查询员工的编号、名字和所在部门的名称
2.1.1、查询员工的编号、名字和所在部门的编号
select id,first_name,dept_id from s_emp;
2.1.2、查询的字段来自于多张表
id,first_name:s_emp
name:s_dept
select s_emp.id,s_emp.first_name,s_dept.name
from s_emp,s_dept
where s_emp.dept_id=s_dept.id;
语法:
select 字段列表
from 表名
where 限制条件
2.2、笛卡尔积
如果数据来自于两张表,没有任何限制(关联条件)则返回两表的笛卡尔积。
select s_emp.id,s_emp.first_name,s_dept.name from s_emp,s_dept;
2.3、表的别名
语法:表名 别名
select e.id,e.first_name,d.name
from s_emp e,s_dept d
where e.dept_id=d.id;
--错误:表一旦命名别名,在当前语句中只能使用别名,不能使用原名
select e.id,s_emp.first_name,d.name
from s_emp e,s_dept d
where e.dept_id=d.id;
--在表连接中,如果字段名在关联的多张表中没有重名则可以省略字段名前的表名或别名(效率低)
select e.id,first_name,name
from s_emp e,s_dept d
where dept_id=d.id;
2.4、表连接
等值连接 非等值连接 自连接
内连接:
外连接:
2.5、内连接
符合关联条件的数据被选中,不符合的被过滤掉的
2.5.1、等值连接
关联条件使用=号的
--列出部门及其所在地区,显示部门编号、部门名称、和地区名称
select d.id,d.name,r.name
from s_dept d,s_region r
where d.region_id=r.id;
2.5.2、非等值连接
关联条件不使用=的
--创建表
create table salgrade(
grade number(3) primary key,
losal number(11,2)
hisal number(11,2)
);
--插入测试数据
insert into salgrade values(1,700,1200);
...
--需求:列出员工及其
select e.id,e.first_name,e.salary,s.grade from s_emp e,salgrade s where e.salary between s.losal and s.hisal;
2.5.3、自连接
逻辑上,把一张表当成两张表使用,采用表连接的语法执行的查询操作.
--列出员工表中的所有领导信息
列出员工表中的id,first_name,manager_id
select id,first_name,manager_id from s_emp;
列出员工表中,员工的信息,和员工领导的信息
select distinct e.id,e.first_name from s_emp m,s_emp e where m.manager_id=e.id order by e.id;
2.6、外连接
外连接的结果集=内连接的结果集+匹配不上的数据行
外链接的语法:(+) --oracle
表1.字段(+) 运算符 表2.字段
内连接的结果集+表2中匹配不上的数据行
表1.字段 运算符 表2.字段(+)
内连接的结果集+表1中匹配不上的数据行
2.6.1、自连接
--列出普通员工的信息
select e.id,e.first_name from s_emp m,s_emp e where m.manager_id(+)=e.id and e.id is null;
set linesize 200
set pagesize 40
相关推荐
树莓派上基于ONNXRuntime与Qt的C++模型部署实战指南
本文详细介绍了在树莓派上使用ONNXRuntime与Qt进行C++模型部署的完整流程。从环境配置、依赖安装到交叉编译优化,再到Qt界面集成与ARM架构性能调优,提供了实战指南和常见问题解决方案,帮助开发者高效完成边缘设备上的AI应用部署。
oracle学习笔记(三)oracle函数
1 --oracle 函数 2 --lower(char):将字符串转换为小写格式 3 --upper(char):将字符串转换为大写格式 4 --length(char):返回字符串的长度 5 --substr(char,m,n):取字符串的子串 6 --用户名小写 7 select lower(ename),sal from emp; 8 --用户名...
ABAP代码检查(Code Review)
1、SLIN 扩展程序检查 也可通过(SE38工具栏->检查-扩展程序检查) 进入 2、ATC 检查 通过<SE38菜单栏-检查-ABAP测试主控室> 或事物代码SCI, 支持自定义检查变式 SCI可以配置检查变式满足特殊需求,配置对象集用于批量检查 3、通过ABAP测试主控室实现统一管理,定期检查作业和监控功能(事务代码ATC) 参考 SLIN...
储能逆变器动态无功补偿:从原理到算法实现
本文深入解析了储能逆变器动态无功补偿的核心原理与算法实现。通过四象限运行与解耦控制技术,储能逆变器可在充放电的同时,快速、精准地调节无功功率,有效提升电网电能质量与功率因数。文章详细阐述了从相位调节、容量限制到PI控制算法的完整技术路径,并结合工程实践,探讨了其在光伏/储能系统中的协同控制策略与进阶应用价值。
如何利用CANoe在两路CAN通道之间创建网关(gateway)
CANoe网关,利用CAPL实现CAN转发
oracle 日期常用函數 (ADD_MONTHS,LAST_DAY,NEXT_DAY,MONTHS_BETWEEN,NEW_TIME,ROUND,TRUNC)
oracle 日期常用函數 (ADD_MONTHS,LAST_DAY,NEXT_DAY,MONTHS_BETWEEN,NEW_TIME,ROUND,TRUNC)日期運算函數 2 3 ADD_MONTHS(d,n) 4 --時間點d再加上n個月 5 6 ex. 7 select sysdate, add_months(sysdate,2) aa fro
Ubuntu 22.04蓝牙开关秒关?别慌,可能是这个Intel固件文件在搞鬼
本文深入解析Ubuntu 22.04蓝牙开关秒关问题,指出Intel固件文件缺失是常见原因,并提供详细修复方案。通过确认硬件型号、检查固件文件及智能替代方案,帮助用户快速解决蓝牙故障,提升系统稳定性。
【Oracle数据库】DAY0
【031-1-27】基本组件预览 【031-1-31】连接和会话的区别 【031-1-33】Oracle数据库及其包含的文件 【031-1-34】物理结构和内存结构 【031-1-56】数据库写入程序 这里p56-p60都是重点,记得看一下。 【031-1-63】逻辑结构 包括后面的关于表空间,段,区和块的定义也都很重要。 【31-1-241】创建表空间 【31-1-499】创建新用户&数据库验证 ...
Zabbix华为交换机光衰告警
zabbix使用自动发现监控huawei网络设备光衰
蠕虫病毒代码(纯属参考,请勿用于非法事件)
1.介绍蠕虫病毒 蠕虫病毒是一种常见的计算机病毒,是无须计算机使用者干预即可运行的独立程序,它通过不停的获得网络中存在漏洞的计算机上的部分或全部控制权来进行传播。 计算机病毒是指编制或者在计算机程序中插入的破坏计算机功能或者破坏数据和恶意篡改系统. 影响计算机使用并且能够自我复制的一组计算机指令或者程序代码 中文名:蠕虫病毒 传染方式:网络和电子邮件 外文名:Worm virus 类型:计算机病毒 2.代码(建议使用虚拟机,否则你的计算机将会就地报废,使用时要关闭电脑病毒保护,否则程序会...
Oracle Day3 多行函数、多表查询
1.多行函数 Sumavgmaxmincount 组函数具有滤空的作用(添加nvl屏蔽该功能) 分组group by 多行分组 分组过滤 where和分组过滤的区别(having) 分组的增强(rollup) breakondeptnoskip2; break on null; 1 SQL> -- 计算一下每一...
廖雪峰Python教程[完整版]
廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白
oracle sql单行函数 常用函数实例
无结果函数 1 --一、单列函数 2 --1.字符串函数 3 --将字符串大写,因为emp表里面有15条数据,所以 4 select upper('hello world') from emp; 5 select lower(ename) from emp where ename='SCOT...
Probability and Statistics - 4th edition
Probability and Statistics - 4th edition
win10 跳过U8环境检测的IE WebControls.rar
win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。
oracle日期函数
oracle 日期常用函數 (ADD_MONTHS,LAST_DAY,NEXT_DAY,MONTHS_BETWEEN,NEW_TIME,ROUND,TRUNC) 日期運算函數 2 3 ADD_MONTHS(d,n) 4 --時間點d再加上n個月 5 6 ex. 7 select sysdate, add_months(sysdate,2) a...
数学建模模型总结
这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!
ORACLE日期函数大全!
2. 2009-03-12 14:16:10日期函数 Oracle PL/SQL Oracle的日期函数相信很多人都有过统计某些数据的经历,比如,要统计财务的情况,可能要按每年,每季度,每月,甚至每个星期来分别统计。那在oracle中应该怎么来写sql语句呢,这个时候Oracle的日期函数会给我们很多帮助。 3. 4. 常用日期型函数 5. 1。Sysdate 当前日期和时间
Oracle单行查询
单行查询也叫作单行函数,使用某个函数对数据进行操作 关于基本查询:oracle基本查询 1 SQL> select lower('Hello WOrld') 转小写, 2 upper('Hello WOrld') 转大写, 3 initcap('hello world') 首字母大写 4 2 from dual; 5 ...
oracle day-4
day-4 1.多表查询 from s1,s2,s3… where 连接条件 连接条件可以是:等值连接,不等连接,外连接,自连接,集合操作:union,union all,minus,intersect rownum 位列 从1开始 rowid 代表物理位置 2.组函数 avg(),sum(),max(),min(),count() 进行查询 默认分组 select avg(salary) from s_emp; 进行分组:group by 字段1,字段2… group by dept_id,id (部门
oracle 本年1月1号 yy,oracle 日期函数
一、 常用日期数据格式1. Y或YY或YYY 年的最后一位,两位或三位。(2013-01-10)Select to_char(sysdate,'Y') from dual; -- 3Select to_char(sysdate,'YY') from dual; -- 13Select to_char(sysdate,'YYY') from dual; --0132. Q 季度 1~3月为第一...
oracle dump什么函数,Oracle dump函数的用法
一、函数标准格式:DUMP(expr[,return_fmt[,start_position][,length]])基本参数时4个,最少可以填的参数是0个。当完全没有参数时,直接返回null。另外3个参数也都有各自的默认值:expr:这个参数是要进行分析的表达式(数字或字符串等,可以是各个类型的值)return_fmt:指返回参数的格式,有5种用法:1)8:以8进制返回结果的值2)10:以10进制...
oracle如何dump,【Oracle】Oracle中dump函数的用法
一、函数标准格式:DUMP(expr[,return_fmt[,start_position][,length]])基本参数时4个,最少可以填的参数是0个。当完全没有参数时,直接返回null。另外3个参数也都有各自的默认值:expr:这个参数是要进行分析的表达式(数字或字符串等,可以是各个类型的值)return_fmt:指返回参数的格式,有5种用法:1)8:以8进制返回结果的值2)10:以10进制...
oracle 日期处理
oracle当月、当年、本周数据 当月数据 Sql代码 select * from table t where t.create_time >=TRUNC(SYSDATE, 'MM' ) and t.create_time<=l...
Java 9---Oracle数据库函数使用
导读 1.单行函数 函数:oracle内置了很多函数 单行函数:作用于一行,可以得到一个结果 多行函数(组函数):作用于多行(一组),可以得到一个结果 单行函数 单行函数: 字符函数 数值函数 日期函数 转换函数 字符函数: LOWER:转换成小写 UPPER:转换成大写 INITCAP:每个单词首字母变大写,其余小写, 单词通过空格隔开 CONCAT:拼接 SUBSTR(st...
oracle 函数、聚焦函数
oracle 常用的函数 以及 聚焦函数 1 2 3 --1,字符函数 4 5 --当没有表可以用个的时候oracle自带一个虚表dual 6 7 -- || 表示连接符号 将字符串连接到一起 8 9 式显示 10 11 Lower(char):将字符串转化为小写格式 12 13 ?将所有员工的名字按小写的...
oracle dump什么函数,Oracledump函数的用法
一、函数标准格式:DUMP(expr[,return_fmt[,start_position][,length]])基本参数时4个,最少可以填的参数是0个。当完全没有参数时,直接返回null。另外3个参数也都有各自的 默认值:expr:这个参数是要进行分析的表达式(数字或字符串等,可以是各个类型的值)return_fmt:指返回参数的格式,有5种用法:1)8:以8进制返回结果的值2)10:以1...
oracle的dump可以删除吗,Oracle dump函数的用法
Oracle dump函数的用法一、函数标准格式:DUMP(expr[,return_fmt[,start_position][,length]])基本参数时4个,最少可以填的参数是0个。当完全没有参数时,直接返回null。另外3个参数也都有各自的默认值:expr:这个参数是要进行分析的表达式(数字或字符串等,可以是各个类型的值)return_fmt:指返回参数的格式,有5种用法:1)8:以8进制...
339



被折叠的 条评论
为什么被折叠?



