oracle的逻辑结构
在mysql中,我们使用时都是先创建数据库,然后在数据库中创建表,
但是在oracle中,我们是先创建数据库,然后在这个数据库中创建不同的用户,用户内创建不同的表。
因此可以知道,oracle的逻辑结构为
一个数据库,数据库下拥有多个表空间,然后不同的用户名操作不同的表空间,在每个表空间下又从大到小分为段,区,数据块。如图:
(图真丑)
一个表空间内可以有多个表,但是一个表只能有一个表空间。数据库的表空间如下:
example | 示例表空间,用来存放示例数据的 |
sysaux | 系统表的辅助表空间;帮助减轻系统表空间压力的 |
system | 系统表空间,用来存放一系列系统表,存储过程,函数等 |
temp | 临时表空间,存放临时表和数据的 |
undotbs1 | 重做表空间,存放重做信息的 |
users | 用户表空间,存放用户相关的持久化数据 |
表空间的管理:
-- 创建表空间,需要管理员权限才能操作 create tablespace test1 datafile ‘e:\orcl\test1.dbf‘ size 20m; -- 创建临时表空间 create temporary tablespace test1_tmp tempfile ‘e:\orcl\test1_emp‘ size 10m; --创建用户指定给表空间 create user zhaoshuai identified by 123456 default tablespace test1 temporary tablespace test1_tmp; -- 创建用户后给用户分配权限,connect权限可以登录oracle,不能创建实体,不能创建数据库结构, -- resource权限可以创建实体,不可以创建数据库结构,dba权限可以创建实体,创建数据库结构,是最高权限,拥有全部权限 grant connect,resource to zhaoshuai; -- 给用户分配权限后就可以用该用户登录oracle了,然后以用户的身份登录 -- 新建一个学生表,并存入数据 create table student ( sid number, sname varchar2(50) ); select * from student; insert into student values(1,‘zhangsan‘); -- 导入和导出表空间 数据泵:expdp:导出功能,impdp导入功能 -- 要想导入或导出表空间需要先创建一个虚拟目录,然后给虚拟目录授权,需要管理员权限才能操作 create directory dire as ‘e:/data‘; -- 给用户授权对虚拟目录的读和写的权限 grant read,write on directory dire to zhaoshuai; -- 然后在cmd命令行中执行命令 -- expdp zhaoshuai/123456@orcl schemas=zhaoshuai dumpfile=expdp.dmp directory=dire 导出用户 -- expdp zhaoshuai/123456@orcl tables=student dumpfile=stu_expdp.dmp directory=dire 导出表 -- expdp zhaoshuai/123456@orcl directory=dire dumpfile=tablespace.dmp tablespaces=test1; 导出表空间 -- impdp scott/tiger@orcl directory=dire dumpfile=expdp.dmp schemas=scott 导入用户表 -- impdp system/tiger@orcl directory=dire dumpfile=tablespace.dmp tablespaces=test1 导入表空间 -- 删除表空间 drop tablespace test1 including contents ;-- 删除带数据的表空间 drop user zhaoshuai cascade ; --删除用户
原文:https://www.cnblogs.com/Zs-book1/p/11215860.html