A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小鲁哥哥 于 2017-6-4 14:38 编辑

【济南中心】JavaEE就业班同步笔记第二阶段:
Oracle-part02

第一节
本节知识点
     单表查询
本节目标
    能够熟练的写出单表查询的sql语句
1.1  单表查询-条件查询和去重查询
1.1.1知识概述
1.1.1.1 条件查询
运算符有:
    =:精确查询,等号两边的值是相等的;userid=’101’
    like:模糊查询,’%条件%’;username like ‘%张%’
    and:并集,两边的条件都成立,才可以;username like ‘%张%’ and userage =30
    or:或者,两边的条件有一个成立就可以;username like ‘%张%’ or userage =30
and和or的优先级:and > or;可以使用()来改变条件判断的顺序。
    <=、>=:范围查询;sal >=100、sal <=3000
    Between .. and ..:在某个范围内;sal between 100 and 3000
    In:在某个集合内取值;username in (‘101’,’102’,’103’,’104’)
    空值查询:is null、is not null
1.1.1.2 去重查询
关键字:distinct;作用域是记录。

1.2 单表查询-排序查询和伪列查询
1.2.1 知识概述
1.2.1.1 排序查询
1、升序
    select* from T_ACCOUNT order by usenum [asc];
2、降序
    select * from T_ACCOUNT order by usernum desc;
作用域是最近的一个
1.3.1.2 伪例查询
1、rowid:该行记录的物理地址,可以通过指定rowid的值来查询记录
2、rownum:在查询结果集中rownum为结果集中每一行标识一个行号,在表记录扫描时生成。
    应用场景:分页查询、top-n问题

第二节
本节知识点
    单表聚合统计
     多表查询
        --内连接
        --外连接   
本节目标
    能够独立分析多个表之间的关系。
    能够熟练的写出多表关联的查询语句。
2.1 单表查询-聚合统计
2.1.1 知识概述
聚合函数:
SUM:求和 select sum(usenum) from t_account where year=’2012’
AVG:求平均 select avg(usenum) from T_ACCOUNT where year='2012'
MAX:最大值select max(usenum) from T_ACCOUNT where year='2012'
MIN:最小值select min(usenum) from T_ACCOUNT where year='2012'
COUNT:统计记录个数select count(*) from T_OWNERS t where ownertypeid=1
分组聚合:
    GROUP BY:select areaid,sum(money) from t_account group by areaid
分组后条件查询:
   select areaid,sum(money) fromt_account groupbyareaid having sum(money) > 169000

2.2 多表查询-内连接
2.2.1 知识概述
查询多个表中所有符合where条件的结果。
两张表
三张表:
四张表:
语法较为简单,难点是多个表之间的关联关系,以及使用哪个列关联
2.3 多表查询-外连接
2.3.1知识概述
2.3.1.1 左外连接
以左边的表为主,左边的表数据都能显示,并显示右边表中与左边的表中关联的数据。
标准的写法,使用left join 表名 on 条件:
01.png
Oracle提供的写法:使用(+)在被关联的表一方
02.png
2.3.1.2 右外连接
以右边的表为主,显示右边的表中的所有数据的同时,显示左边关联的数据。
标准的写法:使用right join 表名 on
03.png
Oracle提供的方法:使用(+)在左边的表上
04.png
2.3.2总结与补充
2.3.2.1连接的类型
Oracle8i之前的表连接:
等值连接(Equijoin)
非等值连接(Non-Equijoin)
外连接(Outer join):-->左外连接-->右外连接
自连接(Self join)
05.png
Oracle9之后新引入的连接形式(支持SQL99规范)
交叉连接(Cross join):Cross join 产生了一个笛卡尔集,其效果等同于再两个表进行连接时未使用where子句限定连接条件;
自然连接(Natural join):Natural join基于两个表中的全部同名列建立连接
06.png
使用Using子句建立连接
09.png
使用on子句建立连接

07.png
外连接(Outer join):-->左外连接-->右外连接-->全外连接

08.png

第三节
本节知识点
    子查询
        单行子查询
        多行子查询   
