1、使用CMD命令行连接Oracle数据库应该跟连接MySQL数据库差不多,因此这里简单介绍下
2、命令:conn 用户名/密码@数据库所在IP:端口号/实例名 ⑴因为在Oracle中用户对应数据库,因此用不同的用户名来连接到不同的数据库
例0:
C:\Users\Administrator>sqlplus/nolog SQL*Plus: Release 11.2.0.1.0 Production on 星期一 9月 14 20:10:51 2020 Copyright (c) 1982, 2010, Oracle. All rights reserved. SQL> conn zh/123456@127.0.0.1:1521/orcl 已连接。 SQL>
1、在SQL中可以使用ORDER BY 对查询结果进行排序:这里跟MYSQL中的语法是一样的
2、完整语法:SELECT 列名 FROM 表名 where 过滤条件 ORDER BY 排序列名1|排序列名2 ASC|DESC
3、参数: ⑴排序列名1|排序列名2:表示根据哪些列来进行排序,可以根据一个或多个 ⑵ASC:表示按照ASCII升序排列(这个是默认的排序方式,可以不指定) ⑶DESC:按照降序排列
例1:
例1_1:默认排序(升序)
例1_2:降序
例1_3:多个排序
注: 当存在多个排序列名时:如果第一个参数多个行具有相同的值时才会按第二个参数排序,如果第一个参数的值都是唯一的,则就不会按第二个参数排序了
1、前面在学习MySQL时,介绍过一个LIMIT子句:这个子句在MYSQL中用于限制查询结果的返回条数 ⑴如:满足查询条件的数据有很多条,那么可以使用LIMIT子句来限制实际返回结果的条数
2、但是:在Oracle没有LIMIT子句 ⑴Oracle:从12c版本开始,才可以使用FETCH子句限制返回行数
3、那么在12c之前该怎样来限制查询结果的条数呢?可以使用ROWNUM!!
4、对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推 ⑴这个伪字段可以用于限制查询返回的总行数,且rownum不能以任何表的名称作为前缀 ⑵这个rownum子句还是有点特殊的,感觉不是很好理解,涉及到的有点多,具体的可以自己百度下
例2:只返回第一条数据
注:关于限制查询结果条数,可以看https://blog.csdn.net/mitedu/article/details/3584399
1、SELECT查询的结果作为另外一个SELECT、UPDATE或DELETE语句的条件,它的本质就是在WHERE条件中嵌套的一个条件表达式
2、子查询是嵌套在SQL SELECT语句中的另一个SELECT语句 ⑴子查询(内查询)在主查询执行之前执行(子查询必须在圆括号中) ⑵主查询(外查询)使用子查询的结果
3、Oracle子查询分为两种:一种是单行子查询,一种是多行子查询(还有种为空) ⑴单行子查询:单行子查询的内层SELECT语句只返回一行数据,也就是说嵌入在其他Sql语句中的那个select查询值返回一行数据 ⑵多行子查询:多行子查询就是嵌入在其他Sql语句中的SELECT查询返回多行数据
4、注意子查询返回多行:外层SELECT的过滤条件只能使用IN关键字,不能使用'=' ⑴'='号表示一对一,in表示处于一个范围(用来处理子查询返回多行记录)
5、子查询一般用于多表查询:多个表之间有关联字段,通过一个表的关联字段来查询另一个表的数据
单表子查询:即所有查询都是在一个表中进行的 注:以下查询基于以下数据
单行子查询:单行子查询的内层SELECT语句只返回一行数据,也就是说嵌入在其他Sql语句中的那个select查询值返回一行数据
例4:
例4_1:
例4_2:
例4_3:
1、多行子查询:多行子查询就是嵌入在其他Sql语句中的SELECT查询返回多行数据
2、如果子查询返回的是多行,那么主查询的过滤条件就只能使用in了,不能使用等于、大于、小于等
例4_4:错误示例
例4_5:
1、多表子查询:就是两个表之间有一定的字段联系,通过一个表来查询另一个表的数据
2、多表子查询中,子查询返回的数据也可以是单行,也可以是多行
例5:单行子查询
例5_1:多行子查询
1、格式:NVL(expr1,expr2)
2、作用:可以用在判断查询结果是否为空(指的是查询列值为null,而不是说无查询结果) ⑴如果第一个参数(expr1:表达式)的值为空,那么返回第二个参数(expr2:表达式)的值(第一个参数始终是表查询字段) ⑵如果第一个参数(表达式)的值不为空,那么返回第一个参数(表达式)本来的值 ⑶两个参数类型可以为任意类型,或NULL 例6:
例6_1:
1、格式:NVL2(expr1,expr2, expr3)
2、作用:与NVL函数类似,只是有三个参数 ⑴如果该函数的第一个参数不为空,那么返回第二个参数的值 ⑵如果该函数的第一个参数的值为空,那么返回第三个参数的值 例7:
例7_1: