数据库(Oracle),你至少需要知道这些
来源:互联网 发布:gb1229厚度 javascript 编辑:程序博客网 时间:2024/05/05 09:13
本文以基本概念为主,每个概念都可以单独聊很久
NULL概念
NULL表示不可用,未赋值,不知道,不适用,最重要的,它既不是0也不是空格。
进行程序开发的初期,对数据库概念中最先要了解清楚的就是NULL。
起个别名
刚进行数据库学习要养成一个好习惯,就是善于起别名。类似下面:
SELECT last_name AS name,commission_pct commFROM employees;
其中的name和comm就是别名。这有助于SQL的阅读和操作。
Oracle数据类型的显式转换函数
这是在数据库开发过程中最经常用到的单行函数。
TO_CHAR()函数
- 可以进行从数字到字符串的转换
- 对数字(金钱)进行格式化操作
- 对日期进行按需提取(TO_CHAR(SYSDATE,’YYYY’))
NVL函数是实际开发中非常常用的单行函数,包括其增强版NVL2。
多表关联查询
Oracle中比较特别的是它的外连接。
SELECT table1.column,table.columnFROM table1,table2WHERE table1.column(+)=table2.column;
上边实例为左外连接,所以注意外连接使用的是‘+’号。
分组计算函数
常用的分组函数如下:
- SUM
- AVG
- COUNT
- MAX
- MIN
不常用的分组计算函数有两个:
- STDDEV (求标准差)
- VARIANCE(求方差)
通常分组函数跟着GROUP BY,使用GROUP BY语句很重要的一个注意事项:SELECT查询语句中同时选择分组计算函数表达式和其他独立字段时,其他字段必须出现在GROUP BY语句中,否则不合法。 翻译成人话就是,SELECT后除了分组函数外的字段,要在GROUP BY后边。
集合操作
并集,交集,差集是大部分人初中就很熟悉的概念。这里提醒一点,进行集合操作时合并的字段必须一致,否则无法进行集合操作。
- UNION
- UNION ALL
- INTERSECT
- MIMUS
GROUP BY
GROUP BY简单用法不用赘述,说几个增强版用法。
- GROUP BY ROLLUP
- GROUP BY CUBE
- GROUPING
- GROUPING SETS
具体每个该怎么用,留到后边单独来讲。可以回想这些有什么区别及它们的用法。
子查询
子查询可以使用在SELECT、FROM、WHERE等中,非常灵活。可以想想自己的SQL中是不是经常使用。
EXISTS与NOT EXISTS操作在处理‘存在’关系时非常常用和好用,而且效率会高一些。
在一些DML语句中也可以插入子查询,比如UPDATE、DELETE等。
WITH语句会让子查询看上去更加有逻辑,当多次使用一张表时,不用反复查询,使SQL得以简化,并且会提高数据库的性能。
递归查询
关键字CONNECT BY PRIOR,递归查询主要用在表中存在‘上下级’关系。可以查询‘树’关系。并且配合LEVEL可以显示其层级数,配合LPAD可以显示‘树’状层次。
分组排序
通常分组排序使用GROUP BY与ORDER BY的配合。这里介绍另外三种:
- RANK() OVER(PARTITION BY … ORDER BY …)
- DENSE_RANK() OVER(PARTITION BY … ORDER BY …)
- ROW_NUMBER() OVER(PARTITION BY … ORDER BY …)
通过这三个函数基本可以应付大部分排序。
以上为数据库(偏Oracle)中基本要掌握的知识点,后续会详细的解释有意思的数据库用法。
- 数据库(Oracle),你至少需要知道这些
- JAVA8你只需要知道这些(1)
- JAVA8你只需要知道这些(2)
- JAVA8你只需要知道这些(3)
- JAVA8你只需要知道这些(4)
- 用好你的pycharm 需要知道这些操作(windows)
- AI用于医学影像,你需要知道这些
- web的监听器,你需要知道这些...
- 关于git你需要知道这些
- 手机端切图你需要知道这些
- 想开源你的代码?你需要先知道这些
- 我知道你和我一样都需要这些
- 关于三星最新手机Galaxy S5 你需要知道这些
- 关于 SSL 及 CA 证书,你可能需要知道这些
- c++11 你需要知道这些就够了
- 做好软件测试你还需要知道这些
- c++11 你需要知道这些就够了
- 关于NFC和公交一卡通,你需要知道这些
- 基础/Java基础/(1)Java简介及开发环境配置
- ros
- 捷联惯导算法--体会与心得
- demo
- JeeSite的Excel导入、导出、支持大数据量,应用annotation最小化配置
- 数据库(Oracle),你至少需要知道这些
- soot数据流 -- 指向分析(points-to)
- 解方程
- java基本知识归集2
- 一起来写个酷炫的水波纹浪啊浪界面
- 20161130
- 从面试开始_我讨厌的排序
- mybatis多对多关联
- 野指针和避免野指针的方法