Oracle学习记录——1.Oracle简介

1.Oracle简介

Oracle是目前最流行的数据库之一,功能强大,性能卓越

Oracle完全可以代表数据库的最高水平,因此,学习Oracle需要具备一定的基础。

Oracle学习路线

  • 基础部分

    1. 安装/卸载

    2. 链接数据库

    3. 退出数据库

    4. 用户管理

    5. 表管理

  • 进阶部分

    1. 表操作(增删改查),即CRUD

    2. 角色、权限

    3. 函数

    4. sql编程

    5. 数据库

    6. 索引(有效解决大量数据查询效率的有效手段)

    7. 约束,主外键关联

    8. 事务(用于保证事务的完整性)

2.数据库的比较

目前主流数据库

  • 微软:Sql Serveraccess
    • Sql Server非常适合.net体系语言,其他语言也可以,只不过存在效率和稳定度的问题。
  • 瑞典:AB公司的MySql
    • Mysql的前身就是瑞典AB公司的产品,后被Oracle收购。
  • IBM公司:db2和informix
    • db2,大型数据库(体量大过了Oracle)
  • 美国Sybase公司:Sybase
  • 美国Oracle公司:Oralce

Oracle跟MySql的比较

  • MySql没有在权限/角色上的要求,是一种中小型的数据库

  • Oracle在权限/角色上的要求特别严格,这样可以防止所谓的“删库跑路”

数据库划分

  1. 负载量,并发数

  2. 成本(项目经费)

  3. 安全(迄今为止最重要的,也是最看重的)

  4. 根据规模来划分:

    1. 小型数据库

      • 数据库:access、foxbase、sqlite
      • 负载量:很小,10个人以内使用,除了sqlite(1个人)
      • 成本:2000元以内,除了sqlite(免费)
      • 安全性:几乎没有
    2. 中型数据库

      • 数据库:Sql Server、MySql、Informix
      • 负载量:100人左右(单机)
      • 成本:万元以内(Sql Server),虽然Sql Server是收费的,但是他有教育成本
      • 安全性:具有安全性,但不是很强
    3. 大型数据库

      • 数据库:db2、Oracle、sybase
      • 负载量:db2 > oracle > sybase
      • 成本:万元以内(Sql Server),虽然Sql Server是收费的,但是他有教育成本
      • 安全性:具有安全性,但不是很强

3.Oracle数据库的安装

  1. 确认你的计算机没有和Oracle相关内容
  2. 如果要安装Oracle数据库之前建议做两个准备工作:关闭防火墙,断开网络
  3. 安装过程可以参考其他文章,这里不再详述

4.Sql Plus语法

Oracle的sqlplus是与oracle数据库进行交互的客户端工具,借助sqlplus可以查看、修改数据库记录。在sqlplus中,可以运行sqlplus命令与sql语句。

登录sqlplus:在cmd平台下输入

sqlplus

登录之后,需要输入相应的用户名和密码,当显示以下结果时:

在这里插入图片描述

就说明登录Sql Plus成功。

这里再学习一下Sql Plus的常见语法。

Sql Plus常见语法

  1. 查询登录用户
show user
  1. 查询所有的表
SELECT * FROM tab
  1. 修改每页显示的行数
set linesize <行数>
  1. 退出Sql Plus
exit
  1. 通过Sql Plus新建文件
edit <目录/文件名.后缀名>
  1. 执行文件中的sql指令,如果后缀名是.sql可以省略
start <目录/文件名.后缀名>

或者

@ <目录/文件名.后缀名>
  1. 将Sql Plus屏幕上的内容保存在文件中

开始:

spool <sql文件>

结束:

spool off

会记录spool在开始和结束之中的所有信息。

  1. 创建用户
create user <用户名> identified by <密码>

注意:在11g以下的版本中,密码必须以字母开头,否则不会创建用户。另外,创建用户需要管理员权限

  1. 修改用户的密码,如果给自己修改密码可以直接使用
password <用户名>

注意:如果给别人修改密码则需要具有dba的权限,或是拥有alter user的系统权限

alter user <用户名> identified by <新密码>

  1. 删除用户
drop user <用户名> [cascade]

注意:如果要删除用户则需要具有dba的权限,或是拥有drop user的系统权限。另外,如果要删除的用户,已经创建了表,那么就需要在删除的时候带一个参数cascade

  1. 切换用户
conn <用户名/密码>

Sql Plus中的用户管理

创建的新用户是没有任何权限的,甚至连登陆数据库的权限都没有,需要为其指定相应的权限。给一个用户赋予权限使用命令grant,回收权限使用命令revoke。

  • grant

授权给需要登录的用户

grant connect to <需要登录的用户>

注意:这个connect不是登录权限,它是Oracle默认的权限角色(可以参考RBCA原理)

