Oracle概述

不同版本区别

8i、9i 的 i 表示 :internet

10g 、11g 的 g 表示:grid网格计算

12c的 c 表示:cloud

服务启停

windows下命令行启动oracle服务:

  1. # 启动服务:OracleService+服务名
  2. net start oracleserviceorcl

数据库启停:

  1. SQL> startup
  2. SQL> shutdown immediate;

连接描述符

在使用 sqlplus mydata/tiger连接数据库时,连接的是本地数据库。

使用 sqlplus mydata/tiger@orcl 时,@为连接描述符,oracle会将连接描述符后面内容作为监听器连接。

Oracle基本使用

dual是什么

是Oracle下的一个字典表,属于sys用户。用于构造一个标准的SQL。

对优化器有一定影响。

SQL语句种类

  • DML(data manipulation language)
    • select
    • insert
    • update
    • delete
  • DDL(data definition language)

    • Create
    • Drop
    • Truncate

      截断。将表中的数据清空后,将表分配的空间进行回收。delete只删数据不回收空间。

    • Alter

  • DCL(data control language)
    • Grant
    • revoke

Oracle执行SQL的过程

select语句执行过程

  1. SQL解析(语法分析、语义分析)
  2. 执行计划
  3. 执行SQL
    1. 从磁盘中读取数据(如果内存中没有)
    2. 数据处理
    3. 返回结果

Insert、Update语句执行过程

  1. SQL解析
  2. 执行计划
  3. 执行SQL
    1. 从磁盘中读取数据块(如果内存中没有)
    2. 修改回滚段数据块(同时产生redo log)
    3. 修改原始数据块(同时产生redo log)

Create语句执行过程

  1. SQL解析
  2. 执行计划
  3. 执行SQL
    1. 给对象分配初始化的存储空间(段),产生一些 undo 和 redo 日志
    2. 在Oracle字典表中创建新的对象相关信息(表,字段,各种属性),产生一些 undo 和 redo 日志

Drop语句执行过程

  1. SQL解析
  2. 执行计划
  3. 执行SQL
    1. 收回对象占用的空间,产生一些 undo 和 redo 日志
    2. 在 Oracle 字典表中删除对象的相关信息(表,字段,各种属性),产生一些 undo 和 redo 日志