Oracle 简介(甲骨文公司)

  • Oracle 数据库管理系统
  • Oracle (甲骨文)公司核心产品
  • 目前最流行的商业及关系型数据库
  • 主流版本9i 10g/11g 12c(提供云服务)

Oracle 安装总结

注意事项

  • 选择安装目录最好是 非系统盘
  • 安装时可以直接创建数据库,也可以选择不创建
  • 服务器的主机名不能有特殊字符(一般默认用oracle安装的所在电脑IP作为主机名)
  • 数据库安装完毕,建议不要更改主机名

Oracle服务的启动与关闭

在服务型(在开始菜单输入services.msc)

  • OracleService<SID>:数据库服务
  • OracleOraDb11g_home1TNSListener:数据库监听服务
  • OracleDBConsole<SID>:企业管理器服务

配置网络服务

  • 利用Oracle自带的 Net Manager 工具进行服务和监听的创建
  • 服务名:即启动服务的SID,要求小写
  • 主机名:本地用 127.0.0.1 或 localhost 即可,但其他地址用 IP
  • 端口号:Oracle 指定默认端口号为 1521

数据库用户-系统用户

SYS 用户

  • 地位:Oracle 的一个超级用户
  • 作用:主要用来维护系统信息和管理实例
  • 登录身份:只能以 SYSDBA 或 SYSOPER 角色登录

SYSTEM

地位:Oracle 默认的系统管理员

作用:通常用来管理 Oracle 数据库的童虎、权限就、存储

登录身份:可以用 Normal 方式登录

表空间

概念:最大的逻辑单位

  • 作用:
    1. 方便存储管理数据
    2. 提高 I/O 读写性能(即读写速度)
    3.  便于增量、差异等方式进行备份和恢复
  • 分类(三种):(永久性表空间、临时性表空间、撤销表空间)
  • 默认表空间:
    • system(系统参数)
    • sysaux(权限)
    • user(用户)
    • undo(撤销)
    • temp(临时)

创建表空间

  • 通过CREATE TABLESPACE 命令建表空间

语法举例:

CREATE TABLESPACE smbms
DATAFILE 'D:\java\Oracle11g\oradata\oracle\smbms1.DBF'
SIZE 100M
[ AUTOEXTENO ON NEXT 32M MAXSIZE UNLIMITED]
  • 创建用户

语法:

CREATE USER user
IDENTIFIED BY password
[DEFAULT TABLESPACE tablespace]

例如:

CREATE USER smbms
IDENTIFIED BY smbms
DEFAULT TABLESPACE smbms
  • 权限与角色
    • 权限:
      • 用户必须赋予相应的权限,才能操作数据库
      • 权限指执行特定类型SQL 命令或访问其他对象的权利
      • 系统权限和对象权限
      • 系统权限允许用户执行某些数据库操作,如创建表就是一个系统权限
      • 对象权限允许用户对数据库对象(如表、视图、序列等)执行特定操作
    • 角色:
      • 为了简化权限管理,引入了角色的概念
      • 角色是具有名称的一组权限的组合
      • 常用系统预定义角色
      • CONNECT:临时用户
      • ROSOURCE:更为可靠和正式的用户
      • DBA:数据库管理员角色,拥有管理数据库的最高权限
-- 分配权限或角色
-- GRANT privileges or role TO user;
--例如:
GRANT CONNECT TO smbms; -- 临时登录权限
GRANT resource TO smbms; -- 更可靠的增删改查权限
-- 撤销权限或角色
-- REVOKE privileges or role TO user;
REVOKE CONNECT TO smbms; -- 撤销登录权限
REVOKE resource TO smbms; -- 撤销增删改查权限

注意事项:单行执行:即一条一条分开执行,不能一起执行

  • 建表
CREATE TABLE teacher
( tno number(4) not null,
tname varchar2(10) not null,
tid char(18),
gender char(2),
birthdate date
)
  • 添加列
ALTER TABLE teacher
add (
hiredate DATE,
sal NUMBER(7,2),
wechat VARCHAR2(20)
);
  • 修改列
alter table teacher MODIFY(tname VARCHAR2(30));
  • 删除列
alter table teacher DROP COLUMN wechat;
  • 用户切换问题
    • 金钥匙————输入用户名和密码进行切换

权限不足

  1. 创建用户和分配权限角色等 必须用 system 用户
    1. 普通用户是没有权限进行创建用户及自行分配
  2. 用户必须得到 connect 登录权限和 resource 增删改查权限,才能进行用户的常规功能操作(该权限只能由 system 用户分配)
  3. 用户登录错误问题
    1. 登录密码添错(系统用户密码和普通用户密码要识别清除)
    2. 找不到表(例如:原先创建的表在 smbms 用户下创建,然后用其他用户进行查看)

完整性内容

  • 四种完整性约束:域完整性、实体完整性、引用完整性、自定义完整性
  • 四种常用约束类型:主键约束、唯一键约束、检查约束、外键约束
  • 其对应的命名规则及关键字

语法

  • 主键约束
alter table teacher add constraint pk_teacher primary key(tno);
alter table dept add constraint pk_dept primary key(deptno);
  • 唯一键约束
alter table teacher add constraint uk_teacher_tname unique(tname);
  • 检查约束
alter table teacher add constraint ck_teacher_gender check(gender in('男','女'));
  • 外键约束
alter table teacher add constraint fk_teacher_deptno foreign key(deptno) 
references dept(deptno);
  • 删除约束
alter table teacher drop constraint CK_TEACHER_GENDER
-- 删除约束时,到对应的表中找到对应的约束,复制名称,然后删除

备份与恢复

备份:

  1. 利用PL/SQL工具,选中表–右键选择导出数据
  2. 按住Ctrl+鼠标左键选择需要导出的表(即可多选)
  3. 选择SQL插入(SQL+Insert) 选项卡,勾选 创建表 复选框,其他都取消勾选
  4. 在输出文件位置,选择导出路劲
  5. 文件命名为 当前登陆用户名.sql ,文件类型为SQL脚本文件
  6. 点击导出按钮,即可输出xxx.sql文件

恢复:

  1. 打开PL/SQL软件,拖拽SQL脚本文件到编辑区,删除脚本中的prompt….,仅保留create语句、alter语句、CRUD(增删改查)及commit语句
  2. 然后按F8运行

备份分类和恢复分类

备份分类:

  1. 两大角度(物理和逻辑、备份策略角度)
  2. 物理和逻辑角度:
    • 物理备份和逻辑备份
  3. 备份策略角度:
    • 完全备份、增量备份、差异备份

恢复分类:

  1. 两大角度:(实例恢复、介质恢复)
    1. 介质恢复:完全恢复和不完全恢复