ORACLE SQL 总结_oracle 总计 sql-程序员宅基地

技术标签: ORACLE  

作者:杨裙
本次任务完成时间:2019年4月7日
开发工具与关键技术:Oracle sql*plus 、 PLSQL Developer
ORACLE SQL基础
1、空值是无效的,不是空格或者0,当需要计算的时候,其含有空值,则需用‘NVL’来转换,否则计算出来的结果也为空。
2、对于列名,可以加AS,也可以直接省略,可以使用双引号,也可以在字段后面直接写,如果不加双引号系统会自动把小写的字母转换成大写的字母。
3、拼接符‘||’会把两个字符连接在一起,或列与列,用来合成一个列。
4、当查询出重复行可以用‘DISTINCT’来去除重复行,只能把其放在第一位置。
以上例子如图:
在这里插入图片描述二、过滤和排序
1、WHERE 子句紧跟在FROM子句的后面,可以用WHERE子句进行过滤和筛选,WHERE的
执行顺序在FROM的后面,首先执行完FROM子句之后,WHERE子句紧跟着执行。
2、比较运算操作符(BETWEEN…AND,IN,LIKE,IS NULL)。IN等于查询出结果的任意一个,它跟OR的结果差不多;其中‘%’是代表零个字符或多个字符,‘_’代表一个字符。‘ESCAPE’:转义符;
3、ORDER BY子句排序:其中升序为‘ASC’,降序为‘DESC’。ORDER BY子句的执行顺序永远在最后,当存在多个列进行排序时,其排序顺序根据其前一个列进行排序。当要把列进行排序时,可以把查询的字段用数字1,2…等代表或者直接根据要排序的字段进行排序,
当要排序的字段在SELECT子句中没有查询出来,也可以进行排序,升序排序可以省略不写。
以上例子如图:
在这里插入图片描述
ORACLE SQL函数
1、大小写控制函数(LOWER,UPPER,INITCAP);
2、字符控制函数(CONCAT,SUBSTR,INSTR,LENGTH,LPAD,RPAD,TRIM,REPLACE)。对于字符控制函数
CONCAT:可以用来进行字符与字符的拼接,相当于用拼接符‘||’;
SUBSTR:截取字符,其中第一个数字代表从哪个开始,第二个代表截取多少个字符;
INSTR:计算指定字符的索引位置;
LENGTH:计算字符串的长度;
LPAD:左填充,RPAD:右填充;
TRIM:可以去空格,但也可以去字符;
REPLACE:可以使用指定的字符来替代字符串中的字符;
在这里插入图片描述 ORACLE SQL日期函数
一、对于日期,只能进行减法运算,不能进行加法运算,也可以用‘TO_CHAR’ 或者‘TO_DATE’对日期进行转换,同时可以利用日期函数对日期进行操作(MONTHS_BETWEEN、ADD_MONTHS、NEXT_DAY、LAST_DAY、ROUND、TRUNC)。如果只想单独获取年或月或日可以利用‘TO_CHAR’进行截取,还可以利用‘EXTRACT’来截取。‘TO_CHAR’和‘TO_DATE’两者不能混用,否则会
报错,当要求把字符串日期转变成日期格式的时候,就要用‘TO_DATE’,‘TO_CHAR’函数是对日期的转换,如图:
1、对日期字符的操作:
在这里插入图片描述2、TO_DATE,TO_CHAR
在这里插入图片描述
3、注意:字符串转换成日期格式时,对于‘小时’的写法,系统默认是24小时如果在写时间格式的时候,没有写24那么会报错:
在这里插入图片描述
ORACLE SQL分组函数
1、组函数的类型(COUNT,SUM,MAX,MIN,AVG)。
2、GROUP BY 子句用来进行分组,可以把数据分成若干个小组。注意:在查询列表中所有未包含在组函数的字段在GROUP BY子句中必须写,否则会报错,但包含在GROUP BY子句中的列不一定要包含在查询列表中。
3、过滤分组:HAVING子句紧跟在GROUP BY 子句后,有HAVING子句前面一定要有GROUP BY,但有GROUP BY 不一定有HAING。可以在HAVING子句中使用组函数,但不能在WHERE子句中使用组函数。
4、组函数忽略空值,但‘NVL’函数使分组函数无法忽略空值。
以上例子如图:
在这里插入图片描述ORACLE SQL查询
一、多表查询
1、多表连接:笛卡尔集,当两张表连接在一起,没有写连接条件,那么就会出现两张表的所有字段相乘,CROSS JOIN :叉集和笛卡尔集的效果相同,如图:
在这里插入图片描述
2、等值连接:两张表的值是相等的,有两种写法,如图:
在这里插入图片描述3、左连接和右连接(外连接)其实就是反过来,第一种写法直接在左或右直接加‘(+)’符号就行,当符号在左边时为右连接,反之符号在右边时为左连接。第二种‘SQL1999’的写法,左连接直接写‘LEFT (outer)JOIN’,右连接直接写‘RIGTH (outer) JOIN’,外连接可以查询不满足连接条件的数据,如图:
在这里插入图片描述4、自然连接和USING子句创建连接。自然连接:会把两个表相同的列连接起来,创建等值连接,如employees 和departments 两张表,相同的列有两个,所以相同两个列会自动连接起来。join 和 using子句经常同时使用,using子句可以在满足多个条件时进行选择,指定其列,如图:
在这里插入图片描述 5、满外连接:其满外连接会返回两个表满足的连接条件外还会返回两个表不满足的条件,满外连接用关键词:FULL (OUTER) JOIN …ON…

