码迷,mamicode.com
首页 > 数据库 > 详细

oracle数据库结构及基本操作

时间:2018-10-10 23:39:26      阅读:330      评论:0      收藏:0      [点我收藏+]

标签:key   物理   log   博文   控制文件   重做日志文件   xtend   ext   用户密码   

本篇博客主讲oracle数据库的基本操作,作为目前世界上使用范围最广的数据库管理系统,充分体现出其功能的强大和可靠。首先,oracle数据库结构是我们必须了解的,有助于掌握oracle数据库操作。

系统简介

ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。

技术分享图片

如图所示:
SGA---为数据库提供服务
PGA---为用户提供服务
整个系统主要分为两大部分:
(一)实例-管理端
内存结构---SGA:共享池 数据缓冲区 日志缓冲区
后台进程---维持与数据库交互
(二)数据库
数据文件 控制文件 日志文件

特点

  • 完整的数据管理功能
  • 完备关系的产品
  • 分布式处理功能
  • 用ORACLE能轻松的实现数据仓库的操作

    逻辑结构

    逻辑结构由逻辑存储结构(表空间,段,范围,块)和逻辑数据结构(表、视图、序列、存储过程、同义词、索引、簇和数据库链等)组成,而其中的模式对象(逻辑数据结构)和关系形成了数据库的关系设计。

技术分享图片

  • 段(Segment):是表空间中一个指定类型的逻辑存储结构,它由一个或多个范围组成,段将占用并增长存储空间。
  • 范围(Extent):是数据库存储空间分配的逻辑单位,一个范围由许多连续的数据块组成,范围是由段依次分配的。
  • 数据块(Block):是数据库进行IO操作的最小单位,oracle数据库是以多个Oracle数据库块为单位。

表空间

system:系统表空间,存放关于表空间名称、控制文件、数据文件等管理信息,它属于sys、system模式。不能删除或重命名
sysaux:辅助系统表空间,用于减少系统表空间负荷,提高效率
temp:临时表空间,存放临时表和临时数据,用于排序
users:用户表空间,存放永久性用户对象及私有信息,也成数据库表空间。每个数据库都应有一个用户表空间,创建用户时分配给用户
undo:重做表空间,用来帮助回退未提交的事务数据

文件结构

数据库的物理存储结构是由一些多种物理文件组成,主要有:

  • 控制文件:存储实例、数据文件及日志文件等信息的二进制文件。
  • 数据文件:存储数据,以.dbf做后缀。一句话:一个表空间对多个数据文件,一个数据文件只对一个表空间。
  • 重做日志文件:用于进行数据库的实例恢复。
  • 日志文件:记录数据库修改信息。
  • 参数文件:记录基本参数。
  • 口令文件:允许sysdba、sysoper和sysasm远程连接到实例并执行管理任务。
  • 归档日志文件:使用这些文件好数据库备份,可以恢复丢失数据文件。
  • 警告文件:show parameter background_dump_dest---使用共享服务器连接
  • 跟踪文件:show parameter user_dump_dest---使用专用服务器连接

基本操作

一、数据库开启、关闭

//进入数据库

su - oracle
sqlplus / as sysdba                    #以最高管理员sysdba登录
SQL> help index                       #查看命令列表
SQL> show user                      #查看当前用户

//开启、关闭数据库(三阶段)

SQL>startup                                #开启:实例--数据库装载--数据库打开
SQL>shutdown immediate        #关闭:数据库关闭--卸载数据库--实例

技术分享图片
//启用、关闭监听

lnsrctl start
lnsrctl stop

技术分享图片

二、创建数据库

dbca
#创建数据库(如果不弹窗口执行: export DISPLAY=:0.0)
执行成功会跳出创建数据库页面,按以下步骤操作

技术分享图片

技术分享图片

技术分享图片

技术分享图片
接下来等安装进度完成即可!

三、表空间操作

//创建表空间

SQL>create tablespace tbs_work
datafile ‘/orc/app/oracle/oradata/aaa01.dbf’
size 10M autoextend on; #支持自动扩展

技术分享图片
//调整表空间大小
方法一:修改空间大小

SQL>alter database datafile
‘/orc/app/oracle/oradata/aaa01.dbf‘
resize 80M;

技术分享图片
方法二:添加数据文件

SQL>alter tablespace tbs_work
add datafile
‘/orc/app/oracle/oradata/aaa02.dbf‘
size 40M autoextend on;

技术分享图片
//表空间权限

alter tablespace tbs_work read only;
alter tablespace tbs_work write read;

技术分享图片

//删除表空间

drop tablespaces tbs_work including contents;

四、CDB与PDB操作

//查询当前所在容器

SQL> startup
SQL> show con_name

//查询数据库所有容器

SQL> show pdbs;

//CDB切换到PDB

SQL> alter pluggable database orclpdb open;   #修改可插拔库orclpdb打开状态
SQL> alter session set container=orclpdb;          #CDB下切换会话到PDB中

技术分享图片

//PDB切换到CDB

SQL> shutdown immediate                                  #在PBD中关闭插拔数据库
SQL> startup                                                          #在PBD中开启插拔数据库
SQL> alter session set container=cdb$root;      #切换会话到CDB

技术分享图片

五、用户管理

//创建表空间

SQL>create tablespace school
  2  datafile ‘/orc/app/oracle/oradata/school01.dbf‘
  3  size 100M;

//创建用户(创建好未赋予权限,所以不能登录)

SQL> create user c##jack
  2  identified by 123123                 
  3  default tablespace school              #默认表空间
  4  temporary tablespace temp            #定义临时表空间
  5  quota unlimited on school               #不设定配额
  6  password expire;                             #设定密码,下次登录修改

//更改用户密码

SQL> alter user c##jack identified by abc123;

//删除用户

SQL> drop user c##jack cascade;

技术分享图片
//用户授权

SQL> grant connect, resource to c##jerry; #授予连接和管理数据库权限
SQL> revoke connect, resource from c##jerry;

技术分享图片
//用户登录

sqlplus -----c##jerry(用户名)----123123(密码)----新密码---登陆成功

技术分享图片
//用户切换

coon sys/abc123 as sysdba #切换到sysdba
conn---c##jerry---123123 #切换到c##jerry

技术分享图片

六、表的操作

create table info
2 (
3 id number(4) constraint PK_id primary key, #constraint PK_id:约束-约束名称
4 name varchar2(10),
5 score number(5,2),
6 born date,
7 address varchar2(50)
8 );

//查看表结构

desc info;

技术分享图片
//插入数据

insert into info values(1,‘zhangsan‘,88,to_date(‘2018-10-9‘,‘yyyy-mm-dd‘),‘nanjing‘);

//查看表格

select * from info;

技术分享图片

七、事务

  • 事务:在不违反约束的条件下,sql语句要么执行成功,要么都不执行。
    //事务提交

    insert into info values(2,‘lisi‘,88,null,null); #插入数据
    commit; #提交

技术分享图片
//事务回滚

insert into info values(3,‘wangwu‘,77,null,null); #插入数据
rollback; #回滚

技术分享图片
//设置自动提交

set autocommit on; #自动提交,回滚无效
set autocommit off; #关闭自动提交

技术分享图片

本篇博文介绍了oracle数据库结构及基本操作,下一篇在此基础将系统介绍oracle数据库的对象,期待大家共同学习!

oracle数据库结构及基本操作

标签:key   物理   log   博文   控制文件   重做日志文件   xtend   ext   用户密码   

原文地址:http://blog.51cto.com/13784264/2298488

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!