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用户表的说明

7d886fcb88733461c4b217e822919dc8.png

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,秒SS

select to_date('2017-08-14','YYYY-MM-DD') from dual;

2)字符串转时间  to_timestamp(p,f)
p:原值
f:格式,年YYYY,月MM,日DD,时HH24,分MI,秒SS

select 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.

--为什么:如果在分组前就可以过滤掉这些数据,就可以查询时的效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/437235.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】C#各类控件的输入输出(思维导图、知识点分析、案例解析)

第六周学习笔记—C#各类控件的输入输出 1.思维导图 知识点汇总&#xff1a; 着重介绍几个常用控件&#xff1a; 数据显示控件 DataGridView控件 列设置 a)、列的宽度铺满这个控件 设置如下&#xff1a;把AutoSizeColumnsModeFill;//可以在属性窗口中设置 b)、列名居中 代…

sqlserver连接字符串_10分钟使用EF Core连接MSSQL数据库

(给DotNet加星标&#xff0c;提升.Net技能)转自&#xff1a;Ron.liangcnblogs.com/viter/p/10243577.html前言在 .NET Core 2.2中Microsoft.AspNetCore.App 默认内置了EntityFramework Core 包&#xff0c;所以在使用过程中&#xff0c;我们无需再从NuGet仓库单独应用 EFCore 包…

【转】ADO.Net之SqlConnection、 Sqlcommand的应用学习心得(思维导图,知识解析,案例分析)

ADO.Net之SqlConnection、 Sqlcommand的应用 一、思维导图&#xff1a; ADO.NET与SQL连接&#xff1a; 二、知识点介绍&#xff1a; SqlConnection和Sqlcommand都是组成数据提供程序的类。 SqlConnection使用它来建立和数据库的连接&#xff0c;Sqlcommand使用它执行SQL命令…

professional中文_Microsoft office 2007 简体中文版

点击蓝字 关注小白软件名称&#xff1a;Microsoft office 2007软件语言&#xff1a;简体中文软件大小&#xff1a;0.67GB安装环境&#xff1a;Win10/8/7下载链接&#xff1a;https://pan.baidu.com/s/1DybozQ-rn-t2s2EC7FrvFw 提取码&#xff1a;zoa0安装步骤1、解压安装包&…

【转】设计模式 ( 十七) 状态模式State(对象行为型)

设计模式 ( 十七) 状态模式State&#xff08;对象行为型&#xff09; 1.概述 在软件开发过程中&#xff0c;应用程序可能会根据不同的情况作出不同的处理。最直接的解决方案是将这些所有可能发生的情况全都考虑到。然后使用if... ellse语句来做状态判断来进行不同情况的处理。…

【OSG学习】准备开发调试环境

环境 本人当前使用的环境是VS2013 Ultimate Update5 WIN10。 OSG编译安装 下载编译OSG源码不要克隆github上的源码&#xff0c;而是下载稳定版本的OSG源码进行编译。因为github上的源码处于开发阶段&#xff0c;我们应该优先选择稳定版本&#xff0c;我使用的是OpenSceneGr…

【Qt开发经验】Qt信号槽连接不成功问题原因汇总

以下几种情况会导致信号槽连接不成功&#xff0c;下面分别描述。 1. 拥有信号槽的类&#xff0c;必须继承QObject&#xff0c;声明Q_OBJECT宏。 Qt帮助手册里搜索 “Signals & Slots”&#xff0c;可以看到以下说明&#xff1a; 想要使用信号槽&#xff0c;必须继承QOb…

【转】.Net中的异步编程总结

一直以来很想梳理下我在开发过程中使用异步编程的心得和体会&#xff0c;但是由于我是APM异步编程模式的死忠&#xff0c;当TAP模式和TPL模式出现的时候我并未真正的去接纳这两种模式&#xff0c;所以导致我一直没有花太多心思去整理这两部分异步编程模型。今天在CodeProject上…

学习swing鼠标点击事件心得体会_西门子COMOS软件开发定制学习8-查询列表间的数据交互...

​本篇在西门子COMOS软件开发定制学习6-管理界面定制基础上定制&#xff0c;简单介绍两个查询列表之间的数据交互。实现效果&#xff1a;在左侧列表中选择某一设备&#xff0c;右侧列表自动根据所选设备&#xff0c;显示该设备相关的设计图纸(如PID图纸或电气图纸等)&#xff1…

【转】异步编程:.NET 4.5 基于任务的异步编程模型(TAP)

最近我为大家陆续介绍了“IAsyncResult异步编程模型 (APM)”和“基于事件的异步编程模式(EAP)”两种异步编程模型。在.NET4.0 中Microsoft又为我们引入了新的异步编程模型“基于任务的异步编程模型(TAP)”&#xff0c;并且推荐我们在开发新的多线程应用程序中首选TAP&#xff0…

python实验题_python实验二

安徽工程大学 Python 程序设计 实验报告 班级 物流191 姓名 王凡 学号 3190505102 成绩____________ 日期20200322 指导教师 修宇 【实验名称】 实验二 顺序结构程序设计 【思考题】 &#xff08;注意不要漏答&#xff09; 1、影响题1和题3计算准确性的因素有哪些&#xff1f;如…

解决:VS中进行Qt开发,编译时报错:打不开QWidgets.h等文件的问题

1. 先检查是否通过Qt VS Tools添加了Qt路径和配置了正确的Qt版本&#xff0c;这一步基本上都没问题。 2. 再检查此项目是否配置了正确的Qt版本&#xff0c;右键项目&#xff0c;选择Qt Project Settings&#xff0c;选择你需要的Qt版本即可&#xff0c;不可以为空。 3. 完成上面…

【转】1:C#的三种异步的详细介绍及实现

一、介绍异步的前世今生&#xff1a; 异步编程模型 (APM&#xff0c;Asynchronous Programming Model) 模式&#xff08;也称 IAsyncResult 模式&#xff09;&#xff0c;在此模式中异步操作需要 Begin 和 End 方法&#xff08;比如用于异步写入操作的 BeginWrite 和 EndWrite…

elasticsearch date_Elasticsearch在日志分析领域应用和运维实践

主要讲述了&#xff1a;基于ELK Kafka 的日志分析系统Elasticsearch 优化经验Elasticsearch 运维实践ElasticSearch介绍分布式实时分析搜索引擎&#xff0c;优点包括&#xff1a;查询近实时内存消耗小&#xff0c;搜索速度快可扩展性强高可用数据结构FST(Finite State Transdu…

【转】2:C#TPL探秘

理论&#xff1a; 1、 只要方法是 Task类型的返回值&#xff0c;都可以用 await 来等待调用获取返回值。 2、 如果一个返回 Task类型的方法被标记了 async&#xff0c;那么只要方法内部直接 return T 这个 类型的实例就可以。 3、 一个返回 Task类型的方法没有被标记了 asyn…

Qt添加翻译文件无效或部分无效

原因&#xff1a; QTranslator::load路径错误qApp->installTranslator调用时机应该在所有界面起来之前。命名空间宏导致的问题。如果一个类有命名空间宏&#xff0c;则宏不会转换为命名空间&#xff0c;导致ts文件内的上下文不包含命名空间。上下文对不上导致部分窗口翻译失…

linux shell脚本攻略第3版_「技术干货」师傅说不会写shell脚本的网安不是一个好黑客,实战...

shell脚本&#xff1f;在说什么是shell脚本之前&#xff0c;先说说什么是shell。shell是外壳的意思&#xff0c;就是操作系统的外壳。我们可以通过shell命令来操作和控制操作系统&#xff0c;比如Linux中的Shell命令就包括ls、cd、pwd等等。总结来说&#xff0c;Shell是一个命令…

【转】3:C#异步WaitAll的使用

编写界面如图&#xff1a; private async void button1_Click(object sender, EventArgs e){#region 单个执行的异步&#xff0c;效率慢HttpClient wc new HttpClient();string s1 await wc.GetStringAsync(textBox1.Text);label1.Text s1.Length.ToString();string s2 awa…

Qt实现QTextEdit背景透明

QTextEdit为什么要拿出来单独说&#xff0c;因为它继承自QAbstractScrollArea&#xff0c;一般的设置无效。滚动区域ScrollArea内部有一个widget&#xff0c;需要同时设置ScrollArea和viewport两个窗口才能实现透明。代码如下&#xff1a; m_text_editor->setWindowFlags(Q…

python断点调试_「Python调试器」,快速定位各种疑难杂症!!!

在很多的编辑器其实都带着「调试程序」的功能&#xff0c;比如写 c/c 的 codeblocks&#xff0c;写 Python 的 pycharm&#xff0c;这种图形界面的使用和显示都相当友好&#xff0c;简单方便易学&#xff0c;这个不是我这篇文章要讲的重点。今天主要是想给大家介绍一下 「 Pyth…