二、子查询
1、子查询查询出来的结果给主查询使用,当子查询的结果返回多个时,会出现错误,如图:
在这里插入图片描述
3、 如果子查询返回的是多个值,那么就要用(IN,ANY,ALL)。用IN代表列表中的任意一个值;ANY代表和子查询返回的某一个值比较;ALL代表和子查询返回的所有值比较。

ORACLE SQL DDL语言
1、创建和管理表:创建数据库表(CREATE TABLE),更改表的结构(ALTER TABLE)、添加、删除、修改列长度,删除表(TRUNCATE、DROP),创建索引(CREATE INDEX)。创建表的时候表名必须以字母开头,只能在1-30个字符之间,可以用的字符为‘_’、‘$’、‘#’和0-9,a-z,创建表名时不能重复,下面是对于DDL数据定义语言的所有展示如图:
在这里插入图片描述2、索引:索引被删除或损坏,不会对表产生影响,其影响的只是查询的速度;通过指针加速 Oracle 服务器的查询速度;在删除一个表时,所有基于该表的索引会自动被删除;
在这里插入图片描述
ORACLE SQL DML语言
1、DML(数据操纵语言):可以添加数据到数据库,修改数据库中的数据,删除数据库中的数据,查询数据。当插入数据时,每次只能插入一条数据。对于数据操纵语言,如下图:
在这里插入图片描述2、约束:约束是一种在创建表的时候进行添加的约束,如下五种约束:NOT NULL(不为空约束),UNIQUE(唯一性约束),PRIMARY KEY(主键约束),FOREIGN KEY(外键约束),CHECK(检查性约束)。NOT NULL:其只能作用在列级上,同时也比较特殊,可以在列级写多个非空约束,NOT NULL也是唯一一个可以进行修改的约束;其它约束只能写一个约束,同时也不能进行修改,只能添加或删除约束,见如下图:
在这里插入图片描述3、序列的创建,如图:
在这里插入图片描述
ORACLE SQL DCL语言
1、创建用户可以在安装数据库的时候创建,也可以在PLSQL Developer这里创建,用户本人还可以进行修改其密码。不同的对象具有不同的权限,对象的拥有者拥有所有的权限,对象的拥有者可以向外分配权限,使其拥有与对象拥有者一样多的权限,而且具有很多数据库权限(修改、删除、执行、索引、更新等),当赋予其它用户权限的时候,还可以收回权限,收回权限的关键字:REVOKE,关于用户的权限如下图:
在这里插入图片描述ORACLE 日期的扩充
1、日期的转换除了‘TO_CHAR’和‘TO_DATE’的转换和截取外,还有EXTRACT和CAST两个课外对日期同样可以进行转换和截取,第一个EXTRACT它可以对日期进行截取,然后得到想要的年、月、日,第二个CAST它是对日期的转换和数字类型的转换,而且也较简单。EXTRACT:它的用法就是直接(年/月/日 + from EXTRACT),如图例题EXTRACT的用法:
在这里插入图片描述CAST的用法它是直接通过日期字符串进行转换,转换格式CAST(‘日期字符串’ + AS + DATE)如图:
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_44543430/article/details/89082695

智能推荐

适合入门的8个趣味机器学习项目-程序员宅基地

文章浏览阅读86次。首发地址:https://yq.aliyun.com/articles/221708谈到机器学习,相信很多除学者都是通过斯坦福大学吴恩达老师的公开课《Machine Learning》开始具体的接触机器学习这个领域,但是学完之后又不知道自己的掌握情况,缺少一些实际的项目操作。对于机器学习的相关竞赛挑战,有些项目的门槛有些高,参加后难以具体的实现,因此造..._scrath五子棋下载

oracle 12c avg,Oracle 12c新特性系列专题-安徽Oracle授权认证中心-程序员宅基地

文章浏览阅读83次。原标题:Oracle 12c新特性系列专题-安徽Oracle授权认证中心 随着Oracle database 12c的普及,数据库管理员 (DBA) 的角色也随之发生了转变。 Oracle 12c数据库对 DBA 而言是下一代数据管理。它让 DBA 可以摆脱单调的日常管理任务,能够专注于如何从数据中获取更多价值。未来我们会推出基于Oracle12c的技术文章,帮助DBA尽快掌握新一代数据库的新特性..._ilm add policy row store compress advanced row after

第七周项目三(负数把正数赶出队列)-程序员宅基地

