
【Oracle深入浅出】学习系列
目前正在学习Oracle数据库,这里列举了我的一些学习心得或见解,供也在学习或者感兴趣的朋友参考,欢迎大家一起探讨学习
Human陈思宇
学习
展开
-
使用Tomcat数据源
虽然使用jdbc可以连接数据库,但是每次操作都要连接和关闭,影响了运行效率我们可以使用数据源和连接池,数据源用来连接数据库,连接池用来管理连接对象,在程序中使用jndi来获取数据源其中的步骤如下:1.复制jdbc驱动jar包到Tomcat下的lib目录,jdbc的驱动包下载链接如下:http://download.youkuaiyun.com/detail/hncsy403/453原创 2012-08-28 21:09:00 · 1569 阅读 · 2 评论 -
使用jdbc实现增删改查示例
import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.Timest原创 2012-08-28 18:19:29 · 2066 阅读 · 0 评论 -
使用jdbc操作Oracle数据库
使用jdbc操作数据库步骤是固定的1.将驱动包导入到数据库,每一个数据库的驱动包都不一样,下面我提供一个Oracle数据库的驱动包http://download.youkuaiyun.com/detail/hncsy403/4530830将它下载后放入web项目中的 web-inf中的lib中2.选择项目右键,选择Build Bath,在libraries中add JARs,选择刚原创 2012-08-28 12:22:43 · 2205 阅读 · 0 评论 -
Oracle动态SQL
动态SQL语法只有在运行时候Oracle才能够检测它的格式是否正确INTO和USING子句是可选的如果SQL语句是一个查询语句的话,我们可以使用INTO子句INTO语句用于接收SELECT语句选择的记录值,可以是一个变量序列,也可以是一个记录型的变量也就是record型的变量这个变量序列的顺序对应于查询结果集中的记录的值的顺序如果有参数需要动态确定,我们可以使用US原创 2012-08-24 15:50:10 · 2117 阅读 · 0 评论 -
Oracle游标(三)REF动态游标
REF动态游标被用于处理多行的查询结果集在同一个PLSQL块当中,REF动态游标不同于特定的查询绑定打开游标时才绑定,所以通常用于查询语句需要运行时动态确定的情况使用动态游标的步骤先定义一个REF动态游标类型示例:动态游标分为强类型和弱类型弱类型示例动态游标示例生成员工或者部门信息dec原创 2012-08-24 10:32:45 · 2566 阅读 · 0 评论 -
Oracle游标(二)隐式游标
如果在pl/sql使用Select语句进行操作,那么就隐式地使用了游标它无需定义,也不需要打开和关闭select 语句必须有into语句,结果只能是一条因为没有游标名,要将结果直接保存在变量当中,所以查询语句只能返回一行结果显式游标和隐式游标都有相同的属性示例隐式游标使用属性原创 2012-08-24 09:05:27 · 1360 阅读 · 0 评论 -
Oracle游标(一)显式游标
显式游标是用户手动声明和操作的游标显式游标的使用步骤1.声明游标2.打开游标语法3.提取游标语法4.关闭游标语法显示游标完整示例游标的属性语法整体示例:为员工添加工资:declar原创 2012-08-24 08:44:17 · 1993 阅读 · 1 评论 -
Oracle游标的概要
为什么要使用游标?SQL是面向集合的,查询结果一般是多条记录而PL/SQL的变量一般是标量一组变量一次只能存放一条记录,所以仅仅使用变量并不能完全满足SQL语句向应用程序输入数据的要求因为查询结构记录数是不确定的事先也不知道要声明几个变量,用游标来协调这两种不同的处理方式游标是在构建PLSQL当中用来查询数据的获取记录集合的指针可以让开发者一次访问集合中的一行游标可原创 2012-08-23 22:14:58 · 981 阅读 · 0 评论 -
Oracle数据库的物理备份导入和导出
如何想保证能够把系统恢复到最后一次提交的状态,就必须以物理备份为基础同时还需要有自上一次物理备份以来积累的归档日志和重做日志冷备份发生在数据库已正常关闭的情况下,当数据库正常关闭时会提供给我们一个完整的数据库冷备份必须拷贝的文件包括所有数据文件所有控制文件所有联机重做日志文件可选的init.ora当数据库处于打开状态时,执行数原创 2012-08-23 21:51:11 · 2705 阅读 · 2 评论 -
Oracle数据库的逻辑备份导入和导出
逻辑备份就是创建数据库对象的逻辑拷贝并存入一个二进制转储文件:.dmp文件这些记录的导出与其物理位置无关导入的实质就是读取被导出的二进制转储文件并将其恢复到数据库导入导出的常用实现方法如下:使用数据泵导出时,如果不是直接导出到远程数据库中,而是首先创建目录对象目录对象是数据库服务器上的命名目录位置因为目原创 2012-08-23 20:47:13 · 1920 阅读 · 0 评论 -
Oracle数据库备份和恢复概要
欢迎转载,转载请指明出处http://blog.youkuaiyun.com/hncsy403,谢谢为什么需要备份呢?因为很多情况都可能造成数据丢失,如介质故障,用户的错误操作,服务器的彻底崩溃或计算机病毒等不可预料因素介质故障称为硬故障,如磁盘损坏,磁头碰撞,以及瞬时强磁场干扰这类故障将破坏部分数据库,影响正在存取的部分数据的所有事务备份的定义备份就是原创 2012-08-23 12:01:36 · 1118 阅读 · 0 评论 -
Oracle中易混淆的几个概念
欢迎转载,转载请指明出处http://blog.youkuaiyun.com/hncsy403,谢谢1.实例和数据库实例包括我们为了运行数据库执行和分配的所有进程和内存结构Oracle实例是系统全局区和后台进程的组合数据库只有调入实例所包括的内存和进程中才可以使用Oracle要运行范围广泛的各种进程来管理它的数量庞大的事务处理数据库是指运行数据库所需要的所有文件原创 2012-08-23 11:32:54 · 2206 阅读 · 0 评论 -
Oracle的体系结构(五)进程结构
欢迎转载,转载请指明出处http://blog.youkuaiyun.com/hncsy403,谢谢进程是操作系统中一种机制,它可以试行一系列的操作步骤一个进程通常有它自己专用的存储区,Oracle进程的体系结构设计能够使性能最大化Oracle实例有两种类型,单进程实例和多进程示例在dos操作系统下运行的就是单线程进程分类用户进程原创 2012-08-23 08:24:33 · 4405 阅读 · 0 评论 -
Oracle的体系结构(四)内存结构
欢迎转载,转载请指明出处http://blog.youkuaiyun.com/hncsy403,谢谢内存结构是Oracle数据库体系中最为重要的一部分,也是影响数据库性能的第一因素内存可以分为SGA(系统全局区)和PGA(程序全局区)一、系统全局区SGA是所有用户都可以访问的实例的共享内存区域数据块,事务处理日志,数据字典信息都存在SGA中数据高速缓原创 2012-08-22 23:22:58 · 1810 阅读 · 0 评论 -
Oracle的体系结构(三)逻辑存储结构
欢迎转载,转载请指明出处http://blog.youkuaiyun.com/hncsy403,谢谢逻辑存储结构图如下由图可知一个表空间由一组段组成一个段由一组区组成一个区由一批数据库块组成一个数据库块对应一个或多个物理块一、表空间表空间是最大的存储结构,它对应一个或多个数据文件表空间的大小是它所对应的数据文件大小的总和Oracle推荐将不同数据原创 2012-08-22 20:38:30 · 4390 阅读 · 0 评论 -
Oracle的体系结构(二)物理存储结构
欢迎转载,转载请指明出处http://blog.youkuaiyun.com/hncsy403,谢谢Oracle物理存储结构它也就是Oracle数据库文件,其中分为主要文件和其他文件(一)主要文件(1)数据文件(DATA FILE)数据文件就是物理存储Oracle数据库数据的文件,它有一下几个特点1.每一个数据文件只和一个数据库相关联,不能同时对应两个数据库2.原创 2012-08-22 16:00:42 · 2021 阅读 · 0 评论 -
Oracle的体系结构(一)概述
欢迎转载,转载请指明出处http://blog.youkuaiyun.com/hncsy403,谢谢Oracle数据库有三大竞争力1.可扩充性Oracle系统有能力承担增长的工作负荷,并且相应地可以扩充它的系统资源利用状况2.可靠性无论系统崩溃,电源断电或者是系统故障的时候,我们都可以对Oracle进行配置保证在检索用户数据和进行事务处理时不受影响3.可原创 2012-08-22 12:46:13 · 2286 阅读 · 3 评论 -
Oracle数据库高级查询(一)子查询
欢迎转载,转载请指明出处http://blog.youkuaiyun.com/hncsy403,谢谢在一个SQL语句中嵌套另外一个sql语句称为子查询而这个查询语句作为另一个查询语句它的条件,其中包含其他sql语句的这个sql语句称为父查询示例如下如果需要查询商品类别中为图书的所有商品id,名称,价格select id,name,price from es_productwh原创 2012-08-20 10:21:50 · 1261 阅读 · 0 评论 -
Oralce SQL语言常用函数(五)聚合函数
使用聚合函数之前,我们需要先明白“分组”的概念在工作中我们会遇到的一类问题就是对检索出来的数据进行分组分组的语法结构是很简单的,就是使用GROUP BY 关键字后面跟分组依据字段比如说我们需要查询商品表,根据商品类别分别求商品的数量需要注意的是,对数据分组之后,其SELECT后面的查询结果字段一般只能是分组字段或者是聚合函数表达式聚合函数也叫组函数,有的地方原创 2012-08-19 10:56:28 · 1379 阅读 · 0 评论 -
Oralce SQL语言常用函数(四)转换函数
转换函数转换函数主要是用于操作多种数据类型,它的作用是把数据从一种数据类型转换为另一种数据类型,常用的转换函数主要有以下两种1.TO_CHAR此函数主要将日期函数转换为字符串,实际上我们主要使用它对日期进行转换有两种转换日期的模式:TO_Char(date)或者to_char(date,'format_model')而后者在实际工作中更为重要对比于EXTRACT原创 2012-08-19 10:28:31 · 1358 阅读 · 3 评论 -
Oralce SQL语言常用函数(三)日期函数
日期函数主要是操作DATE类型的数据,它的输入参数大部分是DATE类型,并且输出的参数也是DATE类型1.SYSDATE函数此函数不需要任何参数,用于返回当前系统时间看上去更像一个关键字它返回的时间格式和Oracle安装时选择的语言有关会自动匹配为当前区域使用的标准时间格式比如 SELECT SYSDATE FROM dual就可以获得当前区域的标准时原创 2012-08-19 10:00:41 · 1340 阅读 · 2 评论 -
Oralce SQL语言常用函数(二)数字函数
数字函数数字函数是对数字数据进行一些算术运算的一些函数函数的输入参数是数字类型,输出参数也是数字类型的最为常用的有以下两种1.TRUNC函数(截取函数)其结构如下第一个参数可以来源于数据库表中的某个字段,又或者是某个表达式第二个参数n是要截取的位数其中需要注意:要掌握这个函数,需要掌握一个虚拟表,名为daul表具体使用示例如下原创 2012-08-18 22:44:41 · 1767 阅读 · 1 评论 -
PL/SQL的定义(六)异常处理
异常处理的语法结构常见预定义异常例如初始化三个商品类别又例如,捕捉“购买商品后更新商品库存量”的异常自定义语法结构:删除订单异常原创 2012-08-21 22:55:15 · 1354 阅读 · 0 评论 -
PL/SQL的定义(五)循环控制
LOOP循环语法loop代表循环开始end loop代表循环结束例如初始化三个商品类别FOR循环语法示例如下:FOR循环主要适用于知道具体循环次数的情况WHILE循环语法示例如下WHILE循环主要适用于不知道具体循环次数的情况原创 2012-08-21 20:56:45 · 1001 阅读 · 0 评论 -
PL/SQL的定义(四)CASE控制
在订单表当中,有四个值分别代表已提交,已付款,已发货,已完成使用if语句,书写根据订单的状态值输出相应的状态可以这样写但是这样写比较复杂这时我们可以使用case结构而使用上述结构的SQL如下需要注意的是原创 2012-08-21 19:57:24 · 1047 阅读 · 0 评论 -
PL/SQL的定义(三)IF控制
PL/SQL的IF控制如下代码块指的是条件通过,执行的代码END IF指的是条件代码块的结束示例如下:IF THEN ELSE的结构示例如下:IF THEN ELSIF结构示例如下:原创 2012-08-21 17:34:19 · 1750 阅读 · 0 评论 -
PL/SQL的定义(二)基本规范
欢迎转载,转载请指明出处http://blog.youkuaiyun.com/hncsy403,谢谢1.变量最好添加前缀,代表变量的数据类型或者作用范围定义变量时,建议使用V_作为前缀定义常量时,建议使用C_作为前缀当定义异常时,建议使用E_作为前缀2.全部保留字,内置函数,程序包或者用户定义的类型用大写3.每行只写一个语句,逗号后面以及运算符的前后都应该加原创 2012-08-21 11:07:51 · 1293 阅读 · 0 评论 -
PL/SQL的定义(一)基本结构
欢迎转载,转载请指明出处http://blog.youkuaiyun.com/hncsy403,谢谢SQL语言不可以使用逻辑处理结构PL/SQL就将SQL语言和编程语言结合在一起在SQL语言的基础上增加了编程语言的特性,其实还有参数传递和SQL代码重用的优势其基本结构如下包括了声明部分,程序段开始,程序段结束,异常处理声明部分和异常部分是可选的变量的声明原创 2012-08-21 11:02:33 · 1229 阅读 · 0 评论 -
Oracle数据库高级查询(五)集合查询
欢迎转载,转载请指明出处http://blog.youkuaiyun.com/hncsy403,谢谢现实需求有时候需要将多个查询组合到一个查询中去这时就需要使用集合查询操作了这个操作类似于数学中的交集,并集,和补集的操作交集就是返回两个查询共有的记录,关键字是INTERSECT并集是返回各个查询的所有记录,关键字为UNION或者UNION ALL补集就是返回第一个查原创 2012-08-20 20:27:59 · 5652 阅读 · 0 评论 -
Oracle数据库高级查询(四)子查询和连接查询的综合案例
查询出高于本类商品平均价格的商品类别id,商品id,商品名称,价格,库存量1.确定要查询的数据以及数据来源select sort_id,id,name,price,stockcount from es_productwhere price>(本类商品平均价格)2.每类商品平均价格如下(select sort_id,avg(price) avgprice from es_原创 2012-08-20 20:07:57 · 1957 阅读 · 0 评论 -
Oracle数据库高级查询(三)连接查询
欢迎转载,转载请指明出处http://blog.youkuaiyun.com/hncsy403,谢谢现在我们有这样一个需求查询所有用户的用户姓名,电话,订单号,已经订单状态,商品所属分类名称其实我们这些数据来源于两张表图书表es_product和图书类别表es_sort我们可以通过表连接实现select es_product.id,name,price,sortname from原创 2012-08-20 18:44:40 · 1380 阅读 · 0 评论 -
Oracle数据库高级查询(二)分页查询
欢迎转载,转载请指明出处http://blog.youkuaiyun.com/hncsy403,谢谢其中需要的需求如下当到了第二页我们使用这样的语句其实是错误的,因为rownum是动态生成每一次的查询都不满足条件,导致不断地生成rownum=1进行查询,所有这个sql显示出来没有结果所以我们就要将rownum固化通原创 2012-08-20 12:10:58 · 1259 阅读 · 0 评论 -
Oralce SQL语言常用函数(一)字符函数
字符函数这个函数一般接收字符作为参数,并且可以返回字符或数字其中最常用有以下两个函数1.CONCAT函数主要用于字符串的连接,具体语法如下CONCAT(c1,c2)接收两个参数,将第二个参数连接到第一个参数的末尾,假如第二个参数是NULL,则函数返回第一个参数,假如第一个参数是NULL,则参数返回第二个参数,假如都为NULL,则函数返回NULL为原创 2012-08-18 22:06:38 · 1066 阅读 · 0 评论 -
熟悉掌握Oracle SQL语言
SQL语言是一种高级的非过程化的查询语言,用户使用它主要进行数据库的操作可以把SQL语言看成是客户端与服务器端沟通的一个工具,用来存取,查询和更新,关系数据库系统Insert语句INSERT语句的语法结构如下:table值的是要插入数据的表的表名,Column指的是要插入数据的列名,Value指的是要插入的具体数据值例如往会员表中插入一个新的会员原创 2012-08-18 21:49:28 · 1382 阅读 · 0 评论 -
数据完整性
数据完整性指的是数据库中数据的准确性为了实现数据的完整性,数据库要实现以下的几项工作1.检验每行数据是否符合要求2.检验每行数据是否符合要求为实现以上的要求,Oracle有四种类型的约束1.实体完整性约束,不能存在相同的数据行,一般可以通过主键约束,唯一约束等方式实现,要求每一行的数据都反映不同的实体添加主键约束如下添加唯一约束如下原创 2012-08-17 18:14:24 · 1190 阅读 · 0 评论 -
创建Oracle数据库表
当创建一个表时,必须为各个列指定数据类型具体数据类型如下1文本数据类型char与varchar2的区别如下:2.数值数据类型3日期数据类型4.大对象数据类型创建表的语法如下CREATE TABLE表名(字段名称 字段类型);如下示例:而创建之后,我们可以通过 DESC 表原创 2012-08-17 17:13:16 · 804 阅读 · 0 评论 -
oracle数据库分配用户权限
Oracle数据库用户有两种途径获得权限,它们分别为1.管理员直接向用户授予权限2.管理员直接将权限授予角色,然后将角色授予给一个或者多个用户使用后者能够更加方便高效地对权限进行管理,所以我们应该习惯于使用角色向用户进行权限授予权限是用户对一项功能的执行权力,在Oracle中,根据系统管理方式的不同,将权限分为系统权限、对象权限两种系统权限:原创 2012-08-17 13:13:25 · 6564 阅读 · 0 评论 -
创建oracle数据库用户
标识用户是oracle数据库管理的基本要求之一,每一个能够连接到数据库的用户都必须是系统的合法用户,用户需要使用Oracle的系统资源,如查询数据,创建表等,必须要拥有相应的权限创建用户并授予权限是Oracle系统管理员的基本任务之一当创建一个新数据库时,Oracle会创建一些默认数据库的用户,SYS,System,Scott等用户,前两个都是系统用户,后者是数据库的一个测原创 2012-08-17 12:15:14 · 1218 阅读 · 0 评论 -
创建oracle表空间
其中tablespacename是指需要创建的表空间名称datafile指定组成表空间的一个或者多个数据文件,当有多个数据文件时使用逗号分隔开filename是指表空间中数据文件的路径和名称size指文件的带下用k指定千字节的大小,用M指定兆字节的大小autoextend子句用来启动或者禁用数据文件的自动扩展,设置为ON,若设置为OFF时很容易出现表空间剩余容量为0,导致数据不原创 2012-08-17 11:55:14 · 812 阅读 · 0 评论 -
初识SQL语言
sql语言sql语言是高级的机构化语言,用户使用SQL时,只需要提出做什么,而不必提出怎么做,具体的执行过程由系统自动完成,大大减轻了用户的负担,是沟通数据库服务器和客户端的重要工具,用于存储数据以及查询,更新和管理关系数据库系统,经过现在多年的发展,SQL语言已经称为关系数据库的标准语言,不同于java,c#,它只是数据库能够识别的指令,但在程序中可以组织SQL语句发送给数据原创 2012-08-17 11:29:46 · 816 阅读 · 0 评论