
Oracle
文章平均质量分 65
Oracle数据库的相关笔记、思考、知识
java阳旭
一名热爱编程的95后,梦想用代码改变世界!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Oracle数据库学习笔记(二十八)--在Java项目开发中使用ojdbc连接Oracle数据库
选择正确的 Jar 包Oracle 10g 选择使用 ojdbc14.jarOracle 11g 选择使用 ojdbc6.jar将 Jar 包安装到本地 Maven 仓库中具体方法参考我之前发的文章:Maven丨使用IDEA将本地的ojdbc14.Jar包添加到个人仓库中创建 Maven 工程在IntelliJ IDEA 中创建 Maven 工程pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns=原创 2020-05-22 17:21:36 · 1654 阅读 · 2 评论 -
Oracle数据库学习笔记(二十七)--触发器实现主键自增
分析在用户做插入操作的之前,拿到即将插入的数据,给该数据中的主键列赋值。使用的行级触发器。实现1、创建触发器create or replace trigger auidbeforeinserton personfor each rowdeclarebegin select s_person.nextval into :new.pid from dual;end;2、查询 person 表数据SELECT *FROM person;3、使用 auid 实现主键自增in原创 2020-05-22 17:16:51 · 375 阅读 · 0 评论 -
Oracle数据库学习笔记(二十六)--触发器的概念和分类
触发器的概念触发器就是制定一个规则,当我们做增删改操作的时候,只要满足该规则,自动触发,无需调用。触发器的分类语句级触发器:不包含有 for each row 的触发器。行级触发器:包含有 for each row 的就是行级触发器。加 for each row 是为了使用 :old 或者 :new 的对象/一行记录。在触发器中触发语句与伪记录变量的值触发语句:old:newInsert所有字段都是空 ( null )将要插入的数据Update更新以前该行原创 2020-05-22 17:16:12 · 371 阅读 · 0 评论 -
Oracle数据库学习笔记(二十五)--存储函数
存储过程和存储函数的区别1、语法区别关键字不一样,存储函数比存储过程多了两个 return。2、本质区别存储函数有返回值,而存储过程没有返回值。如果存储过程想实现有返回值的业务,我们就必须使用 out 类型的参数。即便是存储过程使用了 out 类型的参数,其本质也不是真的有了返回值,而是在存储过程内部给 out 类型参数赋值,在执行完毕后,我们直接拿到输出类型参数的值。我们可以使用存储函数有返回值的特性,来自定义函数,而存储过程不能用来自定义函数。创建存储函数语法create or repl原创 2020-05-22 17:15:23 · 3421 阅读 · 0 评论 -
Oracle数据库学习笔记(二十四)--存储过程和out类型参数
存储过程概念存储过程就是提前把已经编译好的一段 PL/SQL 语言,放置在数据库端,可以直接被调用。这一段 PL/SQL 一般都是固定步骤的业务。创建存储过程语法:create [or replace] PROCEDURE 过程名[(参数名 in/out 数据类型)]ASbeginPLSQL子程序体;End;或者create [or replace] PROCEDURE 过程名[(参数名 in/out 数据类型)]isbeginPLSQL子程序体;End 过程名;学习笔记1原创 2020-05-22 17:14:10 · 3612 阅读 · 0 评论 -
Oracle数据库学习笔记(二十三)--PL/SQL中的游标
游标的概念类似于 Java 中的集合,可以存放多个对象,多行记录。学习笔记1、输出 emp 表中所有员工的姓名declare cursor c1 is select * from emp; emprow emp%rowtype; --记录型变量begin open c1; loop fetch c1 into emprow; exit when c1%notfound; dbms_output.put_line(empro原创 2020-05-22 17:13:32 · 4031 阅读 · 0 评论 -
Oracle数据库学习笔记(二十二)--PL/SQL中的循环
PL/SQL 中的 loop 循环用三种方式输出 1 到 10 这十个数字while 循环declare i number(2) := 1;begin while i<11 loop dbms_output.put_line(i); i := i+1; end loop; end;exit 循环【重点掌握】declare i number(2) := 1;begin loop exit when i>10; dbms_o原创 2020-05-22 17:13:00 · 2730 阅读 · 0 评论 -
Oracle数据库学习笔记(二十一)--PL/SQL中的if判断
案例输入小于 18 的数字,输出未成年;输入大于 18 小于 40 的数字,输出中年人;输入大于 40 的数字,输出老年人declare i number(3) := ⅈbegin if i<18 then dbms_output.put_line('未成年'); elsif i<40 then dbms_output.put_line('中年人'); else dbms_output.put_line('老年人'); end if原创 2020-05-22 17:12:17 · 2868 阅读 · 0 评论 -
Oracle数据库学习笔记(二十)--PL/SQL编程语言定义变量
PL/SQL 编程语言概念PL/SQL 编程语言是对 SQL 语言的扩展,使得 SQL 语言具有过程化编程的特性,比一般的过程化编程语言更加灵活高效。PL/SQL 编程语言主要用来编写存储过程和存储函数等。PL/SQL 程序语法:DECLARE 说明部分 (变量说明,游标申明,例外说明〕BEGIN 语句序列 (DML语句〕…EXCEPTION 例外处理语句END;学习笔记声明方法DECLARE i number(2) := 10; s varchar2(10) := '小原创 2020-05-22 17:11:16 · 3175 阅读 · 0 评论 -
Oracle数据库学习笔记(十九)--索引
索引的概念索引就是在表的列上构建一棵二叉树,达到大幅度提高查询效率的目的,但是索引会影响增删改的效率。比如说,我们将表看作是书,一开始这些书都是没有目录的,如果要查找某一段文字,需要一页一页的去翻,查询效率特别低。为了提高查找的效率,我们就在每本书上添加一个目录,而这个目录是用二叉树形式存储的,这样查询的效率就会大幅度提高。书中的目录就是表中的索引。但是索引会影响增删改的效率,因为每次执行增、删、改的操作后,都会重新去构建一棵索引的二叉树。单例索引单列索引是基于单个列所建立的索引。1、创建单列索引原创 2020-05-22 17:10:23 · 2801 阅读 · 0 评论 -
Oracle数据库学习笔记(十八)--视图
视图概念视图就是提供一个查询的窗口,里面没有存放数据,所有数据都来自于原表。视图的作用:**视图可以屏蔽掉一些敏感字段。**比如为了防止员工看到工资,可以创建一个视图,把工资那一列屏蔽掉。**保证总部和分部数据及时统一。**比如总部和分部共同销售一种商品,总部这边销售一件出去了,分部通过查询视图可以及时更新商品的库存数据。如果分部与总部各自查询独立的表,就会发生总部库存卖空后,分部这边依旧接单的情况,而总部创建一个视图供分部使用就可以避免这种情况的发生。学习笔记1、创建视图必须有 dba原创 2020-05-22 17:09:27 · 2807 阅读 · 1 评论 -
Oracle数据库学习笔记(十七)--分页查询
rownum行号的概念当我们做 SELECT 操作的时候,每查询出一行记录,就会在该行上加上一个行号,行号从 1 开始,依次递增,不能跳着走。学习笔记emp 表工资倒序排列后,每页五条记录,查询第二页SELECT *FROM ( SELECT rownum AS rn, tt.* FROM ( SELECT * FROM emp ORDER BY sal DESC ) tt WHERE rownum < 11)WHERE rn > 5;可以将分页查询总结成一原创 2020-05-22 17:08:50 · 3278 阅读 · 0 评论 -
Oracle数据库学习笔记(十六)--子查询
子查询返回一个值查询出工资和 SCOTT 一样的员工信息SELECT *FROM empWHERE sal IN ( SELECT sal FROM emp WHERE ename = 'SCOTT');分步解析:1、先查询出 SCOTT 的工资SELECT salFROM empWHERE ename = 'SCOTT'注意:这里的员工姓名是区分大小写的。虽然上述语句那么长,但是实际上它就是一个值。2、把上面的语句用括号括起来,再查询出工资和 SCOTT 一样的员工信息原创 2020-05-22 17:08:04 · 4621 阅读 · 0 评论 -
Oracle数据库学习笔记(十五)--自连接
自连接其实就是站在不同的角度把一张表看成多张表。1、查询出员工姓名,员工领导姓名SELECT e1.ename, e2.enameFROM emp e1, emp e2WHERE e1.mgr = e2.empno;此时可将 e1 表看成是员工表,e2 表看成是领导表,因为 e1 的领导是 e2 的员工编号。2、查询出员工姓名,员工部门名称,员工领导姓名,员工领导部门名称SELECT e1.ename, d1.dname, e2.ename, d2.dnameFROM emp e1, em原创 2020-05-22 17:07:24 · 3802 阅读 · 0 评论 -
Oracle数据库学习笔记(十四)--多表查询中的一些概念
1、笛卡尔积通俗点说就是就是两张表的数据进行相乘,一张表的所有记录一一和另一张表的所有记录做匹配。SELECT *FROM emp e, dept d;当两张表的数据量比较大,又需要连接查询时,应尽量避免笛卡尔积,因为会增加内存的开销,而且使用笛卡尔积产生的数据大多是没有用的。2、等值连接SELECT *FROM emp e, dept dWHERE e.deptno = d.deptno;3、内连接SELECT *FROM emp e INNER JOIN dept d ON原创 2020-05-22 17:06:37 · 4435 阅读 · 0 评论 -
Oracle数据库学习笔记(十三)--分组查询
学习笔记1、查询出每个部门的平均工资SELECT e.deptno, AVG(e.sal)FROM emp eGROUP BY e.deptno;分组查询中,出现在 GROUP BY 后面的原始列,才能出现在 SELECT 后面,没有出现在 GROUP BY 后面的列,想在 SELECT 后面,必须加上聚合函数。聚合函数有一个特性,可以把多行记录变成一个值。2、查询出平均工资高于 2000 的部门信息SELECT e.deptno, AVG(e.sal) asalFROM emp eGR原创 2020-05-21 18:26:03 · 3776 阅读 · 0 评论 -
Oracle数据库学习笔记(十二)--多行函数(聚合函数)
概念作用于多行,返回一个值。学习笔记1、查询总数量SELECT COUNT(1)FROM emp;COUNT(1) 和 COUNT(*) 底层都是一样的,推荐使用 COUNT(1)。当然,填写某个具体列名,比如 COUNT(EMPNO) 也是可以的。2、查询工资总和SELECT SUM(sal)FROM emp;3、查询最大工资SELECT MAX(sal)FROM emp;4、查询最低工资SELECT MIN(sal)FROM emp;5、查询平均工资SELECT原创 2020-05-21 17:57:20 · 3710 阅读 · 0 评论 -
Oracle数据库学习笔记(十一)--条件表达式
通用写法条件表达式的通用写法在 MySQL 和 Oracle 均可正常使用。建议使用通用写法,保证可重用性。因为一旦公司因为某些原因要更换数据库,使用通用写法移植成本会适当降低。1、给 emp 表中员工起中文名SELECT e.ename , CASE e.ename WHEN 'SMITH' THEN '史密斯' WHEN 'ALLEN' THEN '艾伦' WHEN 'WARD' THEN '沃德' ELSE '无名' ENDFROM emp e;如果想要让其余的名字变为原创 2020-05-21 17:42:24 · 3926 阅读 · 0 评论 -
Oracle数据库学习笔记(十)--单行函数
单行函数的概念作用于一行,返回一个值。字符函数1、小写变大写SELECT upper('yes')FROM dual;结果:YES2、大写变小写SELECT lower('YES')FROM dual;结果:yes数值函数1、四舍五入,后面的参数表示保留的位数SELECT round(26.18, 1)FROM dual;结果:26.2SELECT round(26.14, 1)FROM dual;结果:26.1SELECT round(26.16, -1)F原创 2020-05-21 17:13:52 · 3719 阅读 · 0 评论 -
Oracle数据库学习笔记(九)--scott用户
SCOTT 用户概述SCOTT 是在 Oracle 数据库中,一个示例用户的名称,默认口令为 tiger,其作用是为初学者提供一些简单的应用示例。其中的表和表间的关系演示了关系型数据库的一些基本原理,Oracle 举例说明时一般都用这个用户,一些关于 Oracle 的书、教材上一般也都用这个用户来讲解。SCOTT 用户下的表结构[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Yvgatn7e-1590049388576)(D:\2014年javaEE技术全集整理\博客笔记原创 2020-05-21 16:25:39 · 5444 阅读 · 0 评论 -
Oracle数据库学习笔记(八)--序列的使用
序列的概念在很多数据库中都存在一个自动增长的列,如果现在要想在 Oracle 中完成自动增长的功能,则只能依靠序列完成。所有的自动增长操作,需要用户手工完成处理。简单来说,序列主要用来给主键赋值使用。序列默认从 1 开始,依次递增。序列实际上不属于任何一张表,但是可以和表做逻辑上的绑定。学习笔记1、序列创建语法CREATE SEQUENCE 序列名[INCREMENT BY n][START WITH n][{MAXVALUE/ MINVALUE n|NOMAXVALUE/ NOMINVAL原创 2020-05-21 15:50:51 · 3968 阅读 · 0 评论 -
Oracle数据库学习笔记(七)--事务及数据的增删改查
事务的概念事务是逻辑上的一组操作,要么都执行,要么都不执行。事务最经典也经常被拿出来说的例子就是转账了。假如小明要给小红转账 1000 元,这个转账会涉及到两个关键操作就是:将小明的余额减少 1000 元,将小红的余额增加 1000 元。万一在这两个操作之间突然出现错误,比如银行系统崩溃,导致小明余额减少而小红的余额没有增加,这样就不对了。事务就是保证这两个操作要么都成功,要么都失败。事务的四大特性1、原子性(Atomicity):事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全都完成,原创 2020-05-21 11:35:34 · 4067 阅读 · 0 评论 -
Oracle数据库学习笔记(六)--数据类型介绍及表的创建
一、Oracle 数据类型No数据类型描述1VARCHAR, VARCHAR2表示一个字符串2NUMBERNUMBER(n)表示一个整数,长度是n3NUMBERNUMBER(m,n):表示一个小数,总长度是m,小数是n,整数是m-n4DATE表示日期类型5CLOB大对象,表示大文本数据类型,可存 4 G6BLOB大对象,表示二进制数据,可存 4 G比较常用的是 VARCHAR2 ,可变长度的字符串。如果实际所存的字符串长度比原创 2020-05-21 10:58:48 · 3827 阅读 · 0 评论 -
Oracle数据库学习笔记(五)--表空间创建用户及用户授权
Oracle数据库学习笔记(五)–表空间创建用户及用户授权1、使用PLSQL Developer 连接到数据库system 用户为 DBA 角色,拥有全部特权,是系统最高权限。为了方便学习,先使用 system 用户进行登录。Normal – 普通身份,普通程序员选择这个即可SYSDBA – 系统管理员身份SYSDBA 权限:启动和关闭操作更改数据库状态为打开/装载/备份,更改字符集创建数据库创建服务器参数文件 SPFILE日志归档和恢复包含了“会话权限”权限SYSOPER –原创 2020-05-21 09:52:23 · 2299 阅读 · 0 评论 -
Oracle数据库学习笔记(四)--Oracle体系结构
1、数据库Oracle 数据库是数据的物理存储。这就包括(数据文件 ORA 或者 DBF 、控制文件、联机日志、参数文件)。其实 Oracle 数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库。可以看作是 Oracle 就只有一个大数据库。数据库侧重于硬件。2、实例一个 Oracle 实例(Oracle Instance)有一系列的后台进程(Backguound Processes)和内存结构(Memory Structures)组成。一个数据库可以有 n 个实例。一般情况下,在公原创 2020-05-21 08:54:27 · 1699 阅读 · 0 评论 -
Oracle数据库学习笔记(三)--安装PLSQL连接数据库
Oracle数据库学习笔记(三)–安装PLSQL连接数据库前期准备PLSQL Developer12(64bit)instantclient-basic-windows.x64-12.2.0.1.0安装PLSQL安装过程十分简单,无脑下一步即可。不要安装到有括号的目录下,否则会出现连不上数据库的情况,安装目录也不要有中文和空格。配置 PLSQL1、在弹出的登录窗口中,点 Cancel 。2、 Configure -> Preferences3、把客户端工具 i原创 2020-05-20 22:15:23 · 2326 阅读 · 2 评论 -
Oracle数据库学习笔记(二)--在服务端安装Oralce数据库
前期准备Oracle Database 10g Release 2 (10.2.0.1.0)安装过程1、打开 setup.exe 出现如下的安装界面,输入 数据库口令 和 确认口令,为了方便学习,本人在此设置的密码为 password 。点击 下一步 。2、检查先决条件,选中红框所示的选择框,如下图。然后点击 下一步 。3、点击 安装 。4、安装完成后,出现下图的界面,点击 口令管理 。5、将 SCOTT 和 HR 用户的勾去掉(解锁这两个账户)。然后点击 确定 。6、点击原创 2020-05-20 21:04:35 · 2177 阅读 · 0 评论 -
Oracle数据库学习笔记(一)--搭建服务端运行环境
概述本人搭建 Oracle 数据库所使用的操作系统环境为 Windows XP SP3 ,虚拟机采用的是 VMware Workstation 。前期准备VMware Workstation (https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html)Windows XP SP3 镜像文件 (https://msdn.itellyou.cn/)搭建过程1、找到 文件 -> 新建原创 2020-05-20 17:19:45 · 2102 阅读 · 2 评论 -
Maven丨使用IDEA将本地的ojdbc14.Jar包添加到个人仓库中
解决 ojdbc14 jar 包远程仓库下载失败的问题,本文给出的解决方案是将本地的 jar 包安装到本地仓库中去。原创 2020-05-18 09:27:07 · 2442 阅读 · 0 评论