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

智能推荐

hdu 1229 还是A+B(水)-程序员宅基地

文章浏览阅读122次。还是A+BTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 24568Accepted Submission(s): 11729Problem Description读入两个小于10000的正整数A和B,计算A+B。...

http客户端Feign——日志配置_feign 日志设置-程序员宅基地

文章浏览阅读419次。HEADERS:在BASIC的基础上,额外记录了请求和响应的头信息。FULL:记录所有请求和响应的明细,包括头信息、请求体、元数据。BASIC:仅记录请求的方法,URL以及响应状态码和执行时间。NONE:不记录任何日志信息,这是默认值。配置Feign日志有两种方式;方式二:java代码实现。注解中声明则代表某服务。方式一:配置文件方式。_feign 日志设置

[转载]将容器管理的持久性 Bean 用于面向服务的体系结构-程序员宅基地

文章浏览阅读155次。将容器管理的持久性 Bean 用于面向服务的体系结构本文将介绍如何使用 IBM WebSphere Process Server 对容器管理的持久性 (CMP) Bean的连接和持久性逻辑加以控制,使其可以存储在非关系数据库..._javax.ejb.objectnotfoundexception: no such entity!

基础java练习题(递归)_java 递归例题-程序员宅基地

文章浏览阅读1.5k次。基础java练习题一、递归实现跳台阶从第一级跳到第n级,有多少种跳法一次可跳一级,也可跳两级。还能跳三级import java.math.BigDecimal;import java.util.Scanner;public class Main{ public static void main(String[]args){ Scanner reader=new Scanner(System.in); while(reader.hasNext()){ _java 递归例题

面向对象程序设计(荣誉)实验一 String_对存储在string数组内的所有以字符‘a’开始并以字符‘e’结尾的单词做加密处理。-程序员宅基地

文章浏览阅读1.5k次,点赞6次,收藏6次。目录1.串应用- 计算一个串的最长的真前后缀题目描述输入输出样例输入样例输出题解2.字符串替换(string)题目描述输入输出样例输入样例输出题解3.可重叠子串 (Ver. I)题目描述输入输出样例输入样例输出题解4.字符串操作(string)题目描述输入输出样例输入样例输出题解1.串应用- 计算一个串的最长的真前后缀题目描述给定一个串,如ABCDAB,则ABCDAB的真前缀有:{ A, AB,ABC, ABCD, ABCDA }ABCDAB的真后缀有:{ B, AB,DAB, CDAB, BCDAB_对存储在string数组内的所有以字符‘a’开始并以字符‘e’结尾的单词做加密处理。

算法设计与问题求解/西安交通大学本科课程MOOC/C_算法设计与问题求解西安交通大学-程序员宅基地

文章浏览阅读68次。西安交通大学/算法设计与问题求解/树与二叉树/MOOC_算法设计与问题求解西安交通大学

随便推点

[Vue warn]: Computed property “totalPrice“ was assigned to but it has no setter._computed property "totalprice" was assigned to but-程序员宅基地

文章浏览阅读1.6k次。问题:在Vue项目中出现如下错误提示:[Vue warn]: Computed property "totalPrice" was assigned to but it has no setter. (found in <Anonymous>)代码:<input v-model="totalPrice"/>原因:v-model命令,因Vue 的双向数据绑定原理 , 会自动操作 totalPrice, 对其进行set 操作而 totalPrice 作为计..._computed property "totalprice" was assigned to but it has no setter.

basic1003-我要通过!13行搞定:也许是全网最奇葩解法_basic 1003 case 1-程序员宅基地

文章浏览阅读60次。十分暴力而简洁的解决方式:读取P和T的位置并自动生成唯一正确答案,将题给测点与之对比,不一样就给我爬!_basic 1003 case 1

服务器浏览war文件,详解将Web项目War包部署到Tomcat服务器基本步骤-程序员宅基地

文章浏览阅读422次。原标题:详解将Web项目War包部署到Tomcat服务器基本步骤详解将Web项目War包部署到Tomcat服务器基本步骤1 War包War包一般是在进行Web开发时,通常是一个网站Project下的所有源码的集合,里面包含前台HTML/CSS/JS的代码,也包含Java的代码。当开发人员在自己的开发机器上调试所有代码并通过后,为了交给测试人员测试和未来进行产品发布,都需要将开发人员的源码打包成Wa..._/opt/bosssoft/war/medical-web.war/web-inf/web.xml of module medical-web.war.

python组成三位无重复数字_python组合无重复三位数的实例-程序员宅基地

文章浏览阅读3k次,点赞3次,收藏13次。# -*- coding: utf-8 -*-# 简述:这里有四个数字,分别是:1、2、3、4#提问:能组成多少个互不相同且无重复数字的三位数?各是多少?def f(n):list=[]count=0for i in range(1,n+1):for j in range(1, n+1):for k in range(1, n+1):if i!=j and j!=k and i!=k:list.a..._python求从0到9任意组合成三位数数字不能重复并输出

ElementUl中的el-table怎样吧0和1改变为男和女_elementui table 性别-程序员宅基地

文章浏览阅读1k次,点赞3次,收藏2次。<el-table-column prop="studentSex" label="性别" :formatter="sex"></el-table-column>然后就在vue的methods中写方法就OK了methods: { sex(row,index){ if(row.studentSex == 1){ return '男'; }else{ return '女'; }..._elementui table 性别

java文件操作之移动文件到指定的目录_java中怎么将pro.txt移动到design_mode_code根目录下-程序员宅基地

文章浏览阅读1.1k次。java文件操作之移动文件到指定的目录_java中怎么将pro.txt移动到design_mode_code根目录下

推荐文章

热门文章

相关标签