版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、深,1,ORACL深入浅出,主讲人:邹振兴,深,2,前言,Oracle数据是当前主流数据当中功能最强大,速度最快,市场占有率最高的一款产品。在工作中,使用频率非常高。 S1数据库主要学使用,S2数据库主要学业务逻辑,Y2数据库主要学习优化查询速度。 整个课程将分为二个部分,前4次课讲解Oracle数据库的基本应用(权限、建表、增、删、查、改),后4次课讲解Oracle的高级应用(事务、索引、视图、触发器、过程)。,深,3,第一章 了解ORACLE,为什么要学习Oracle Oracle公司的基本介绍 如何安装Oracle Sqlplus工具的基本使用 Oracle用户权限 管理,深,4,为什么
2、学习Oracle,通过的时实统计,国内IT届对oracle数据库人才的需求并不低于热门的Java 与 .Net。,深,5,为什么学习Oracle,对于软件开发人员来说,熟悉Oracle或者熟练的使用Sql语句,对于就业来说,将非常有利。,深,6,Oracle公司的基本介绍,公司类型 上市公司 (NASDAQ: ORCL) 口号 Oracle is the information company 成立于 加利福尼亚 (1977年) 总部位于 美国加州红木滩市 重要人物 劳伦斯埃里森 Lawrence (Larry) J. Ellison, 首席执行官 产业 数据库软件 雇员数目 35000+ O
3、racle的关系数据库是世界第一个支持SQL语言的数据库。1977年,Lawrence J.Ellison领着一些同事成立了Oracle公司,他们的成功强力反击了那些说关系数据库无法成功商业化的说法。现在,Oracle公司的财产净值已经由当初的2000美元增值到了现在的年收入超过97亿美元。,深,7,Oracle公司的基本介绍,Oracle 公司年表 2008年 甲骨文公司(Oracle)宣布收购项目组合以及管理软件的供应商Primavera 软件公司。Primavera公司曾是世界上最大的独立项目协同管理及资源组合管理解决方案的供应商,在全球85个国家有450,000多用户,并在全球几十个国
4、家设有代理商。 2009年 Sun与甲骨文两家公司20日宣布,双方已经达成协议,由甲骨文公司以每股9.5美元的价格收购Sun的普通股股权,全部交易将以现金完成。按此价格计算,此次甲骨文的收购总额为74亿美元,而除去Sun的现金及债务不计,该交易的净值为56亿美元。,深,8,Oracle公司的基本介绍,Oracle市场份额 在2007年Oracle在数据库市场依然保持着强劲的势头,占据了数据库领域48.6%的市场份额。作为数据库软件市场的领跑者,Oracle数据库自去年推出了11g版本以来,在整个2008年最大的亮点是在9月下旬在旧金山举办的甲骨文全球大会上宣布了与云计算服务商展开更多的合作。同
5、时在2008年OOW(Oracle Open World)上强势推出的跟HP合作的HP Oracle Exadata Storage Server也颇为引人瞩目,被称为“世界上最快的数据库机器”。,深,9,如何安装Oracle,Oracle安装图文介绍Windows下ORACLE 10g安装与操作图解 - junying2yu的专栏 - CSDN博客.htm 在安装Oracle过程中,Oracle将会创建3个默认的用户: sys:数据库管理员,具有最高权限。相当于 sqlserver 2005中的sa用户。 system:数据库操作员,具有较高权限。 scott:数据库演示员,用来演示示例数据
6、库。,深,10,如何安装Oracle,数据库安装完成之后,还必须启动服务。启动Oracle 必须启动如下二个服务: OracleOraDb10g_home1TNSListener 数据库监听器 OracleServiceORCL 数据库,深,11,如何安装Oracle,Oracle与sqlserver 2005的区别 Oracle 是以用户为主线,而sqlserver 2005是以数据库为主线 Oracle 中每一个数据库都一个服务,深,12,Oracle的联接配置,Oracle产品安装完成后,服务器和客户端都需要进行网络配置才能实现网络连接。 服务器端配置监听器,客户端配置网络服务名。,深,
7、13,Oracle的联接配置,服务器端监听器配置信息包括监听协议、地址及其他相关信息。 配置信息保存在名为listener.ora的文件中。在安装服务器软件时自动配置一个监听器 客户端的网络服务名配置信息包括服务器地址、监听端口号和数据库SID等,与服务器的监听器建立连接。配置信息保存在名为tnsnames.ora的文件中 Oracle中的 Net Configuration Assistant和Net Manager工具都能用来配置监听器和网络服务名,深,14,Sqlplus工具的基本使用,Oracle客户端工具介绍 Sqlplus Oracle自带的客户端工具 Pl_sql 第三方厂商提供
8、的客户端工具 其它第三方厂商提供的客户端工具 Sqlplus的启动方式 开始-启动- sqlplusw 启动界面版sqlplus。 启动-启动- sqlplus 启动命令行版sqlplus。,深,15,Sqlplus工具的基本使用,常用Oracle命令行 显示当前用户:show user; 断开连接命令:disconnect; 连接数据库命令:connect + 连接字符串 连接字符串格式:conn 用户名/密码网络服务名 as sysdba/sysoper 退出窗口:exit; 调用.sql文件命令:start 文件路径 编辑.sql脚本:edit 文件路径,深,16,Oracle用户权限
9、管理,Oracle用户管理 创建用户:create user 用户名 identified by 密码;密码必须字母开头 删除用户:drop user 用户名 cascade; 级联删除 修改密码:password 锁定用户:alter user 用户名 account lock; 解锁用户:alter user 用户名 account unlock;,深,17,Oracle用户权限 管理,Oracle 权限管理 新建用户没有任何权限,连登录数据库的权限都没有。只有system,sys 等具有dba权限的用户才能赋权限。 权限分类 系统权限:比如登录数据库,建表等。 对象权限:用户对其它用户的
10、数据对象操作的权限。(select update delete insert all),深,18,Oracle用户权限 管理,由于系统权限一种有140多种,管理起来不是很方便。系统将一些常用的权限组织在一起,就形成了角色。 角色又可以分为 预定义角色 和自定义角色,预定义角色是安装数据库后就已经存在的。 Connect 联接数据库角色 Dba 角色 Resource 角色,深,19,Oracle用户权限 管理,权限管理语法 赋予系统权限: grant 角色 to 用户; 赋予对象权限:Grant insert, update ,delete, select on 表 to 用户; 回收系统权限
11、:revoke 角色 from 用户; 回收对象权限:revoke all on 表 from 用户;,深,20,上机作业,练习安装Oracle 10g数据库 使用sqlpuls连接到本地数据库 创建新用户 accp/accp。 修改accp用户密码为abc。 用新用户accp登录到本地数据库。 用新用户accp访问emp表。 编写查询emp表语句并保存到.sql脚本中。,深,21,上机作业,回收accp用户权限。 在同学的数据库服务器上重复上述操作。 演示数据的导入导出功能。 导出语法:exp 用户名/密码数据库 file = 路径 导入语法:imp 用户名/密码数据库 file =路径 如
12、果导出用户与导入用户不同,指定full = y参数即可导入。 如果导入用户中已存在表,则必须先删除表后才能导入。,深,22,第二章 Oracle数据管理,上章回顾 Oracle表空间管理 Oracle表的管理 Oracle增、删、改数据 Oracle函数的使用,深,23,上章回顾,提问: 启动Oracle数据库,必须启动那两个服务? 小明是一家公司的DBA,他给同事创建一个新用户后,同事发现自己不能登录数据库,请问这是为什么? 用户accp具有访问emp表的权限,小明编写如下语句 select * from emp;却发现语句报错,请问这是为什么?,深,24,Oracle表空间管理,什么是表空
13、间? 表空间从物理上来说:是一些磁盘文件,用来存入表数据。 表空间从逻辑上来说:是将多张表有规律的组织起来,便于用户管理。 系统表空间 创建orcl数据库时,系统默认将orcl数据库分为了一些表空间。 System Temp Users等 系统表空间没有特殊意义,深,25,Oracle表空间管理,默认表空间 当创建一个用户时,可以指定用户默认表空间,也就是用户今后创建表等数据对象时,都会放在默认表空间中。 语法为:create user 用户名 identified by 密码 default tablespace 表空间表; 如果不指定默认表空间,则默认为System表空间。 为什么需要表空
14、间? 第一、数据表非常多时,便于用户管理。 第二、数据量非常大时,便于将数据分布在不同的磁盘中。,深,26,Oracle表空间管理,创建表空间语法 create tablespace test -创建表空间 datafile D:oradataorcltest.dbf -表空间文件 size 32m -初始大小 autoextend on -自动增长打开 next 32m maxsize 2048m -每次增长32 删除表空间语法 Drop tablespace test 注意:如果表空间中有表,则不能删除。删除表空间不会删除表空间物理文件。 第一次课创建删除表空间.sql,深,27,Orac
15、le表的管理,Oracle数据类型 Char 定长字符串 最大可以存放 2000字符 Varchar2(20) 变长字符串 最大可以4000字符 当字符长度确定时,一般使用char类型,char类型在于查询匹配时,速度比变长字符串快很多倍。原因讲解。 Number 数字类型 number(10,2)表示一共有10个位数,小数点后有2个位数。如果没有指定,则默认为4个位数。,深,28,Oracle表的管理,Oracle数据类型 Date 包含年月日和时分秒 Timestamp 这是oracle 9i对date类型的扩展 Clob字符型大对象 最大可以存放4G Blob 二进制数据,可以存放图片/
16、声音 4G,深,29,Oracle表的管理,Oracle创建表 create table student( sid number(4), -学号 sname varchar2(20), -姓名 sex char(2), -性别 birthday date, -生日 sal number(7,2) -奖学金 ); 演示创建主键、非空、默认、检查、外键等约束。,深,30,Oracle表的管理,Oracle修改表 增加一列:alter table 表名 add (列名 类型); 修改字段的长度:alter table 表名 modify (列名 类型) 删除一列:alter table 表名 dro
17、p colnum 列 修改表的名字:rename 表名 to 表名 查看表结构:desc 表名;,深,31,Oracle表的管理,增加数据 单行数据增加 Insert into student values();注意日期格式的处理 Oracle中默认的日期格式为:DD-MM-YY 例如:01-5月-09 使用to_date函数转换日期类型。 多行增加语句 表复制语法:create table 目标表名 as select * from 源表名 疯狂复制法:insert into 表名 select * from 表名,深,32,Oracle表的管理,创建序列(自增长处理) create seq
18、uence myse increment by 1 -增长度 start with 1 -从哪里增加,就是说下一个获取的值从这个值开始 nomaxvalue -不设置最大值 对应的: maxvalue 30 演示使用序列,深,33,Oracle表的管理,修改数据(与sql server 2005一至) 单列修改 多列修改 把scott的岗位、工资、补助修改成与smith员工一样(oracle特点),深,34,Oracle表的管理,删除数据 Delete from 表名; Trancate table 表名; 前者删除数据可以恢复,而后者不能恢复。 演示用rollback恢复数据。,深,35,O
19、racle表的管理,表数据操作注意 更改日期格式只做用于当前连接中。 增加数据语句后必须带上commit;否则不会真正提交到数据库中。(演示) 使用exit命令退出时,会自动提交语句。 点关闭按钮退出,不会提交语句。 解释Oracle连接原理。,深,36,Oracle函数的使用,日期函数 日期转换函数 to_date(日期,格式)。举例:insert into student values(1,小样,to_date(2009-01-01,yyyy-mm-dd); Sysdate当前日期和时间。举例:Selectsysdatefromdual; To_char(日期,日期部分)。举例: Last
20、_day本月最后一天。举例:Selectlast_day(sysdate)fromdual; Add_months(d,n)当前日期d后推n个月。举例:Selectadd_months(sysdate,2)fromdual; 更多内容函数日期函数.doc,深,37,Oracle函数的使用,日期函数 查找已经入职8个月的员工 显示满10年服务年限的员工的姓名与受雇日期 对于每个员工,显示其加入公司的天数 找出各月倒数第3天受雇的所有员工,深,38,Oracle函数的使用,字符串函数使用 Lower(char):将字符串转化为小写的格式 Upper(char):将字符串转化为大写的格式 Lengt
21、h(char):返回符串的长度 Substr(char,m,n):取字符串的子串 将所有员工的名字按小写的方式显示 将所有员工的名按大写的方式显示 显示正好为5个字符的员工的姓名 显示所有员工姓名的前三个字符 以首字母大写的方式显示所有员工的姓名 以首字母小写的方式显示所有员工的姓名,深,39,Oracle函数的使用,字符串函数的使用 Replace(char1,目标子符串,替换字符串) Instr(char1,char2)取出子串在字符串中的位置 显示所有员工的姓名,用小替换所有的A,深,40,Oracle函数的使用,深,41,上机作业,待定,深,42,第三章 Oracle数据查询,回顾上一
22、章内容 认识示例表 简单查询 高级查询,深,43,回顾上一章内容,为什么Oracle中需要表空间? 小明向student表中加入一条数据,但小王查询student表时确没有看见。请问这是怎么回事? 小明不小心将一条重要的数据删除了,老板要开除小明。请问小明犯了什么错误,怎么样解决这个问题。,深,44,认识示例表,认识emp表: empno 员工编号 ename 员工姓名 job 员工职位 mgr 员工的上级编号 hiredate 员工入职时间 sal 员工工资 comm 员工奖金 deptno 员工部门编号,深,45,认识示例表,认识dept表: deptno: 部门编号 dname : 部门
23、名称 loc : 部门地址 两表中英文单词解释 Clerk:职员 manager:经理 Salesman:销售 president:总经理 Analyst:分析人员 accounting:财务部 Research:研发中心 sales:销售部,深,46,简单查询,查看表结构语法: 示例 Desc dept; 查询所有列 示例 select * from emp; 查询指定列 示例 select ename from emp; 比较查询所有列与查询指定列的速度。 set timing on; -打开操作时间开关,深,47,简单查询,去掉重复行数 查询员工职位 示例:select distinct
24、 job from emp; 区分大小写 查询名称为smith 的职位,薪水,部门编号,深,48,简单查询,在oracle中使用算术表达式 显示每个员工的年工资 select sal * 12 as 年工资 from emp; 取别名与sql server 的区别 显示每个员工的年工资和奖金。 select (sal * 12) ,(comm * 12) from emp; 讲解结果与实现数据的区别,解释此原因。 显示每个员工的年工资与奖金的总额。 select (sal * 12) + (nvl(comm,0) * 12),ename from emp;,深,49,简单查询,在oracle中
25、处理字符串连接的问题 select 姓名 | ename from emp; 使用where子句 显示工资高于3000的员工 显示1982.1.1后入职的员工 oracle默认日期格式为 天-月-年 显示工资在2000-2500的员工信息,深,50,简单查询,如何使用like操作符 通配符的使用:% _ 如何显示首字符为S的员工姓名和工资 如何显示第三个字符为大写O的所有员工的姓名与工资 在where条件使用in查询 显示empno为123,345,800 .的员工情况,深,51,简单查询,使用is null的操作符 显示没有上级的员工信息 使用逻辑操作符号 查询工资高于500或是岗位为man
26、ager的员工,同时还要满足他们的姓名首字母为大写J 使用order by 子句 按工资从低到高的顺序显示员工的信息 按部门号从高到低、工资从低到高排序,深,52,简单查询,数据统计函数 max min avg sum count 显示所有员工中最高工资和最低工资 显示所有员工的平均工资和工资总和 计算共有多少员工 显示工资最高的员工的名字,工作岗位 显示工资高于平均工资的员工信息,深,53,简单查询,groub by 和 having 子句 显示每个部门的平均工资和最高工资。 显示每个部门的每种岗位的平均工资和最低工资。 显示平均工资低于2000的部门号和它的平均工资。 分组 聚合小结 分组
27、后,只能查询组名与对于此组的聚合数据 聚合函数忽略所有空值 聚合函数不能放在where条件中 聚合函数出现在列中,只能接聚合函数和组名,深,54,简单查询,总结: 查询的语法总结,深,55,高级查询,多表联查 显示员工名,员工工资及所在部门的名字 解释笛卡尔集 显示部门号为10的部门名、员工名和工资 显示各个员工的姓名,工资,及其工资的级别 在联接查询时可以使用between and 显示员工名,员工工资及所在部门的名字,并按部门排序,深,56,高级查询,自连接 自己连自己,同一表进行联接查询 显示FORD员工的上级领导的姓名 连接查询小结 连接查询其实就是笛卡尔集的应用,深,57,高级查询,子查询(单行子查询) 显示与smith同一部门的所有员工 注意:数据库执行sql语句是从左到右的执行,所以应把过滤量大的条件放在sql语句的最左边。(性能
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 职业规划个人需求分析
- 《城镇燃气安全检查与评估标准》
- 重要文件分类归档与电子备份
- (正式版)DB32∕T 5386-2026 大跨木结构设计标准
- 2026江苏省人民医院宿迁医院(宿迁市第一人民医院)博士专项招聘30人考试备考试题及答案解析
- 2026年吉林大学辅导员招聘(20人)笔试模拟试题及答案解析
- 2026上海开放大学奉贤分校老年教育兼职教师(储备)招聘笔试参考题库及答案解析
- 2026山东聊城市教育和体育局直属学校招聘48人考试参考题库及答案解析
- 2026四川长虹电器股份有限公司招聘比价审计主管岗位1人考试备考题库及答案解析
- 2026年大兴安岭呼中区乡镇卫生院公开招聘医学毕业生补充2人考试参考题库及答案解析
- 2026安徽合肥市产业投资控股(集团)有限公司第二批校园招聘19人笔试备考题库及答案解析
- 2026年北京市海淀区初三一模英语试卷(含答案)
- (三诊)2026年4月德阳市高三年级适应性练习地理试卷(含答案)
- 广东省阳江市阳东区2024-2025学年七年级下学期期中地理试卷(含答案)
- 2025年消防文员笔试试题(100题及答案)
- 2026年初中英语阅读技巧
- 江西省人才发展集团有限公司2026年春季集中招聘专题【11人】建设笔试备考试题及答案解析
- 2026江苏镇江丹阳市自然资源和规划局招聘编外工作人员2人建设笔试备考试题及答案解析
- 2026年中国江西国际经济技术合作公司校园招聘笔试备考题库及答案解析
- Unit6-Howdowemeasuretime-(课件)-沪教版英语四年级下册
- 毕业设计(论文)-中药粉碎机设计
评论
0/150
提交评论