分页查询   
本节目标
    记忆单行操作符和多行操作符。
能够熟练的写出分页查询语句。   
3.1 子查询-where条件中的子查询
3.1.1知识概述
3.1.1.1 单行子查询
    语法:
select 字段列表
from table
where 表达式 operator (select 字段列表 from table);只能使用单行操作符
3.1.1.2 多行子查询
多行操作符:
3.2 子查询-from子句中的子查询
3.2.1 知识概述
Select 查询到的结果我们可以作为一个虚拟的表,所以我们可以在其中在进行查询
3.3 子查询-select子句中的子查询
3.3.1 知识概述
    select 子句的子查询必须为单行子查询。
3.4 分页查询
3.4.1知识概述
3.4.1.1简单分页
分页的原理,借助于oracle提供的伪列rownum,为结果集生成行号,但是rownum只能使用<=,不能使用>,所以还需要使用子查询来完成。

第四节
本节知识点
     单行函数
        字符函数
        数值函数
        日期函数        
本节目标
    能够熟练使用常用的单行函数,完成数据的处理
4.1 单行函数-字符函数
4.1.1知识概述
常用的字符函数:
    CONCAT:拼接两个字符串,相当于||
    INITCAP:将字符串的第一个字母变为大写
    LOWER/UPPER:把字符转换成小写/大
    INSTR:找出某个字符的位置
    LENGTH:字符串的长度
    LENGTHB:字符串的长度,(当字符串是中文时,得到的值有length得到的值不同)
    LPAD/RPAD:用指定的字符在左侧/右侧填充
    LTRIM/RTRIM:把左边/右边的指定字符剪掉
    TRIM:剪掉左右两边的指定字符
    REPLACE:替换字符
    SUBSTR:截取字符串
4.2 单行函数-数值函数
4.2.1知识概述
常用数值函数:
MOD:求模
ROUND:四舍五入
TRUNC:截取数值
CEIL:向上取整
FLOOR:向下取整
4.3 单行函数-日期函数
4.3.1知识概述
获取系统时间:
select sysdate from dual;
常用的日期函数:
ADD_MONTHS(date,months):在date日期上加上months个月
LAST_DAY(date):date所在月份的最后一天的日期
MONTHS_BETWEEN(date1,date2):计算两个日期之间相隔的月数
NEXT_DAY(date,’day’): 给出日期date之后下一天的日期,这里的day为星期,如: MONDAY,Tuesday等。
ROUND(date,’format’):
TRUNC(date,’format’):

第五节
本节知识点
单行函数
    转换函数
    其他函数
行列转换
本节目标
    能够熟练完成number、varchar2、date类型之间的转换
    能够使用case when then end,decode完成行列转换   
5.1 单行函数-转换函数
5.1.1知识概述
常用的转换函数:
TO_DATE():
TO_NUMBER():
TO_CHAR()  
5.2 单行函数-其他函数
5.2.1知识概述
1、空值处理函数NVL/NVL2
2、条件取值
3、case when then end
5.3 行列转换
5.3.1知识概述
case when then end的实际应用
使用case when then end能实现的都能使用decode实现

第六节
本节知识点
    分析函数
    集合运算
本节目标
能够使用rank,dens_rank,row_number完成排序
    能够使用union,union all,interact,minus完成集合的相关操作。
    使用scott用户完成练习
6.1 分析函数
6.1.1知识概述
RANK:相同的值排名相同,排名跳跃;
DENSE_RANK:相同的值排名相同,排名连续
ROW_NUMBER:返回连续的排名,无论值是否相等
6.2 集合运算
6.2.1知识概述
UNION ALL:并集,不会去掉重复记录
UNION:并集,去掉重复记录
INTERSECT:交集
MINUS:差集运算(可以用来实现分页查询)

5 个回复

倒序浏览

回帖奖励 +1

字词字词,一下
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报

回帖奖励 +1

来领奖励。
回复 使用道具 举报

回帖奖励 +1

学习一下ORACLE数据库
回复 使用道具 举报
谢谢分享~
回复 使用道具 举报
很实用不错


来自微站
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马