




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
oracle数据库学习总结篇一:ORACLE数据库学习心得ORACLE数据库结课论文一个好的程序,必然联系着一个庞大的数据库网路.今年我们学习了 oracle数据库这门课程,起初的我,对这个字眼是要多陌生有多陌生,后来上课的时候听一会老师讲课,偶尔再跟上上机课,渐渐的学会了不少东西,但我感觉,我学到的仍是一些皮毛而已,怀着疑惑和求知的心态,我在网上搜索了关于 oracle数据库的一些知识。1.ORACLE的特点:可移植性 ORACLE采用C语言开发而成,故产品与硬件和操作系统具有很强的独立性。从大型机到微机上都可运行ORACLE的产品。可在UNIX、DOS、Windows等操作系统上运行。可兼容性 由于采用了国际标准的数据查询语言SQL,与IBM的SQL/DS、DB2等均兼容。并提供读取其它数据库文件的间接方法。可联结性 对于不同通信协议,不同机型及不同操作系统组成的网络也可以运行ORACLE数据库产品。2.ORACLE的总体结构(1)ORACLE的文件结构 一个ORACLE数据库系统包括以下5类文件:ORACLE RDBMS的代码文件。数据文件 一个数据库可有一个或多个数据文件,每个数据文件可以存有一个或多个表、视图、索引等信息。日志文件 须有两个或两个以上,用来记录所有数据库的变化,用于数据库的恢复。控制文件 可以有备份,采用多个备份控制文件是为了防止控制文件的损坏。参数文件 含有数据库例程起时所需的配置参数。(2)ORACLE的内存结构 一个ORACLE例程拥有一个系统全程区(SGA)和一组程序全程区(PGA)。SGA(System Global Area)包括数据库缓冲区、日志缓冲区及共享区域。PGA(Program Global Area)是每一个Server进程有一个。一个Server进程起动时,就为其分配一个PGA区,以存放数据及控制信息。(3)ORACLE的进程结构ORACLE包括三类进程:用户进程 用来执行用户应用程序的。服务进程 处理与之相连的一组用户进程的请求。后台进程 ORACLE为每一个数据库例程创建一组后台进程,它为所有的用户进程服务,其中包括:DBWR(Database Writer)进程,负责把已修改的数据块从数据库缓冲区写到数据库中。LGWR(Log Writer)进程,负责把日志从SGA中的缓冲区中写到日志文件中。SMON(System Moniter)进程,该进程有规律地扫描SAG进程信息,注销失败的数据库例程,回收不再使用的内存空间。PMON(Process Moniter)进程,当一用户进程异常结束时,该进程负责恢复未完成的事务,注销失败的用户进程,释放用户进程占用的资源。ARCH(ARCHIVER)进程。每当联机日志文件写满时,该进程将其拷贝到归档存储设备上。另外还包括分布式DB中事务恢复进程RECO和对服务进程与用户进程进行匹配的Dnnn进程等。3.ORACLE的逻辑结构构成ORACLE的数据库的逻辑结构包括:(1)表空间(2)5种类型的段(segment)数据段;索引段;回滚(rollbock)段;临时段;自举(bootstrap)段。段的分配单位叫范围(Extent)表空间(Tablespace) 一个数据库划分成的若干逻辑部分称为表空间。一个数据库可以有一个或多个表空间,初始的表空间命名为SYSTEM,每一个逻辑表空间对应于一个或多个物理文件。DBA使用表空间做以下工作:控制数据库对象,如表、索引和临时段的空间分配。为数据库用户设置空间配额。利用个别表空间的在线或离线,控制数据的可用性。后备或恢复数据。通过分配空间,以改进性能。在每个数据库中都存在SYSTEM表空间,它在建立数据库时自动建立。在该表空间中,包含数据库的数据字典,其中存储全部数据库对象的名字和位置。SYSTEM表空间总是在线的,像其它表空间一样,可以通过增加新的数据库文件来扩大。一个表空间可包含许多表和索引。但一个表和索引不能跨越表空间,可跨越组成表空间的文件。在DB的打开的情况下,DBA利用ALTER TABLESPACE语句,可以实施表空间的在线或离线。SYSTEM表空间必须在线。表空间离线有下列原因:一般为了使部分数据库不能使用,而允许正常存取数据库其余部分。执行表空间离线备份。一个离线的表空间,不能被应用用户读或编辑。可以增加数据文件扩大已有的表空间,也可增加新的表空间使数据库容量增大,或分配空间给某个应用。使用ALFER TABLESPACE ADD FILE语句将另一个数据文件加入到已存在表空间中。使用CREATE TABLESPACE语句可建立一个新的表空间。段(segment) 表空间中的全部数据存储在以段划分的数据库空间中。一个段是分配给数据库用于数据存储的范围的集合。数据可以是表、索引或RDBMS所需要的临时数据。段是表空间的下一个逻辑存储的级别。一个段不能跨越一个表空间,但可跨越表空间内的文件。一个数据库最多需要五种段类型:数据段 一个包含一个表(或聚集)的全部数据,一个表(或聚集)总有一个单个数据段。索引段 一个索引段包含对一个表(或聚集)建立的一个索引的全部索引数据。一个表可以有一个、多个或者没有索引段,取决于它所拥有的索引个数。一个聚集必须至少有一个索引段,即在聚集码上建立聚集索引。回滚段 每个DB有一个或多个回滚段。一个回滚段是DB的一部分,它记录在某一情况下被撤消的动作。回滚段用于事务控制和恢复。临时段 在处理查询时,ORACLE需要临时工作空间,用于存储语句处理的中间结果,这个区称为临时段。自举段 自举段在SYSTEM表空间中,在数据库建立时建立。它包括数据字典定义,在数据库打开时装入。4.用户数据库对象由用户建立的对象驻留在表空间中,含有真正的数据。数据库对象有表、视图、聚集、索引、伪列和序号生成器。(1)聚集(Cluster) 聚集是存储数据的一种可选择的方法。聚集包括存储在一起的一组表,它们共享公共列并经常一起使用。由于内容相关并且物理地存储在一起,存取时间得到改进,存储空间可以减少。聚集是一种优化措施。聚集对性能的改进,依赖于数据的分布和SQL操作的内容。特别是使用聚集对连接非常有利。可以明显地提高连接的速度。建立聚集命令的基本格式:SQLCREATE CLUSTER聚集名(列定义,);利用聚集建立表命令基本格式:SQLCREATE TABLE新表名(列定义,CLUSTER聚集名(聚集列);篇二:Oracle数据库学习总结Oracle数据库学习总结时间过的还真快,不知不觉中就在这里呆了半个月了。这段时间里都在学习oracle数据库的编程,毕竟这是家软件外包公司。像我们这样的新员工也就只能接触到些CURD的操作。废话不多说,赶紧来梳理下这半月来学习的知识点. 在来公司之前一直都是使用Sql Server数据库,用Sql Server也开发了3个小型项目。所以对Sql语句以及在数据库中扮演重要作用的存储过程,触发器,视图,主键/外键约束都很熟。但Oracle是一个全新的环境,记得刚装上Oracle的时候,我都不知道在哪查看自己已经建立好的表格。还好有师傅的帮忙,要不然我还真没这么快就能入门Oracle。学习东西就要学习些能改变自己思维的东西,只有这样才能让自己的眼光比别人更独到,思维比别人更深邃,Oracle就是这样的东西。当然做这样的事是要很大的驱动力的呀,如果公司不是都采用Oracle来写程序的话,我估计也就懒得学啦。对于一位程序员来说并不需要完全掌握Oracle的所有知识,毕竟自己不是DBA。在日常开发中也用不到那些命令和工具,但是有些知识点我们还是必须得熟练的掌握它们。比如:一些基本的DDL和DML语句,存储过程,函数,视图,触发器,序列,游标,自定义类型和包。下面我就把这段时间里学习Oracle获得的知识点罗列出来,一是为了方便以后查阅,二是为了和搭档交流学习经验。要适应的一些细节从Sql Server转到Oracle进行数据库编程,第一道门槛就是语法问题。很多很多的问题都是因为语法而产生的,现将它们统统集合起来并将它们一网打尽之。PL结构。在Sql Server中,采用的是批处理执行任务的方式,所以可以将多条sql语句选中批量执行,而不用顾忌要在专门的地方声明变量,在专门的地方进行逻辑编码。在Oracle中采用的是PL编程方式,必须在专门的地方声明变循环结构,要达到循环在Oracle中有3种方式,各有各的好处,你懂的。它们分别如下:PL结构中的错误处理就像C#中的Try Catch语句块 能捕获错误。写几个例子:HelloWorld级别的错误抛出例子Record类型Oracle中的Record类型类似于c语言中的结构体,主要用来接收Select语句或游标中返回的数据,下面写个例子:DDL语句这里的DDL语言主要是指能完成如下工作的DDL语言:创建表,创建表的主/外 键及级联效果,DML语句Select语句。Oracle中的Select语句的使用方法与Sql Server差不多,但还是有些不同之处。篇三:Oracle数据库学习总结Oracle数据库学习总结1.set linesize xx; 设置行间距,常用数值有100,200,3002.set pagesize xx; 设置每页显示行数3.ed x ; 表示新建一个x.sql文件,通过文件编辑SQL语句,然后用x命令可以调用刚才的命令4.CONN username/password; 命令可以建立用户的连接,需要注意的是sys用户是超级管理员,连接是时需要在末尾加上AS SYSDBA 以系统管理员的身份进行连接5.如果表是归某个用户特有的,在查询的时候需要加上用户名 即以 用户名.表名 的格式查询6.SHOW USER; 命令可以显示当前连接的用户名7.SELECT * FROM tab; 可以显示当前用户下的所有数据表8.” / ”表示重复执行上一次的SQL命令操作9.SELECT xx别名,xx 别名 FROM xx; 搜索指定列名,并指定别名,方便显示10.关键字DISTINCT 可以消除重复值 如 SELECT DISTINCT xx FROM xx;11.Oracle中提供的字符串连接操作,使用“|”表示,相当于Java的”+”普通字符用” “ 括起来如: SELECT 员工姓名是|ename|员工卡号是|empno FROM emp;12.查询语句 BETWEEN xx AND xx 是包括边界的13.查询日期的时候要加上把日期引起来例如:SELECT * FROM emp WHERE hiredate BETWEEN 1-1月 -81 AND 08-9月 -81;14.模糊查询中“%”可以匹配任意长度的内容,“_”可以匹配一个长度的内容,如果没输入模糊查询关键字,那么默认查询全部数据,like关键字可以用在任何地方,可以匹配数字、字符、日期等。15.SQL中不等于可以用”“或者”!=“表示16.ORDER BY语句中 ASC表示升序,DESC表示降序,在没指定的时候默认按照升序排序17.Oracle中的单行函数有如下,默认的所有的函数都要到表中执行,加上关键字DUAL只会产生一个临时表UPPER(xxx) 将小写转换为大写LOWER(xxx) 将大写转换为小写INITCAP(xxx)将首字母大写CONCAT(,)字符串连接SUBSTR(xxx,x,x)字符串截取,从0或1开始截取效果是一样的,因为Oracle比较智能,要是输入的参数为负数,则表示倒着截取LENGTH(xxx)字符串长度REPLACE(xxx,x,x)字符串替换ROUND(xxx,xx)四舍五入 xxx需要四舍五入的数值,xx保留的小数位,可以加负数 TRUNC(xxx)截断操作,默认小数点后的全部截断,也可以指定小数点保留位数如TRUNC(789.536,2)得到的结果是789.53,也可以加负数如TRUNC(789.536,-2) 结果是70018.SELECT sysdate FROM DUAL; 可以求出当前的日期19.Oracle 中提供了以下日期函数支持:MONTHS_BETWEEN()求出给定日期范围的月数ADD_MONTHS(xxx,xxx)在指定日期加上指定的月数NEXT_DATE(xxx,)求出下一个给定日期数TO_CHAR()可以将年、月、日进行分割例如TO_CHAR(hirdate,yyyy) year,TO_CHAR(hirdate,mm)months,TO_CHAR(hirdate,dd)day 还可以对时间进行格式化输出 如TO_CHAR(hirdate,yyyy-mm-dd)TO_CHAR(hirdate,fmyyyy-mm-dd)可以去掉前导0TO_CHAR()还可以对数字进行格式化 如SELECT ename,TO_CHAR(SAL,99,999) FROM emp;注意:一定要用9来表示$表示美元符号,L表示Local的缩写,以本地语言进行金额显示TO_NUMBER()将字符串变为数字TO_DATE()将字符串变为Date类型 例如 SELECT TO_DATE(2009-12-8,yyyy-mm-dd) FROM dual;TO_NVL()可以将NULL的内容变为指定的内容DECODE()相当于Java的if else else语句例如SELECT DECODE(1,1,内容是1,2,内容是2,3,内容是3) FROM dual; 将输入 内容是120.左右连接SELECT e.empno,e.ename,d.deptno,d.dname,d.loc FROM emp e,dept d WHEREe.deptno(+)=d.deptno; 此例中是右连接,以deptno表为准。21.SQL1999语法CROSS JOIN 交叉连接 会产生笛卡尔积NATURAL JOIN 自然连接 自动进行关联字段匹配 可以消除笛卡尔积USING 子句:直接关联操作列 如 SELECT * FROM emp e JOIN dept USING(deptno) WHERE deptno=30;ON 子句 用户自己编写连接条件LETF JOIN/RIGHT JOIN 左右连接SELECT e.empno,e.ename,d.deptno,d.dname,d.loc FROM emp e right OUTER JOIN dept d ON(e.deptno=d.deptno);22.分组查询GROUP BY 放在where之后常见的组函数有COUNT();MAX();MIN();AVG();SUM();用法如下:SELECT deptno,count(empno) FROM emp GROUP BY deptno;语法:SELECT deptno,empno,count(empno) FROM emp GROUP BY deptno;是错误的,原因是使用分组函数的时候,不能出现分组函数和分组条件以外的字段。语法:SELECT deptno,count(empno) FROM emp;是错误的,原因是不使用分组的时候,则只能单独使用分组函数分组函数只能在分组中使用,不允许子啊where语句中个使用,要使用个分组条件可以加上HAVING例如:SELECT deptno,avg(sal) FRO(本文来自:WwW.BdfqY.Com 千叶帆文摘:oracle数据库学习总结)M emp GROUP BY deptno having avg(sal)2000; 注意:分组函数可以嵌套使用,但是在组函数嵌套使用的时候不能再出现分组条件的查询语句如下语法是错误的:SELECT deptno,max(avg(sal) FROM emp GROUP BY deptno; 不能出现deptno如下语法是正确的:SELECT max(avg(sal) FROM emp GROUP BY deptno;23.子查询中ANY 比里面的最小值大ANY 比里面的最大值小=ANY 与IN用法相同ALL 比里面的最大值大ALL 比里面的最小值小24.表复制CREATE TABLE myemp AS SELECT * FROM emp; 既复制表结构,又复制表内容CREATE TABLE myemp AS SELECT * FROM emp where 1=2; 后面的条件不可能成立,只复制表结构25.Oracle 中常用的数据类型VARCHAR、VARCHAR2 代表一个字符串,有长度限制,为255NUMBER 分为两种1)NUMBER(n) 代表一个整数,数字的长度是n,可以使用INT2)NUMBER(m,n) 代表一个小数,小数长度为n,整数长度为m-n,可以使用FLOATDATE 代表日期的类型,日期要按照标准的日期格式进行存放CLOB 大对象,表示大文本数据,一般可以存放4G的文本BLOB 大对象,表示二进制数据最大可以存放4G,例如存放歌曲、电影、图片26.表的创建CREATE TABLE person(pid VARCHAR2(18),name VARCHAR2(200),birthdate DATE,age NUMBER(4),sex VARCHAR2(2) DEFAULT 男);27.插入数据INSERT INTO person(pid,name,birthdate,age) VALUES(222,里斯,TO_DATE(1989-02-09,yyyy-mm-dd),45);28.更改表中数据增加表结构:ALTER TABLE person ADD(address VARCHAR2(50) DEFAULT 暂无地址);修改已存在的列:ALTER TABLE person MODIFY(name VARCHAR2(40) DEFAULT 无名氏);29.表的重命名(只能在Oracle中使用)RENAME XXX TO XXX;30.约束(主要分为5类)1)主键约束 主键表示是一个唯一的标识。本身不能为空2)唯一约束 在一个表中只允许建立一个主键约束,而其他列如果不希望重复值的话,则可以使用唯一约束3)检查约束 检出一个列的内容是否合法4)非空约束5)外键约束 在两张表中进行约束的操作 删除时应该先删除子表,再删除父表 创建主键:语法1CREATE TABLE person(pid VARCHAR2(18) PRIMARY KEY,name VARCHAR2(200),birthdate DATE,age NUMBER(4),sex VARCHAR2(2) DEFAULT 男);语法2:CREATE TABLE person(pid VAR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 24495-2:2025 EN Plain language - Part 2: Legal communication
- 年保定一模数学试卷
- 朗诵清明诗歌活动方案策划(3篇)
- 壁球馆施工方案(3篇)
- 黑色旅游活动策划方案(3篇)
- 休闲旅游活动策划方案(3篇)
- 江苏企业舞蹈活动策划方案(3篇)
- 动态雕塑施工方案模板(3篇)
- 紫薇田园都市施工方案(3篇)
- 烟感系统安装施工方案(3篇)
- 2025年安顺西秀区招聘城市社区工作者考试笔试试题(含答案)
- 2025-2026秋“1530”安全教育记录表
- 催乳相关培训知识课件
- 2025汽车智能驾驶技术及产业发展白皮书
- 会计档案培训课件
- 2025年公平竞争审查知识竞赛考试练习题库(正式版)含答案
- 2025年重庆市中考英语试卷真题(含标准答案及解析)
- 2025年时事政治考试题及参考答案(100题)
- 员工社保补贴合同协议
- 电梯有限空间作业安全专项施工方案
- 承插型盘扣式钢管脚手架安全技术标准JGJT231-2021规范解读
评论
0/150
提交评论