Oracle简介
维基百科
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。到目前仍在数据库市场上占有主要份额。
Oracle数据特点
完整的数据管理功能:
- 数据的大量性
- 数据保存的持久性
- 数据的共享性
数据的可靠性
完备关系的产品
信息准则一关系型DBMS的所有信息都应在逻辑上用一种方法,即表中的值显示地表示
- 保证访问的准则
- 视图更新准则一只要形成视图的表中的数据变化了,相应的视图中的数据同时变化
- 数据物理性和逻辑性独立准则
Oracle体系结构
Oracle Server(服务器)
Oracle服务器是最大的概念,包含多种文件的结构,进程结构和内存结构;但是,处理SQL语句是,并非所有这些结构都会用到.某些结构用于提高数据库的性能,确保数据库在遇到软件或硬件错误时可以恢复,或者执行维护改数据库所需的其他任务.
Oracle服务器包含两个部分:Oracle Instance(实例)和Oracle Database(数据库)
Oracle Instance(实例)
定义:访问Oracle Database的一个手段;一个instance对应一个切也只能对应一个database,一个database可以有多个instance来访问它,也就是说instance和database是多对一个的关系,在典型的去年高考下,一台机器上装的Oracle,他们俩是一对一的关系,对应集群放是(RAK)是多对一;instance也是由两个部分组成:内存(memory)和后台进程(background process)
memory有两部分组成:SGA(system global area,系统全局区)和PGA(program global area,程序全局区);一个实例就是一个SGA,SGA实例的基本组成部分;一个server process启动的时候,就有一个PGA;oracle是一个吃内存的软件,内存主要消耗在SGA上
instance是活的东西,易于消失,oracle没有启动的话,也就没有instance
SYS用户和SYSTEM用户
Oracle安装会自动的生产sys用户和system用户
- sys用户是超级用户,具有最高权限,具有sysdba,有create database权限,改用户默认的密码change_on_install(安装时设定.用户手动给的)
- system用户是管理操作员,权限也很大.具有sysoper角色,没有create database,默认密码是manager
- 一般讲,对数据库维护,使用system永固登录就可以登录就可以
- 普通用户:scott 密码:安装时内置好,系统设定,默认tiger,默认锁定的
注意:也就是说sys和system这两个用户最大的区别是在于有没有create database的权限。
C:> sqlplus
请输入用户名:sys
输入口令:sys as sysdba //注意:在口令这里输入的密码后面必须要跟上 as sysdba 才可以。
SQL> alter user scott account unlock;
用户已更改.
SQL> commit;
提交完成.
SQL> conn scott/tiger
更改scott口令
新口令:tiger
重新键入新口令:tiger
口令已更改
已连接。
//完成。
创建一个用户
创建一个用户dog,密码 :1
create user dog identified by 1
给dog分配两个角色 Connect 和Resource
grant Connect, Resource to dog
数据字典解释
1.数据字典是指对数据的数据项,数据结构,数据流,数据存储,逻辑处理,外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明.
2.数据字典是一种用户可以访问的记录数据库和应用程序源数据的目录.主动数据字典是指对数据库或应用程序进行修改时,其内容可以由DBMS自动更新的数据字典.
3.数据字典的主要作用:数据字典和数据流图共同构成系统的逻辑模型.没有流通数据字典难以发挥作用.没有数据字典,数据流图就不严格.
Oracle Database
Connection(链接)和session(会话).一个Connection主要指oracle客户端与后台服务器建立的链接,即客户端与服务器之间的通道.只有当链接建立起来以后,才能建立session会话.
从物理结构分析,Oracle Database主要包括三种文件类型.Data files(数据文件), Control files(控制文件)和Redo Log files(归档日志文件)以及password file (口令文件)等
Data files(数据文件)
用于存储数据库数据,它包括数据字典,用户数据,UNDO数据,临时数据等。数据库逻辑上由一个或多个表空间Tablespace组成,而表空间在物理上由一个或多个数据文件组成。
Control files(控制文件)
用于记录和维护数据库的物理结构
Redo Log files(重做日志文件)
用于记录数据库的变化,当里程出现失败或介质失败时可以使用它进行恢复数据库.当DDL或DML时,事物会写到日志缓冲区,在特定时刻会由LGWR将这些日志写入重做日志文件.数据库中至少有两个日志文件,他们是循环使用
Archived Log files(归档日志文件)
它是重做日志的备份,它会保存全部的重做历史记录。
Password file(口令文件) 和Parameter file(参数文件)
口令文件主要用于存放超级用户的口令及其他特权用户的用户名和口令。两个文件都保存在<安装路径>/database文件夹中。
Oracle表空间
简单来说,表空间就是一个或数据文件(物理文件)的集合,所有数据对象都被逻辑的存放在指定的表空间中.
表空间的类型
- 系统表结构: 系统自动创建的,一般存储Oracle的数据字典表和相应的数据
- 永久表空间:用来存放永久性数据,例如系统数据,应用程序数据
- 临时表 空间:例如Group by , order by 灯算法会用到一些临时空间,用完释放
- 撤销表空间:用于数据恢复
1.操作永久的表空间:
创建(表空间文件为1个)
create tablespace tablesName(
logger -- 可将表空间的创建信息记录到Oracle的日志中
datafile `tablespaceName.dbf` --保存文件路径,习惯上讲表空间的名称用于文件名称
(可设置绝对路径,相对路径的话会保存到默认目录下)
size 64m -- 最初的数据文件大小
autoextend on -- 开启自增长
next management local --extend management 有两种方式 local:本地 dictionary(数据字典管理)
)
创建(表空间文件为多个)
create tablespace tablespaceName
logger
datafile
'tablespaceName01.dbf' size 64m autoextend on next 64m maxsize unlimited, --设置自增长且无上限
'tablespaceName02.dbf' size 64m autoextend on next 64m maxsize unlimited,
'tablespaceName03.dbf' size 64m autoextend on next 64m maxsize unlimited
extent management local;
表空间增加文件
1 alter tablespace tablespaceName
2add datafile 'tablespaceName04.dbf'
3 size 64m autoextend on
4next 64m maxsize unlimited;
删除表空间
1 drop tablespace tablespaceName including contents and datafiles cascade constraints;
2.创建临时表空间
create tablespace tablespaceName
logger
tempfile
'tablespaceName01.dbf' size 64m autoextend on next 64m maxsize unlimited, --设置自增长且不设置上线
'tablespaceName02.dbf' size 64m autoextend on next 64m maxsize unlimited,
'tablespaceName03.dbf' size 64m autoextend on next 64m maxsize unlimited
extent management local;
简单的命令
- 设置每页显示的数据条数: SET PAGESIZE 30;
- 设置每行显示的字符数: SET LINESIZE 100;
- 执行文件: @文件路径
- 显示当前用户: SHOW USER
- 切换登录用户: CONNECT 用户/密码(SYS用户需要) AS SYSDBA
- 拷贝文件: HOST COPY d:hello.sql d:data.sql