授权给需要查询的用户

grant select on <表名> to <需要查询的用户>

注意:在查询的时候,需要带上表的归属者,示例如下:

希望a用户可以查询b用户的c表

select * from b.c
  • revoke

收回用户的查询权限

revoke select on <表名> to <被撤销查询权限的用户>

注意:一般情况下,回收系统权限是dba来完成的,如果其他的用户想要回收系统权限,要求该用户必须具有相应的系统权限及转授系统权限的选项(with <admin> option)

  • 授予权限的继承

带有(with <admin> option(对象权限))的属性的意思就是将授权的权限一次性给予客户。

假设A是普通用户,具有一定权限,B和C是新建的用户,没有任何权限

A可以赋予B查询某张表的权限,但B不可以接着将相同的权限给予C。

若此刻是A用户,执行以下语句,将查询权交给B:

grant select on <某张表> to B

可以执行。当切换到B用户时,执行而以下语句:

grant select on <某张表> to C

会提示失败。

此刻,再次切换到A用户,加上之前提到的关键词:

grant select on <某张表> to B with grant option

授予完成后,切换到B用户,此刻B已然具有给C授权的权限。

注意:执行完以上操作后,B和C此刻都具有查询A中某张表的权限。但是若A用户收回B用户的查询权限,C用户的查询权限也会跟着被收回,可以理解成所谓的“连带责任”

  • 使用profile管理用户口令

profile是口令限制,资源限制的命令集合,当建立数据库时,Oracle会自动建立名称为default的profile,当建立用户没有指定profile选项,那么Oracle就会将default分配给用户。

账户锁定

指定该用户登录时最多可以输入密码的次数,也可以指定用户锁定的时间(天)一按用dba的身份去执行该命令。

例如:指定scott这个用户最多只能尝试3次登陆,锁定时间为两天,sql语句如下:

SQL>create profile lock_account limit failed_login_attempts 3 password_lock_time 2;
SQL>alter user scott profile lock_acount;

给用户解锁

alter user scott account unlock;

终止口令

为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要dba来操作。

例如:给tea这个用户创建一个profile文件,要求改用户每隔10天要修改自己的登录密码,宽限期为2天,sql语句如下:

SQL>create profile password_history limit password_life_time 10 password_grace_time 2;

password_reuse_time这句话的意思是:指定口令可重用的时间,上例即说明10天后该口令就可以重用。

口令历史

如果希望用户在修改密码时,不能使用以前使用过的密码,可使用口令历 史,这样oracle 就会将口令修改的信息存放到数据字典中,这样当用户修改密码时, oracle 就会对新旧密码进行比较,当发现新旧密码一样时,就提示用户重新输入密码。

例子:首先建立profile

SQL>create profile password_history limit password_life_time 10
password_grace_time 2 password_reuse_time 10

password_reuse_time:指定口令可重用时间即10 天后就可以重用

随后,分配给某个用户即可

删除口令

当不需要某个profile 文件时,可以删除该文件。

例子:

SQL>drop profile password_history[casade]

注意:文件删除后,用这个文件去约束的那些用户通通也都被释放了。加了casade,就会把级联的相关东西也给删除掉

