oracle insert 当前时间_Oracle知识点总结
目录
1、Oracle的安装与下载
2、基础查询
3、条件查询
1)对比运算符
2)逻辑运算符
3)模糊查询
4)排序
4、函数
1)数值函数
2)字符函数
3)时间日期函数
4)转换函数
5)通用函数
5、聚合函数
6、分组查询
在学习Oracle之前,需要先有一定的数据库基础知识。
一、Oracle的安装与下载
Oracle的安装与下载,请看博客:https://blog.csdn.net/wei_li_2015/article/details/80835614
二、基础查询
1.sql语言的类型有哪些
DDL:数据定义语言,创建(create),修改(alter),移除(drop)
DML:数据操作语言, 增加(insert),删除(delete),修改(update)
DQL:数据查询语言,查询(select)
DCL:数据控制语言,对用户授权撤权(grant,revoke)
TCL:事务控制语言,提交(commit),回滚(rollback),保存点(savepoint)
2. Scott用户表的说明
3. 查询的语法
语法说明:
<> :表示必须的
[]:表示可选。
select [distinct] *| [as 别名] from [别名] [where ] |
示例:
--查询所有的员工信息
select * from emp;
--需求:查询员工的姓名,去重复
select distinct ename from emp;
--需求:查询员工的姓名,返回的字段名使用表的别名指定
select distinct a.ename from emp a;
--需求:查询员工的姓名,返回的字段名使用表的别名指定.将返回的字段修改为‘c’
select distinct a.ename as 员工姓名 from emp a;
二、条件查询
1、对比运算符
运算符 |
说明 |
= |
等于 |
> |
大于 |
小于 |
|
>= |
大于等于 |
<= |
小于等于 |
<> != |
不等于,没有区别。 <>这个是标准SQL的不等于,所有的数据库都支持,!=非SQL标准的不等于,就有某一些数据库不支持。 |
in |
列表对比运算符 |
is [not] null |
判空 |
between .. and.. |
范围对比运算符 |
--需求:查询员工部门编号为10,或者20的员工。
select * from dept where deptno in (10,20);
--需求:查询员工的奖金不为null的员工。
select * from emp where COMM is not null;
--需求:查询员工的工资在1600和3000 之间的员工。包括上下限。
select * from emp where sal between 1600 and 3000;
select * from emp where sal>= 1600 and sal<=3000;
--需求:查询员工的入职时间在1981-9-28至1982-1-23的员工,包括上下限。
select * from emp where hiredate between to_date('1981-09-28','yyyy-mm-dd') and to_date('1982-01-23','yyyy-mm-dd');
在该示例中涉及时间的转换,在后面会总结到,该处不做过多的总结。
2、逻辑运算符
运算符 |
说明 |
AND |
与,并且 |
OR |
或,或者 |
NOT |
非,不 |
--逻辑运算符
--AND
--需求:查询员工的工资在1600和3000 之间的员工。不包括上下限。
select * from emp where sal > 1600 and sal<3000;
--OR
--需求:查询员工部门编号为10,或者20的员工。
select * from emp where deptno =10 or deptno=20;
--NOT
--需求:查询员工的工资不在1600和3000 之间的员工。包括上下限。
--1600以下
--3000以上
select * from emp where sal not between 1600 and 3000;
3、模糊查询
1、特殊字符
如果遇到,匹配的字符就是一个特殊字符,那么需要转义。
定义一个转义字符来实现,定义的转义符可以是任何字符,只是我们习惯使用\
_代表是匹配一个字符
%代表是匹配任何的字符
--模糊查询
--like
--需求:查询第三个字母为A,的员工
select * from emp where ename like '__A%';
--需求:查询名字有_的员工
select * from emp where ename like '%\_%' escape '\';
4、排序
关键字:desc 和 asc
--需求:根据工资的从高到低排序
select * from emp order by sal desc;
--需求:根据部门编号从低到高排序
select * from dept order by deptno asc;
--需求,按部门编号升序排序,然后每个部门按工资从高到低排序。
select * from emp order by deptno asc,sal desc;
三、函数
1、数值函数
数值函数,就是处理数值。
1)四舍五入函数round(p,s)
p:原值
s:精度,如果是正数,表示小数点后的位数,如果是0,表示忽略小数点后的位数,如果是负数,即使从右到左,精确正数部分。
--需求:统计所有员工的平均工资,保留四位小数,四舍五入
select round(avg(sal),4) from emp;
--需求:统计所有员工的平均工资,保留三位小数,四舍五入
select round(avg(sal),3) from emp;
--需求:统计所有员工的平均工资,保留到个位
select round(avg(sal),0) from emp;
--需求:统计所有员工的平均工资,保留到十位
select round(avg(sal),-1) from emp;
2)数值截取函数 trunc(p,s)
p:原值
s:精度,如果是正数,表示小数点后的位数,如果是0,表示忽略小数点后的位数,如果是负数,即使从右到左,精确正数部分。
--需求:统计所有员工的平均工资,保留四位小数
select trunc(avg(sal),4),avg(sal) from emp;
--需求:统计所有员工的平均工资,保留到十位
select round(avg(sal),-1) from emp;
2、字符函数
字符函数:就是处理字符
1)字符函数 length(p)
字符长度计算函数,p:表示原值
--需求:计算员工的名字的长度
select length(ename),ename from emp;
2)替换函数 replace(p,c1,c2)
p:原值
c1:需要替换的值(旧值)
c2:替换后的值(新值)
--需求:my name is itcast 修改 my 为 your
select replace('my name is liwei','my','your') from dual;
--如果c2没有值,表示直接删除c1的值
select replace('my name is liwei','my') from dual;
3)伪表:dual
在Oracle里面,查询都是使用select关键字的。而select关键字语法为:select 返回结果 from 。
但是在查询一些情况是没有表的,查询函数,查询运算的结果,查询关键字。Oracle在查询这些没有表的数据时,使用一个临时表来存储。这个临时表就是伪表dual;
dual的作用就是查询没有表的数据时,用于维持select的语法的需要。
反正,没有表的数据查询时,统一使用dual
--如:查询7+8的结果
select 7+8 from dual;
--如:查询当前用户
select user from dual;
--如:查询当前的日期
select sysdate from dual;
3、日期时间函数
日期时间函数:就是处理日期时间的
1)日期函数
--如:查询当前的日期
select sysdate from dual;
2)月份增加函数 add_months(p,m)
p:原值
m:增加的月份数,如果是正数就是加,如果是负数就是减
--需求:计算当前日期的5个月后的日期
select add_months(sysdate,5) from dual;
--需求:计算当前日期的5个月前的日期
select add_months(sysdate,-5) from dual;
3)日期月份对比函数 months_between(d1,d2)
日期月份对比函数,返回两个日期的月份间隔
作用:
用于计算两个日期的月份区间
对比两个日期的大小
如果d1>d2,返回正数,如果 d1
--需求:计算当前日期,和2017-01-14.的月份间隔
select months_between(sysdate,to_date('2017-01-14','YYYY-MM-DD') ) from dual;
4)日期时间提前函数
extract(year|month|day|hour|minute|seconnd from |)
--需求:提前当前日期的年月日
--提取年
select extract(year from sysdate) from dual;
--提取月
select extract(month from sysdate) from dual;
--提取日
select extract(day from sysdate) from dual;
--提取时
--12小时制
select extract(hour from to_timestamp('2017-08-14 11:48:20','yyyy-mm-dd hh:mi:ss')) from dual;
--24小时制
select extract(hour from to_timestamp('2017-08-14 13:48:20','yyyy-mm-dd hh24:mi:ss')) from dual;
--提取分
select extract(minute from to_timestamp('2017-08-14 13:48:20','yyyy-mm-dd hh24:mi:ss')) from dual;
--提取秒
select extract(second from to_timestamp('2017-08-14 13:48:20','yyyy-mm-dd hh24:mi:ss')) from dual;
--oracle支持另种写法,不用to_timestamp函数,使用timestamp关键字
--提取秒
select extract(second from timestamp '2017-08-14 13:48:20') from dual;
4、转换函数
转换函数:就是实现类型的转成
1)字符串转成日期 to_date(p,f)
p:原值
f:格式,年YYYY,月MM,日DD,时HH24,分MI,秒SSselect to_date('2017-08-14','YYYY-MM-DD') from dual;
2)字符串转时间 to_timestamp(p,f)
p:原值
f:格式,年YYYY,月MM,日DD,时HH24,分MI,秒SSselect to_timestamp('2017-08-14 13:11:30','YYYY-MM-DD HH24:MI:SS') from dual;
3)将其他类型的值转成字符串
将其他类型的值转成字符串
将当前日期转成字符串
to_char(p,f)p:原值
f:格式,年YYYY,月MM,日DD,时HH24,分MI,秒SS
select to_char(sysdate,'yyyy-mm-dd') from dual;
select to_char(sysdate,'yyyy/mm/dd') from dual;
4)将数值类型转成字符串 to_char(p,f)
p:原值
f:数值的占位符是9
--需求:将8978767976,转为$8,978,767,976
select to_char(8978767976,'$9,999,999,999') from dual;
5、通用函数
通用函数:一些帮助函数,空处理
1)空处理函数
nvl(p,v1):如果p的值为null,就返回v1.
nvl2(p,v1,v2):如果p的值不为null,返回v1,为null返回v2;
--需求:查询有奖金员工
--nvl
select comm,nvl(comm,0) from emp;
select * from emp where nvl(comm,0)<>0;
--nvl2
select comm,nvl2(comm,comm,0) from emp;
select * from emp where nvl2(comm,comm,0)<>0;
四、聚合函数
聚合函数:就是用于统计
max()
min()
count()
sum()
avg()
所谓的多行函数就是聚合函数,非聚合函数的其他函数就是单行函数。五、分组查询
1、分组查询时什么
数据库是支持统计数据功能,统计包括了最大值,最小值,平均值,总数,总记录数
如果我们需要按某种字段分类后再统计呢?
我们将按某个字段分类称为分组。2、分组的作用
分组的作用实现将某种字段分类,再统计这个类型的统计数据。
--需求:统计员工工资的最大值,最小值,平均值,总数
select max(sal),min(sal),avg(sal),sum(sal) from emp;
--需求:按部门分组,求每个部门的最大工资和平均工资
select deptno,max(sal),avg(sal) from emp group by deptno;
--需求:按部门分组,求每个部门的最大工资和平均工资,平均工资在2000以上
--问题:使用where,还是having?
--答:因为平均工资是在分组后才可以获得,所以使用优先级别在group by后面的having来判断
--查询语句的关键字是有优先级别的
--from > where > group by >having > select > order by
select deptno,max(sal),avg(sal) from emp group by deptno having avg(sal)>2000;
--问题:如果判断的条件不需要分组就可以获得,使用where.
--为什么:如果在分组前就可以过滤掉这些数据,就可以查询时的效率。
oracle insert 当前时间_Oracle知识点总结相关推荐
- oracle 大于当天时间_oracle中时间格式时候的大于号是大于和等于的意思
redis lua 需求是在缓存最近一周内用户所有消息列表,考虑用Redis 存储:为每个存储一个独立Sorted Set,value 为消息体,Score 为MessageId,用以实现增量消息同步 ...
- oracle结果相减_oracle 两个时间相减得秒
oracle 两个时间相减默认的是天数 oracle 两个时间相减默认的是天数*24 为相差的小时数 oracle 两个时间相减默认的是天数*24*60 为相差的分钟数 oracle 两个时间相减默认 ...
- oracle 字段除以1000,ORACLE常用}1000(之一)_oracle
大家在oracle的r候可能龅胶芏嗫雌聿浑y的}, 特eπ率碚f, 今天我伟阉Y一下, l布o大家, 希望Υ蠹矣助! 和大家一起探, 共同M步! ORACLE高手碚f是不用看的. 1. Oracle安 ...
- oracle 获取第三行,Oracle 11g 第三章知识点总结——单行函数
Oracle 11g 第三章知识点总结--单行函数 知识点预览 单行函数 单行函数 1. SQL 函数 2.两种 SQL 函数 3.单行函数 a) 操作数句对象 b)接受函数返回一个结果 c)只对一行 ...
- oracle如何查询时间格式,oracle时间格式讨论
1. oracle对时间格式的数据存贮 Oracle以特定的存储格式来存储时间,占7个字节,与查询显示的时间无关.存贮的时间包括年月日时分秒,最小精度为秒,不存贮秒以下的时间单位.因此在一些前台支持毫 ...
- oracle当前毫秒时间,oracle获得当前时间,精确到毫秒并指定精确位数
oracle获得当前时间的,精确到毫秒 可以指定精确豪秒的位数 select to_char(systimestamp, 'yyyymmdd hh24:mi:ss.ff ') from dual; ...
- oracle获得当前系统时间精确到毫秒,oracle获取当前时间,精确到毫秒并指定精确位数的实现方法...
oracle获得当前时间的,精确到毫秒 可以指定精确豪秒的位数 select to_char(systimestamp, 'yyyymmdd hh24:mi:ss.ff ') from dual; ...
- oracle中的时间比较大小,Oracle 时间比较
Oracle 时间比较 在Web开发中,从页面注入的时间一般为String类型,怎么去和Oracle中的时间进行比较 方法: String Time: .......// 一段代码 假设Time为页面 ...
- 修改oracle数据库默认时间格式
oracle数据库默认的时间格式只能精确到天(DD-MON-RR),在实际工作环境中,开发程序通常需要取得精确到秒的时间值,经查询资料在oracle中修改时间值的方式大致可以分为以下几种: 1.临时修 ...
最新文章
- 2018-2019-1 20189206 《Linux内核原理与分析》第六周作业
- 3.11 总结-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
- Java类集框架 —— HashMap源码分析
- [ARM-assembly]-ARMv8 A64 Quick Reference
- 计算机软件中级职称 入职,计算机职调称论文.doc
- 测试你的Python 水平----6
- 关于toString()与toLocaleString()的区别
- 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_02 泛型_3_定义和使用含有泛型的类...
- python数据库操作批量sql执行_python 批量远程执行SQL SERVER 脚本
- 三大主流芯片架构特点
- 手机java淘汰_极客修:对手并不止安卓!这些年iOS竟然把这么多手机系统淘汰掉了...
- 新建Application 报错android.app.Application cannot be cast
- 小米如何使用远程管理FTP操作电脑和手机的文件
- 科学家用iPS细胞研究阿尔兹海默氏病最新进展
- 慕思披露招股书,智慧床垫能成为后来者追赶的助燃剂吗?
- 版式设计中的点线面总结
- P4169 [Violet]天使玩偶/SJY摆棋子 [CDQ分治]
- UOS与Deepin OS区别详解
- xp计算机如何查看内存大小,怎样查看电脑内存大小_xp怎么看电脑内存大小
- php 字符串转化字符集,php convert_cyr_string 将字符串由一种 Cyrillic 字符集转换成另一种...
热门文章
- Angular JS (2)
- Flex AIR 文件对象操作
- [xsd学习]xsd介绍
- Effective Java学习笔记之第5条 避免创建不必要的对象
- [Ubuntu] Simple way to pass passwords on a shell script
- discuzX 帖子 有的图片没输出 [attach]12323[/attach]的解决办法
- 通汇手机为何卖得那么红火
- jdk1.8配置(自我速成)
- mysql savepoint语法_SAVEPOINT语法错误一例
- CosiWorksNew