文章浏览阅读150次。问题及代码:*Copyright(c)2016,烟台大学计算机与控制工程学院 *All right reserved. *文件名称:负数把正数赶出队列.cpp *作者:张冰 *完成日期;2016年10月09日 *版本号;v1.0 * *问题描述: 设从键盘输入一整数序列a1,a2,…an,试编程实现: 当ai>0时,ai进队,当ai<0时,将队首元素出队,当ai

Linux命名空间学习教程(二) IPC-程序员宅基地

文章浏览阅读150次。本文讲的是Linux命名空间学习教程(二) IPC,【编者的话】Docker核心解决的问题是利用LXC来实现类似VM的功能,从而利用更加节省的硬件资源提供给用户更多的计算资源。而 LXC所实现的隔离性主要是来自内核的命名空间, 其中pid、net、ipc、mnt、uts 等命名空间将容器的进程、网络、消息、文件系统和hostname 隔离开。本文是Li..._主机的 ipc 命名空间

adb强制安装apk_adb绕过安装程序强制安装app-程序员宅基地

文章浏览阅读2w次,点赞5次,收藏7次。在设备上强制安装apk。在app已有的情况下使用-r参数在app版本低于现有版本使用-d参数命令adb install -r -d xxx.apk_adb绕过安装程序强制安装app

随便推点

STM32F407 越界问题定位_stm32flash地址越界怎么解决-程序员宅基地

文章浏览阅读290次。如果是越界进入硬件错误中断,MSP 或者 PSP 保存错误地址,跳转前会保存上一次执行的地址,lr 寄存器会保存子函数的地址,所以如果在 HardFault_CallBack 中直接调用 C 语言函数接口会间接修改了 lr,为了解决这个问题,直接绕过 lr 的 C 语言代码,用汇编语言提取 lr 寄存器再决定后面的操作。由于 STM32 加入了 FreeRTOS 操作系统,可能导致无法准确定位,仅供参考(日常编程需要考虑程序的健壮性,特别是对数组的访问,非常容易出现越界的情况)。_stm32flash地址越界怎么解决

利用SQL注入上传木马拿webshell-程序员宅基地

文章浏览阅读1.8k次。学到了一种操作,说实话,我从来没想过还能这样正常情况下,为了管理方便,许多管理员都会开放MySQL数据库的secure_file_priv,这时就可以导入或者导出数据当我如图输入时,就会在D盘创建一个名为123456.php,内容为<?php phpinfo();?>的文件我们可以利用这一点运用到SQL注入中,从拿下数据库到拿下目标的服务器比如我们在使用联合查询注入,正常是这样的语句http://xxx?id=-1 union select 1,'你想知道的字段的内容或查询语句',

Html CSS的三种链接方式_html链接css代码-程序员宅基地

文章浏览阅读2.9w次,点赞12次,收藏63次。感谢原文:https://blog.csdn.net/abc5382334/article/details/24260817感谢原文:https://blog.csdn.net/jiaqingge/article/details/52564348Html CSS的三种链接方式css文本的链接方式有三种:分别是内联定义、链入内部css、和链入外部css1.代码为:<html>..._html链接css代码

玩游戏哪款蓝牙耳机好?2021十大高音质游戏蓝牙耳机排名_适合游戏与运动的高音质蓝牙耳机-程序员宅基地

文章浏览阅读625次。近几年,蓝牙耳机市场发展迅速,越来越多的消费者希望抛弃线缆,更自由地听音乐,对于运动人士来说,蓝牙耳机的便携性显得尤为重要。但目前市面上的大多数蓝牙耳机实际上都是“有线”的,运动过程中产生的听诊器效应会严重影响听歌的感受。而在“真无线”耳机领域,除了苹果的AirPods外,可供选择的产品并不多,而AirPods又不是为运动场景打造的,防水能力非常差。那么对于喜欢运动又想要“自由”的朋友来说,有没有一款产品能够满足他们的需求呢?下面这十款小编专门为大家搜罗的蓝牙耳机或许就能找到适合的!网红击音F1_适合游戏与运动的高音质蓝牙耳机

iOS 17 测试版中 SwiftUI 视图首次显示时状态的改变导致动画“副作用”的解决方法-程序员宅基地

文章浏览阅读1k次,点赞6次,收藏7次。在本篇博文中,我们在 iOS 17 beta 4(SwiftUI 5.0)测试版中发现了 SwiftUI 视图首次显示时状态的改变会导致动画“副作用”的问题,并提出多种解决方案。

Flutter 自定义 轮播图的实现_flutter pageview轮播图 site:csdn.net-程序员宅基地

文章浏览阅读1.9k次。  在 上篇文章–Flutter 实现支持上拉加载和下拉刷新的 ListView 中,我们最终实现的效果是在 listView 上面留下了一段空白,本意是用来加载轮播图的,于是今天就开发了一下,希望能给各位灵感。一 、效果如下说一下大体思路   其实图片展示是用的 PageView ,然后,下面的指示器 是用的 TabPageSelector ,当然整体是用 Stack 包裹起来的。1、..._flutter pageview轮播图 site:csdn.net