Oracle
houyanhua1
这个作者很懒,什么都没留下…
展开
-
Oracle 学习笔记
sqlplus scott/tiger@192.168.2.3/数据库名 --连接数据库spool c:\命令记录(日志).txt --将cmd中的内容保存到指定文件中spool offshow user --显示当前登录用户select * from tab; --当前用户的所有表 (Oracle中表属于用户,用户属...原创 2018-09-03 12:10:13 · 119 阅读 · 0 评论 -
Oracle 存储过程,java中调用存储过程/存储函数
Oracle驱动(Jar包):https://pan.baidu.com/s/1C2v2LDE8Jix3KARrjmjKww 密码:lmedjava不能直接调用PL/SQL程序;java可以调用存储过程、存储函数。 TestOracle.java(测试类,java中调用存储过程/存储函数):package demo;import java.sql.CallableStat...原创 2018-09-05 21:36:50 · 235 阅读 · 0 评论 -
Oracle 存储过程/存储函数,out参数返回集合(游标),包头(package),包体
存储过程 out参数返回集合(游标),放在包中:/*1、查询某个员工的所有信息 ---> out参数太多2、查询某个部门中的所有员工信息 ----> 返回的是集合*/--查询某个部门中的所有员工信息 ----> 返回的是集合(整个一条记录)--包头(打包,作为一个整体编译)create or replace package mypackage is...原创 2018-09-05 21:32:42 · 3178 阅读 · 0 评论 -
Oracle 存储过程/存储函数,out参数(输出多个参数值)
存储过程(存储函数):指存储在数据库中供所有用户程序调用的子程序(PL/SQL程序)。存储过程没有返回值,存储函数有返回值(return语句,要有返回值的类型)。区别:存储函数可以有返回值,而存储过程没有返回值。存储过程的out参数也可以实现返回值,所以存储过程可以替代存储函数。(存储函数是为了兼容低版本) 存储过程 out参数:--查询某个员工的姓名 薪水和职位crea...原创 2018-09-05 17:29:28 · 24475 阅读 · 3 评论 -
Oracle 存储函数
存储过程(存储函数):指存储在数据库中供所有用户程序调用的子程序(PL/SQL程序)。存储过程没有返回值,存储函数有返回值(return语句,要有返回值的类型)。区别:存储函数可以有返回值,而存储过程没有返回值。一般原则:如果只有一个返回值,用存储函数;否则用存储过程。存储函数:--查询某个员工的年收入(月薪*12+奖金)create or replace functio...原创 2018-09-05 16:04:23 · 274 阅读 · 0 评论 -
Oracle 存储过程
java不能直接调用PL/SQL程序;java可以调用存储过程、存储函数。存储过程(存储函数):指存储在数据库中供所有用户程序调用的子程序(PL/SQL程序)。存储过程没有返回值,存储函数有返回值。 存储过程的创建:create or replace procedure 存储过程名as --说明部分begin dbms_output.put_line('Hello...原创 2018-09-05 15:41:23 · 127 阅读 · 0 评论 -
Oracle PL/SQL,实例
实例一:统计各年份的入职员工数--统计各年份的入职员工数declare --定义光标 cursor cemp is select to_char(hiredate,'yyyy') from emp; phiredate varchar2(4); --每年入职的人数 count80 number := 0; count81 number := 0; ...原创 2018-09-05 14:53:37 · 198 阅读 · 0 评论 -
Oracle PL/SQL,变量,循环,游标(光标),例外(异常)
PL/SQL程序比Java程序(JDBC)运行效率高。变量(引用型变量、记录型变量):set serveroutput on --打开控制台输出功能--PL/SQLdeclare --说明部分begin --程序 dbms_output.put_line('Hello World');end;/--引用型变量。使用指定表的指定列的类型declare --...原创 2018-09-04 22:23:23 · 669 阅读 · 0 评论 -
Oracle rownum,分页,临时表,相关子查询,行转列函数
--rownum 行号(伪列)关于rownum1、rownum永远按照默认的顺序生成 (可以先进行子查询,在子查询的基础上添加行号rownum来改变子查询中的默认行号的顺序)2、rownum只能使用<、<=;不能使用>、>= (因为rownum永远从1开始计数)select rownum,empno,ename,salfrom (select * ...原创 2018-09-04 15:59:39 · 597 阅读 · 0 评论 -
Oracle 数据库对象,视图,序列,索引,同义词
数据库对象:表、视图、序列、索引、同义词视图是一个虚表(简化复杂的查询操作,并不存储数据)create or replace view empinfoviewasselect e.empno,e.ename,e.sal,e.sal*12 annsal,d.dnamefrom emp e,dept dwhere e.deptno=d.deptnowith read on...原创 2018-09-04 14:35:33 · 270 阅读 · 0 评论 -
Oracle 子查询创建表,修改表,回收站,闪回删除,约束
--管理员登录sqlplus sys/密码 as sysdba --只有管理员可以使用,密码认证sqlplus 错误用户名/错误密码 as sysdba --主机认证(登录操作系统的用户必须是数据库的管理员)select rowid,empno,ename,sal from emp;select * from emp where rowid='AAAMfPAAEAAA...原创 2018-09-04 10:57:00 · 266 阅读 · 0 评论 -
Oracle 学习笔记,批量插入,truncate,去掉碎片,事务
--一次性插入多条记录(批量插入)。 不用写values子句,用子查询代替values子句。(子查询的列要和插入的表的列保持对应)insert into emp10 select * from emp where deptno=10; --批量插入,如果插入海量数据效率低海量插入数据:1、数据泵(PLSQL程序) dbms_datapump(程序包)2、SQL*Load...原创 2018-09-03 22:32:47 · 1402 阅读 · 0 评论 -
Oracle 集合运算
集合运算注意的问题: (union并集、intersect交集、minus差集)1、参与运算的各个集合必须列数相同 且类型一致2、采用第一个集合作为最后结果的表头3、order by永远在最后4、括号--SQL优化 尽量不要使用集合运算(多次查询数据库,效率低)select * from emp where deptno=10unionselect * from emp...原创 2018-09-03 21:19:01 · 173 阅读 · 0 评论 -
Oracle 子查询
子查询注意的问题:1、括号2、合理的书写风格3、可以在主查询的where select having from 后面使用子查询 (主查询select后面的子查询必须是单行查询)4、不可以在group by使用子查询5、主查询和子查询可以不是同一张表;只有子查询返回的结果 主查询可以使用即可6、一般不在子查询中排序;但在top-n分析问题中 必须对子查询排序7、一般先执行子查询...原创 2018-09-03 20:18:59 · 138 阅读 · 0 评论 -
Oracle 外链接,自连接,层次查询
select d.deptno 部门号,d.dname 部门名称,count(e.empno) 人数from emp e,dept dwhere e.deptno(+)=d.deptnogroup by d.deptno,d.dname; --外链接。 e.deptno(+)=d.deptno表示左外连接select e.ename 员工姓名,b.ename 老板姓名fr...原创 2018-09-03 17:04:54 · 574 阅读 · 0 评论 -
Oracle 多行函数,group by增强
多行函数:多行函数(组函数,分组函数)avg(),count(),max(),min(),sum()多行函数会自动滤空(忽略值为null的记录。例如:avg()函数会先忽略掉值为null的记录)select deptno,job,sum(sal) from emp group by deptno,job; --查询的项,必须出现在group by子句中;group by子句中...原创 2018-09-03 15:19:27 · 366 阅读 · 0 评论 -
Oracle 单行函数,学习笔记
单行函数:1.字符函数:select lower('Hello World') 转小写,upper('Hello World') 转大写,initcap('hello world') 首字母大写 from dual;select substr('Hello World',4,3) 子串 from dual; --substr('xxx',4,3)从第4位开始截取字符串,取3个...原创 2018-09-03 12:12:03 · 179 阅读 · 0 评论 -
Oracle 触发器,trigger
创建触发器:--每当成功插入新员工后,自动打印“成功插入新员工”create trigger firsttriggerafter inserton 表名declarebegin dbms_output.put_line('成功插入新员工');end;/创建触发器(语句级触发器。实现安全性检查的功能):/*实施复杂的安全性检查禁止在非工作时间 插...原创 2018-09-05 22:25:57 · 166 阅读 · 0 评论