oracle数据库自学文档整理资料详细.docx
- 文档编号:30348569
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:42
- 大小:41.28KB
oracle数据库自学文档整理资料详细.docx
《oracle数据库自学文档整理资料详细.docx》由会员分享,可在线阅读,更多相关《oracle数据库自学文档整理资料详细.docx(42页珍藏版)》请在冰豆网上搜索。
oracle数据库自学文档整理资料详细
1概述
1.1如何学习Oracle
1、第一阶段:
计算机基础(了解原理);
2、第二阶段:
学习一门编程语言(java或者C,C++);
3、第三阶段:
学习oracle数据库/别的数据库;
1.2Oracle内容介绍
基础部分:
oracle基本使用、oracle用户管理、oracle表管理。
高级部分:
oracle表的查询、oracle的函数、oracle数据库管理、oracle的权限、角色、
Pl/sql编程、索引、约束和事物。
推荐的Oracle书籍:
《Oracle实例教程》、《深入浅出Oracle》。
1.3Oracle安装事项
1、Oracle安装会自动生成scott用户、sys用户和system用户,密码分别是tiger、change_on_install、manager。
Sys用户是超级用户、具有最高权限、具有sysdba角色,有createdatabase的权限;sysytem用户是管理操作员,权限也很大,没有createdatabase权限,没有createdatabase的权限;一般讲,对数据库的维护,使用system用户登录就可以。
2、系统标示符又称(sid)。
3、数据库的启动需要启动的服务:
oracle监听、oracle实例。
4、Oracle管理工具的介绍,1)、在开始->程序->oracleorachome90->applicationdevlopment->sql*plus
2)、在运行栏中输入:
sqlplusw即可
3)、在开始->程序->oracleorahome90->applicationdevelopment->sql*plusworksheet
4)、pl/sqldevlopment工具。
1.4数据库的分类
1、小型数据库:
access、foxbase;对安全性要求不高。
2、中型数据库:
mysql、sqlserver、infomax;
3、大型数据库:
sybase . 数据库的考虑从以下角度: 1、负载量大小、用户数量。 2、成本。 3、安全性。 数据库的考试资格证: 1、ocm【oracle大师认证】;2、ocp【oracle专家级认证】; 3、oca【oracle初级认证】。 1.5SQL*PLUS常用命令 1、conn【ect】命令: 用法: conn用户名/密码@网络服务名【assysdba/sysoper】 sqlplus/nologconnusername/password@tnsname 或者conn/assysdba 或者connsys/sysdbapassword@tnsnameassysdba 2、disc[connect]说明: 该命令用来断开与当前数据库的连接。 passw[ord]说明: 该命令用于修改用户的密码,如果要想修改其它用户的面,需要用 sys/system密码登陆。 showuser说明: 显示当前用户名 exit说明: 该命令会断开与当前数据库的连接,同时会退出sql*plus。 3、文件操作命令: 1)、start和@ 说明: 运行sql脚本 案例: sql>@d: \a.sql或者sql>startd: \a.sql 2)、edit说明: 该命令可以编辑指定的sql脚本 案例: sql>editd: \a.sql。 3)、spool说明: 该命令可以将sql*plus屏幕上的内容 输出到指定文件中去。 spoolF: \test.log; select*fromnet_user; spooloff; 4、显示和设置环境变量: 1)、linesize 说明: 设置显示行的宽度,默认是80个字符 sql>showlinesize sql>setlinesize90 2)、pagesize 说明: 设置每页显示的行数目,默认是14 用法和linesize一样 至于其它环境参数的使用也是大同小异。 2用户以及权限管理 2.1用户基本操作 1、创建用户概述: 在oracle中要创建一个新的用户使用createuser语句,一般是具有DBA(数据库管理员)的权限才能使用。 createuserxiaomingidentifiedbym123; 2、给用户修改密码概述: 如果给自己修改密码可以直接使用,sql>password用户名; 如果给别人修改密码则需要具有dba的权限,或者拥有alteruser的系统权限, sql>alteruser用户名identifiedby新密码。 3、对象权限: select,insert,update,delete,all,createindex; grantselectonemptoxiaoming;grantselectanytabletoxiaoming; grantallonemptoxiaoming; 4、在删除用户时,如果要删除的用户,已经创建了表,需要使用cascade。 dropuserusernamecascade。 5、权限的赋予和收回: 赋予权限: grantallonemptoxiaoming; 收回权限: revokeselectonempfromxiaoming。 6、权限可以分为: 系统权限和对象权限。 角色可以分为预定义角色、自定义角色。 7、权限的传递: withgrantoption;如果是对象权限,就加上withgrantoption; grantselectonemptoxiaomingwithgrantoption; 如果是系统权限,就是grantconnecttoxiaomingwithadminoption; 被回收的权限,类似于古代的宪法。 8、Sysdba和sysoper具体的权限可以看下表: 系统权限 Sysdba Sysoper Startup(启动数据库) Startup Shutdown(关闭数据库) Shutdown Alterdatabaseopen/mount/backup Alterdatabaseopen/mount/backup 改变字符集 None Createdatabase None不能创建数据库 Dropdatabase None Createspfile Createspfile Alterdatabasearchivelog(归档日志) Alterdatabasearchivelog Alterdatabaserecover(恢复数据库) 只能完全恢复,不能执行不完全恢复。 拥有restrictsession(会话限制)权限 拥有restrictsession(会话限制)权限 可以让用户作为sys用户连接 可以进行一些基本操作,但不能查看用户数据 登录之后用户是sys 登录之后用户是public 2.2使用profile管理用户口令 概述: profile是口令限制,资源限制的命令集合, 当建立数据库时,oracle会自动建立名称为default的profile。 当建立用户没有指定profile选项,那oracle就会将default分配给用户。 (1)、账户锁定 概述: 指定该账户(用户)登陆时最多可以输入密码的次数,也可以指定用户锁定,用户锁定的时间(天)一般用dba的身份去执行该命令。 例子: 指定scott这个用户最多只能尝试3次登陆,锁定时间为2天,让我们看看怎么实现。 创建profile文件 sql>createprofilelock_accountlimitfailed_login_attempts3password_lock_time2; 将profile文件作用到用户 sql>alteruserteaprofilelock_account; 给账户(用户)解锁: alteruserteaaccountunlock; (2)、终止口令 为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要dba来操作。 例子: 给前面创建的用户tea创建一个profile文件,要求该用户 每隔10天要修改自身的登录密码,宽限期为2天。 看看怎么做: createprofilemyprofilelimitpassword_life_time10password_grace_time2; alteruserteaprofilemyprofile; (3)、删除profile 概述: 当不需要某个profile文件时,可以删除该文件。 dropprofilepassword_history[cascade] (4)、创建profile createprofiletest_profileLIMIT SESSIONS_PER_USER1 CPU_PER_CALL10 CPU_PER_SESSIONUNLIMITED LOGICAL_READS_PER_CALL1000 LOGICAL_READS_PER_SESSIONUNLIMITED CONNECT_TIME1000 IDLE_TIME1; SESSIONS_PER_USER用户最大并发会话数 CPU_PER_CALL单语句的最大CPU时间,超过语句会终止(单位: 百分之一秒) LOGICAL_READS_PER_CALL单语句的最大读取数据块数(包括读缓存和物理磁盘),没完成语句终止,数据回滚 CONNECT_TIME连接的最长时间(单位: 分钟) IDLE_TIME不执行任何数据活动的情况下保持连接的最长时间(单位: 分钟) (5)、showparameterresource_limit; altersystemsetresource_limit=TRUE; 只有resource_limit为TRUE时,资源限制才有效 2.3管理数据库的用户主要是sys和system 在前面我们已经提到这两个用户(sys是董事长,system是总经理),区别主要是: 1)、最重要的区别,存储的数据的重要性不同 sys: 所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行时至关重要的,由数据库自己维护,任何用户都不能手动更改,sys用户拥有dba,sysdba,sysoper角色或权限,是oracle权限最高的用户。 system: 用于存放一级的内部数据,如oracle的一些特性或工具的管理信息。 system用户拥有dba、sysdba角色或系统权限。 2)、其次的区别,权限的不同 sys用户必须以assysdba或assysoper形式登陆,不能以normal方式登陆数据库。 system如果正常登录,它其实就是一个普通的dba用户,但是如果以assysdba登录,其结果实际上它是sys用户登录的。 2.4DBA的职责 1安装和升级oracle数据库。 2建库、表空间、表、视图、索引。 3制定并实施备份与恢复计划。 4数据库权限管理,调优,故障排除。 5对于高级dba,要求能参与项目开发,会编写sql语句、存储过程、触发器、规则、约束、包。 2.5dba权限的用户 dba用户是指具有dba角色的数据库用户,特权用户可以执行启动实例,关闭实例 等特殊操作,而dba用户只有在启动数据库后才能执行各种管理工作。 2.6用户名、权限、角色 在建立用户时,oracle会把用户的信息存放到数据字典中,当给用户授予权限或是角色时,oracle会将权限和角色的信息存放在数据字典。 通过查询dba_usrs可以显示数据库用户的详细信息; 通过查询数据字典视图dba_sys_privs,可以显示用户所具有的系统权限; 通过查询数据字典视图dba_tab_privs,可以显示用户所具有的对象权限; 通过查询数据字典视图dba_col_privs,可以显示用户所具有的列权限; 通过查询数据字典视图dba_role_privs,可以显示用户所具有的角色; oracle大概有140种权限。 权限分2种: 系统权限、对象权限。 1、系统权限: 用户对数据库的相关权限。 如: createsession;2、对象权限: 用户对其它用户的数据对象操作的权限。 selectinsertupdatedeleteallcreateindex;收回权限: revokeselectonempfromxiaoming;grantallonemptoxiaoming。 角色: 预定义角色、自定义角色。 权限的传递: withgrantoption;1、如果是对象权限,就加上withgrantoption;2、如果是系统权限,就是grantconnecttoxiaomingwithadminoption;被回收的权限,类似于古代的宪法。 系统权限介绍: 1、系统权限是指执行特定类型sql命令的权利。 它用于控制用户可以执行的一个或是一组数据库操作。 比如当用户具有createtable权限时,可以在其方案中建表,当用户具有createanytable权限时,可以在任何方案中建表,oracle提供了100多种系统权限。 常用的有: Createsession连接数据库createtable建表 Createview建视图createpublicsynonyms建同义词 Createproduce建过程、函数、包createtrigger建触发器 Createcluster建簇 2、oracle提供了100多种系统权限,而且oracle的版本越高,提供的系统权限就越多,我们可以查询数据字典视图system_privilege_map可以显示所有系统权限。 Select*fromsystem_privilege_maporderbyname; 3、一般情况,授予系统权限是由dba完成的,如果用其它用户来授予系统权限,则要求该用户必须具有grantanyprivilege的系统权限。 在授予系统权限时,可以带上withadminoption选项。 这样,被授予权限的用户或是角色还可以将该系统权限授予其它的用户或是角色。 4、withadminoption选项,可使被授予权限者有权转授其他人。 5、表dba_sys_privs结构? 对象权限介绍: 指访问其它方案对象的权利,用户可以直接访问自己方案的对象。 但是如果要访问别的方案的对象,则必须具有对象的权限。 比如smith用户要访问scott.emp表(scott: 方案,emp: 表)则必须在scott.emp表上具有对象的权限。 常用的有: alter修改delete删除select查询insert添加 Update修改index索引reference引用execute执行 通过数据视图可以显示用户或是角色所具有的对象权限。 视图为dba_tab_privs。 授予列权限: grantupdate(sal)onemptomonkey; Grantselectonemp(ename,sal)tomonkey; 3Oracle表基础 3.1Oracle表名和列明的命名规则 1、必须以字母开头 2、长度不能超过30个字符 3、不能使用oracle的保留字 4、只能使用如下字符A-Z,a-z,0-9,$,#等(sys用户下有很多的表带有$符号,列名带有#号)。 3.2字符型 char定长最大2000字符 例子: char(10)'小韩'前4个字符放'小韩',后添加6个空格补全。 varchar2(20)变长最大4000字符。 例子: varchar2(10)'小韩'oracle分配4个字符,这样可以节省空间。 clob(characterlargeobject)字符型大对象最大4G 3.3数字型 number范围10的-38次方10的38次方可以表示整数,也可以表示小数。 number(5,2)表示一个小数有5位有效数,2位小数,范围-999.99-999.99。 number(5)表示一个5位整数,范围-99999–99999。 3.4日期类型和图片 date包含年月日和时分秒 timestamp这是oracle9i对date数据类型的扩展。 blob二进制数据可以存放图片/声音4G 3.5表的修改 1)、添加字段 sql>altertablestudentadd(classidnumber (2)); 2)、修改字段长度 sql>altertablestudentmodify(xmvarchar2(30)); 3)、修改字段类型 sql>altertablestudentmodify(xmchar(30)); 4)、删除一个字段 sql>altertablestudentdropcolumnsal; 5)、修改表名字 sql>renamestudenttostu; 6)、删除一个字段 sql>droptablestudent; truncatetablestudent;删除表中的所有记录, 表结构还在,不写日志,无法找回删除的记录,速度快。 7)、保存点的设置与回滚。 设置: sql>savepointaa;回滚: sql>rollbacktoaa; 3.6在多行子查询中使用all、any操作符 显示工资比部门30的所有员工的工资高的员工的姓名、工资和部门号 selectename,sal,deptfromempwheresal>all(selectsalfromempwheredeptno=30); selectename,sal,deptfromempwheresal>any(selectsalfromempwheredeptno=30); 3.7合并查询 有时在实际应用中,为了合并多个select语句的结果,可以使用集合操作符union,unionall,intersect,minus。 3.8创建数据库有两种方法: 1)、通过oracle提供的向导工具; 2)、我们可以用手工步骤直接创建。 3.9Java操作Oracle 1)、加载驱动 2)、得到连接 3)、执行查询 3.10事务 1、什么是事物 事物用于保证数据的一致性,它由一组相关的dml语句组成,该组的dml语句要么全部成功,要么全部失败。 如: 网上转账就是典型的要用事物来处理,用以保证数据的一致性。 2、事物和锁 当执行事物操作时(dml语句),oracle会在被作用的表上加锁,防止其它用户改表的结构,这里对我们用户来讲是非常重要的。 3、回退事务 在介绍回退事物前,我们先介绍一下保存点(savepoint)的概念和作用,保存点是事务中的一点,用于取消部分事务,当结束事务时,会自动的删除该事务所定义的所有保存点。 当执行rollback时,通过指定保存点可以回退到指定点。 4、提交事务 使用commit语句可以提交事务,当执行了commit语句后,会确认事务的变化、结束事务、删除保存点、释放锁,当使用commit语句结束事务后,其它会话将可以查看到事务变化后的新数据。 5、事务的几点重要操作 1)、设置保存点savepointa 2)、取消部分事务rollbacktoa 3)、取消全部事务rollback 6、只读事务 只读事务是指只允许执行查询的操作,而不允许执行任何其它dml操作的事务,使用只读事务,使用只读事务可以确保用户只能取得某时间的数据。 假定机票代售点每天18点开始统计今天的销售情况,这时可以使用只读事务,在设置了只读事务后,尽管其它会话可能会提交新的事物,但是只读事务将不会取得最新数据的变化,从而可以保证取得特定时间点的数据。 设置只读事务settransactionreadonly 4Oracle函数 4.1数据截取函数 round(n,[m])该函数用于执行四舍五入,如果省掉m,则四舍五入到整数,如果是m是正数,则四舍五入到小数点的m位后。 trunc(n,[m])该函数用于截取数字,如果省掉m,就截去小数部分,如果m是负数,则截取到小数点的前m位。 floor(n)返回小于或等于n的最大整数 ceil(n)返回大于或是等于n的最小整数 4.2字符函数 字符函数是oracle中最常用的函数, lower(char): 转化成小写 upper(char): 转化成大写 length(char): 求字符串的长度 substr(char,m,n): 取字符串的长度 replace(char1,search_string,replace_string) instr(char1,char2[,n[,m]]): 取字符串在字符串的位置 4.3日期函数 默认情况下日期格式是dd-mon-yy,即12-7月-78 sysdate: 返回系统时间 add_months(d,n): last_day(d): 返回指定日期所在月份的最后一天 4.4系统函数 1)、terminal: 当前会话客户所对应的终端标示符 2)、language: 语言 3)、db_name: 当前数据库名称。 4)、nls_date_formate: 当前会话客户所对应的日期格式 5)、session_user: 当前会话客户对应的数据库门户名 6)、current_schema: 当前会话客户对应的默认方案名 7)、host: : 返回数据库所在主机的名称 5数据库备份导入导出 5.1逻辑备份 逻辑备份是指使用工具export将数据库对象的结构和数据导出到文件的过程,逻辑恢复是指当数据库对象被误解操作而损坏后使用工具import利用备份的文件,把数据对象导入到数据库的过程。 物理备份即可在数据库open的状态下进行也可在关闭数据库后进行, 但是逻辑备份和恢复只能在open的状态下进行。 5.2导出 导出具体分为: 导出表,导出方案,导出数据库三种方式。 导出使用exp命令来完成的,该命令常用的选项有: userid: 用于指定执行导出操作的用户名,口令,连接字符串 tables: 用于指定执行导出操作的表 owner: 用于指定执行导出操作的方案 full=y: 用于指定执行导出操作的数据库 inctype: 用于指定执行导出操作的增量类型 rows: 用于指定执行导出操作是否导出表中的数据 file: 用于指定导出文件名 1)、导出自己的表 expuserid=scott/ti
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle 数据库 自学 文档 整理 资料 详细