oracle
木子木泗
这个作者很懒,什么都没留下…
展开
-
GROUP BY后使用ROLLUP子句总结
group by后使用rollup子句总结 今天接触到了group by后带rollup子句的用法(真是丑死人了,接触ORACLE一两年了今天才知道还有这样一个用法),group by后带rollup子句这个子句所产生的功能实在是太高级了,见了就高兴。但学习完后感觉也没什么的,很简单的。下面按我的理解简单总结一下:一、如何理解group by后带rollup子句所产生的效果group by后转载 2017-08-18 16:31:49 · 10408 阅读 · 1 评论 -
oracle 学习笔记 - DECODE函数和CASE WHEN 比较
一,DECODE函数 其基本语法为:Sql代码 DECODE(value, if1, then1, if2, then2, if3, then3,…ifn, thenn, else) [sql] view plain copy print?DECODE(value, if1, then1, if2, then2, if3, then3,…ifn, thenn, else) DECODE(转载 2017-08-17 08:58:27 · 2930 阅读 · 0 评论 -
oracle 学习笔记 - 层次查询
示意图 以oracle自带的orcl数据库中scott用户下的emp表为例。empty表的字段如下,我们关心两个字段员工编号EMPNI,和员工直属上司MGE。 层次查询示意图如下,树状结构,叶子节点都为普通员工,其余节点都是领导或上司。 语法使用语法如下:要明确指出,连接关系以及开始条件(决定从树状结构的那个几点开始)select level,empno,ename,mgr fro原创 2017-08-18 15:37:22 · 242 阅读 · 0 评论 -
oracle 学习笔记 - 视图
什么是视图? ####怎么理解视图是一张虚表? 1、首先视图是一张表,那么针对表的一系列操作都可以用来操作视图。(注意:不建议通过视图对表做修改操作); 2、其次视图是一张虚表,视图中是没有数据的,视图中数据来源于创建视图时的表。 ####视图的作用? 视图一般用来简化复杂查询,不建议通过视图对表做修改操作。创建视图管理员授权# 普通用户没有创建视图原创 2017-08-21 15:46:41 · 363 阅读 · 0 评论 -
oracle 学习笔记 - 序列
什么是序列? 序列:可供多个用户来产生唯一数值的数据库对象。本质就是一个数组。 mysql数据库中的auto_increament.自动提供唯一的数值共享对象主要用于提供主键值将序列值装入内存可以提高访问效率创建序列create sequence sequenceName[inceement by n] #不长[start with n][{maxvalue n | n原创 2017-08-21 16:36:54 · 236 阅读 · 0 评论 -
oracle 学习笔记 - 索引
索引:一种独立于表的模式对象,可以存储在于表不同的磁盘或表空间。表索引被删除和损坏,不会对表产生影响,其影响只是查询的速度。索引一旦建立,Oracle管理系统会对其进行自动维护,并决定何时使用索引(可以看SQL执行计划)。用户不用再查询语句中指定使用哪个索引。删除一个表示,所有基于该表的索引会自动被删除。通过指针(rowid)加速Oracle服务器的查询速度通过快速定位数据的方法,减少磁原创 2017-08-21 17:12:59 · 293 阅读 · 0 评论 -
oracle 学习笔记 - 同义词
一句话:同义词就像起别名。 授权用户访问数据表-- 授权scott 用户访问 hr用户的表 employeesgrand select on hr.employees to scott;SQL> show userUSER 为 "SCOTT"SQL> select count(*) from hr.employees;select count(*) from hr.employees C原创 2017-08-21 17:25:22 · 293 阅读 · 0 评论 -
oracle 学习笔记 - 地址符&
&表示站位符,需为其指定值。SQL> --地址符SQL> insert into emp(empno,ename,sal,deptno) values(&empno,&ename,&sal,&deptno);输入 empno 的值: 1002输入 ename 的值: 'Mary'输入 sal 的值: 2000输入 deptno 的值: 10原值 1: insert into原创 2017-08-22 11:27:10 · 432 阅读 · 0 评论 -
oracle 学习笔记 - 一次插入多条数据
SQL> --一次插入多条数据SQL> create table emp10 as select * from emp where 1=2;表已创建。SQL> --一次性将emp中所有10号部门的员工插入到emp10中SQL> insert into emp10 select * from emp where deptno=10;已创建 3 行。SQL> select * from emp10;原创 2017-08-22 11:30:07 · 717 阅读 · 0 评论 -
oracle 学习笔记 - 伪列 rownum
level层次查询中有应用。rownum用来指示行号rownum两点注意事项SQL> --关于rownumSQL> --1. rownum永远按照默认的顺序生成SQL> -- 默认顺序是没有排序时候的顺序,即是对数据进行排序,行号仍然不变SQL> -- 即:名字为 SMITH 的记录行号任然为1。SQL> --2. rownum只能使用< <=;不能使用> >=SQL> sel原创 2017-08-19 17:12:18 · 392 阅读 · 0 评论 -
oracle 学习笔记 - 临时表
临时表的创建方式:SQL> 1. 手动: create global temporary table *****SQL> 2. 自动:排序SQL> 特点:当事务或者会话结束的时候,表中自动删除--SQL> --基于会话的临时表SQL> create global temporary table temptest1 2 (tid number,tname varchar2(20)) 3原创 2017-08-19 17:42:31 · 303 阅读 · 0 评论 -
oracle学习笔记
基础SQL> --清屏SQL> host clsSQL> --当前用户SQL> show userUSER 为 "SCOTT"SQL> --当前用户的表SQL> select * from tab;SQL> --设置行宽SQL> show linesizelinesize 80SQL> set linesize 150SQL> --设置列宽SQL> col ename form翻译 2017-08-19 09:58:09 · 570 阅读 · 0 评论 -
oracle 学习笔记 - 查看 SQL 执行计划
查看SQL执行计划: 步骤: 1. 解释 explain plan for * ; 2. 查看 select * from table(dbms_xplan.display);# 解释SQL> explain plan for select * from emp;# 查看上一条解释后的sql执行计划,(固定写法)SQL> select * from table(d原创 2017-08-21 11:37:19 · 608 阅读 · 0 评论 -
oracle 学习笔记 - 创建和管理表
伪列rowidrowid是行地址,用来指示记录在数据文件中的地址。select rowid,empno,ename,sal from emp;ROWID EMPNO ENAME SAL原创 2017-08-21 08:41:29 · 219 阅读 · 0 评论 -
oracle 学习笔记 - 数据库事务
部分组成一个或者多个DML语句一个DDL(Date Definition Language)语句一个DCL(Date Control Language)语句开始结束标志以第一个DML语句的执行作为开始以下面的其中之一作为结束显示结束:commit rollback隐式结束(自动提交):DDL语言,DCL语言,exit(事务正常退出)隐式回滚(系统异常终了):关闭窗口,死机,掉电原创 2017-08-20 09:09:31 · 202 阅读 · 0 评论 -
oracle 学习笔记 - 安装InstanceClient
官网下载最新的InstanceClient下载最新的InstanceClient,并解压。 配置环境变量解决中文乱码添加如下环境变量:为了解决cmd中文显示乱码问题 链接成功cmd,测试sqlplus,可以了。翻译 2017-08-01 17:55:46 · 10143 阅读 · 1 评论 -
oracle 学习笔记 - commit和rollback
COMMIT 是提交你的DML操作.ROLLBACK 是取消你的DML操作. DML操作主要指一些插数据\更新数据的操作,你的操作在没有COMMIT和ROLLBACK前,都还在本机的SESSION中,还没有更新至数据库。1、首先commit和rollback是在进行insert、update、delete语句完成后需要做的操作(即对表中的记录进行修改),而select则不需要。为了防止你的操作有误原创 2017-08-20 08:41:23 · 4751 阅读 · 0 评论 -
oracle 学习笔记 - wm_concat 函数
SQL> --行转列SQL> -- wm_concat(varchar2) 组函数SQL> select deptno,wm_concat(ename) nameslist 2 from emp 3 group by deptno;SQL> col nameslist for a60SQL> select deptno,wm_concat(ename) nameslist 2原创 2017-08-19 20:44:08 · 255 阅读 · 0 评论 -
oracle 学习笔记 - 相关子查询
相关子查询的执行顺序一般先执行子查询,再执行主查询;但相关子查询例外。相关子查询的概念SQL> --相关子查询:将主查询中的值 作为参数传递给子查询具体使用SQL> select empno,ename,sal,(select avg(sal) from emp where deptno=e.deptno) avgsal 2 from emp e 3 where sal > (selec原创 2017-08-19 19:57:52 · 302 阅读 · 0 评论 -
oracle 学习笔记 - PL/SQL基本语法
开启输出功能SQL> set serveroutput on第一个PL/SQL程序SQL> declare 2 3 begin 4 dbms_output.put_line('hello word'); 5 end; 6 /hello wordPL/SQL 过程已成功完成。原创 2017-08-22 10:08:24 · 2215 阅读 · 0 评论