目录如下: 1 Oracle 结构组件 目标 1-2 基本结构概述 1-3 Oracle 服务器 1-4 Oracle 实例 1-5 建立连接和创建会话 1-6 Oracle 数据库 1-7 物理结构 1-8 内存结构 1-9 系统全局区(SGA) 1-10 共享池 1-12 库缓存 1-13 数据字典缓冲区 1-14 数据库缓冲区 1-15 重做日志缓冲区 1-18 大储存池 1-19 JAVA 池 1-20 程序全局区(PGA) 1-21 进程结构 1-22 用户进程 1-23 服务进程 1-24 后台进程 1-25 数据库写进程(DBWn) 1-26 日志写进程(LGWR) 1-27 系统监控器(SMON) 1-28 进程监控器(PMON) 1-29 检查点进程(CKPT) 1-30 归档进程(ARCn) 1-31 逻辑结构 1-32 执行一个 SQL 语句 1-33 小结 1-34 2 Oracle 服务器入门 目标 2-2 数据库管理工具 2-3 Oracle 通用安装程序 2-4 交互式安装 2-5 使用反应文件的非交互式安装 2-6 Oracle 数据库配置助手 2-8 最优灵活体系结构(OFA) 2-9 Oracle 软件和文件位置 2-10 数据库管理员用户 2-11 ii 数据管理员的验证方式 2-12 使用密码文件验证 2-13 SQL*PLUS 2-14 Oracle 企业管理器 2-15 Oracle 企业管理器结构:基于 JAVA 的控制台和应用程序 2-16 Oracle 企业管理器结构:管理节点 2-17 Oracle 企业管理器控制台 2-18 DBA 工具 2-19 小结 2-20 3 管理 Oracle 实例 目标 3-2 初始化参数文件 3-3 PFILE initSID.ora 3-5 PFILE 例子 3-6 SPFILE spfileSID.ora 3-7 创建一个 SPFILE 3-8 SPFILE 例子 3-9 Oracle 管理文件 3-10 Oracle 管理文件例子 3-11 打开一个数据库 3-12 STARTUP 命令 3-15 ALTER DATABASE 命令 3-16 以受限模式打开数据库 3-17 以只读模式打开数据库 3-18 关闭数据库 3-19 关闭选项 3-20 用检测诊断文件管理一个实例 3-22 警报日志文件 3-23 后台跟踪文件 3-24 用户跟踪文件 3-25 允许和禁止用户跟踪 3-26 小结 3-26 4 创建数据库 目标 4-2 管理和组织一个数据库 4-3 创建的前提条件 4-4 规划数据文件的位置 4-5 创建数据库的方法 4-6 操作系统环境 4-7 使用数据库配置助手 4-8 创建数据库 4-9 数据库信息 4-10 iii 典型或用户自定义安装 4-11 其它参数 4-12 完成数据库创建 4-13 手动创建数据库 4-14 准备参数文件 4-15 创建 SPFILE 4-15 启动实例 4-16 创建数据库 4-17 使用 OMF 创建数据库 4-19 差错检测 4-20 数据库创建以后 4-21 小结 4-22 5 数据字典内容和使用 目标 5-2 数据字典 5-3 数据字典内容 5-5 如何使用数据字典 5-6 数据字典视图种类 5-7 动态性能表 5-8 查询数据字典和动态性能视图 5-9 数据字典例子 5-10 小结 5-10 6 维护控制文件 目标 6-2 控制文件 6-3 控制文件的内容 6-4 使用 SPFILE 多重控制文件 6-5 使用 init.ora 多重控制文件 6-6 用 OMF 管理控制文件 6-7 获得控制文件的信息 6-8 小结 6-9 7 维护重做日志文件 目标 7-2 使用重做日志文件 7-3 重做日志文件的结构 7-4 重做日志是如何工作的 7-5 强制日志切换和检查点 7-6 增加联机重做日志组 7-7 增加联机重做日志成员 7-8 删除联机重做日志组 7-9 删除联机重做日志成员 7-10 iv 清除、重定位或重命名联机重做日志文件 7-11 联机重做日志的配置 7-12 用 OMF 管理联机重做日志 7-13 获取组和成员的信息 7-14 归档重做日志文件 7-16 小结 7-18 8 管理表空间和数据文件 目标 8-2 概述 8-3 数据库的储存层次 8-5 SYSTEM 和非 SYSTEM 表空间 8-7 创建表空间 8-8 表空间的空间管理 8-9 本地管理表空间 8-10 字典管理表空间 8-11 改变存储设置 8-12 回滚表空间 8-13 临时表空间 8-14 缺省临时表空间 8-15 缺省临时表空间的限制 8-16 脱机状态 8-17 只读表空间 8-19 删除表空间 8-20 改变表空间的大小 8-21 允许数据文件的自动增长 8-22 手工改变数据文件的大小 8-23 给表空间添加数据文件 8-24 移动数据文件:ALTER TABLESPACE 8-25 为表空间的创建设置 ORACLE 管理文件(OMF) 8-27 使用 OMF 创建表空间 8-28 获得表空间的信息 8-29 小结 8-29 9 储存结构与关系 目标 9-2 概述 9-3 段的类型 9-4 储存子句的优先次序 9-7 片的分配和重新分配 9-8 使用和释放片 9-9 数据块 9-10 数据块的内容 9-11 块空间的利用的参数 9-12 v 自动段空间管理 9-14 设置自动段空间管理 9-16 手动数块管理 9-17 块空间的用法 9-18 数据字典视图 9-19 获取储存信息 9-20 小结 9-21 10 管理回滚段 目标 10-2 回滚段管理概述 10-3 回滚段 10-4 回滚段:用途 10-5 读一致性 10-6 回滚段的类型 10-7 自动回滚管理:概念 10-8 自动回滚管理:设置 10-9 自动回滚管理:初始化参数 10-10 自动回滚管理:UNDO 表空间 10-11 自动回滚管理:改变和 UNDO 表空间 10-12 自动回滚管理:转换 UNDO 表空间 10-13 自动回滚管理:删除一个 UNDO 表空间 10-14 自动回滚管理:其它参数 10-15 回滚数据的状态 10-16 自动回滚管理:调整 UNDO 表空间大小 10-17 自动回滚管理回滚配额 10-18 获取回滚段信息 10-19 小结 10-20 11 管理表 目标 11-2 储存用户数据 11-3 Oracle 数据类型 11-5 ROWID 格式 11-8 行的结构 11-10 创建一张表 11-11 创建临时表 11-13 创建表:指南 11-14 修改储存参数 11-15 手工分配片 11-16 重构非分区表 11-17 截断一张表 11-18 删除一张表 11-19 删除一列 11-20 vi 使用 UNUSED 选项 11-21 获取表的信息 11-23 小结 11-25 12 管理索引 目标 12-2 索引的分类 12-3 B 树索引 12-4 位图索引 12-6 B 树索引和位图索引的比较 12-7 创建普通 B 树索引 12-8 创建索引:指导 12-10 创建位图索引 12-11 修改索引的储存参数 12-12 分配和回收索引空间 12-13 重构索引 12-14 联机重构索引 12-16 合并索引 12-17 检查索引的有效性 12-18 删除索引 12-19 确认不使用的索引 12-20 获取索引信息 12-21 小结 12-21 13 维护数据的完整性 目标 13-2 数据的完整性 13-3 约束的类型 13-4 约束的状态 13-5 约束的检测 13-7 定义即时约束或延迟约束 13-8 强制主键和唯一键 13-9 外部关键字的考虑 13-10 在建表时定义完整性约束 13-11 定义约束的指导原则 13-13 允许约束 13-14 使用 EXCEPTIONS 表 13-16 获取约束信息 13-18 小结 13-20 14 管理密码安全和资源 目标 14-2 配置文件 14-3 密码管理 14-4 vii 允许密码管理 14-5 帐号密码锁定 14-6 密码寿命和过期 14-7 密码历史 14-8 密码验证 14-9 用户自定义密码函数 14-10 密码验证函数 VERIFY_FUNCTION 14-11 创建配置文件:密码设置 14-12 修改配置文件:密码设置 14-14 删除配置文件:密码设置 14-15 资源管理 14-16 允许资源限制 14-17 在会话级别设置资源限制 14-18 在调用级别设置资源限制 14-19 创建配置文件:资源限制 14-20 使用数据库资源管理器管理资源的使用 14-22 资源计划指示 14-24 获取密码和资源限制的信息 14-25 小结 14-26 15 管理用户 目标 15-2 用户和安全 15-3 数据库方案 15-4 检查创建用户 15-5 创建新用户:数据库验证 15-6 创建新用户:操作系统验证 15-8 改变用户的表空间限额 15-9 删除用户 15-10 获取用户的信息 15-11 小结 15-12 16 管理权限 目标 16-2 管理权限 16-3 系统权限 16-4 系统权限:例子 16-5 授予系统权限 16-6 SYSDBA 和 SYSOPER 权限 16-7 系统权限限制 16-8 回收系统权限 16-9 使用 WITH ADMIN OPTION 选项时回收系统权限 16-10 对象权限 16-11 授予对象权限 16-12 viii 回收对象权限 16-13 使用 WITH GRANT OPTION 选项时回收对象权限 16-14 获取权限信息 16-15 审计 16-16 审计指南 16-17 审计种类 16-19 数据库审计 16-20 审计选项 16-21 查看审计选项 16-23 获取审计记录 16-24 小结 16-25 17 管理角色 目标 17-2 角色 17-3 角色的优点 17-4 创建角色 17-5 预定义的角色 17-6 修改角色 17-7 分配角色 17-8 建立默认角色 17-9 应用程序角色 17-10 允许和禁止角色 17-11 撤销用户角色 17-13 删除角色 17-14 创建角色指南 17-15 使用密码和默认角色指导原则 17-16 显示角色信息 17-17 小结 17-18 18 使用全球支持 目标 18-2 全球支持特性 18-3 不同类型的方案编码 18-4 数据库的字符集和国家字符集 18-6 选择 Oracle 数据库字符集的指导原则 18-7 选择 Oracle 数据库国家字符集的指导原则 18-8 为双字节字符数据库选择一种统一代码方案 18-9 为双字节字符数据类型选择一种统一代码方案 18-10 指定语言相关行为 18-11 为服务器指定语言相关行为 18-12 语言和地区相关的缺省值 18-13 为会话指定语言相关的行为 18-14 客户端-服务器体系中的字符集 18-15 ix 为会话指定语言相关的行为 18-16 语言排序 18-17 NLS 排序 18-18 在 SQL 函数中使用 NLS 参数 18-20 语言索引支持 18-23 使用 NLS 导入和装载数据 18-24 获取字符集相关的信息 18-25 获取 NLS 相关的设置信息 18-26 全球支持实用工具 18-30 小结 18-31
相关推荐
©️2020 CSDN 皮肤主题: 技术工厂 设计师:CSDN官方博客 返回首页