前言:Oracle内部的存储及管理结构是1、数据库系统;2、数据库实例;3、表空间,系统用户system,普通用户;表,视图,触发器,存储过程等;

一、Oracle数据库系统和数据库实例的对应关系是一对多的关系,如图:

不过一般而言一个Oracle数据库系统一般就一个实例,或者再加一个当作测试实例。

二、数据库实例和表空间的对应关系:

需要注意的是,对于Oracle而言,表空间tablespace就类似SQLServer的database或MySQL的schema/database;

三、创建表空间后一般会创建一个用户用于默认管理此表空间,语句分别是:

①创建表空间(用system用户登录)

create tablespace db_test
datafile
'E:\Oracle12c\oradata\orcl\db_test.dbf'
size 10M
reuse
autoextend on
next 1M
maxsize UNLIMITED;
commit;

需要注意的是Oracle的默认等级比较严格,在创建表空间(其它数据库系统的数据库的概念)后需要commit才会生效;对于删除、修改等操作也是一样需要commit生效,

在未commit之前删除的数据只在当前连接里是被删除,但是没有提交到Oracle服务,即其它用户登录后仍然能够看到那条数据。

②创建用户并制定此用户默认管理的表空间(system用户登录):

CREATE USER thisIsUserName IDENTIFIED BY thisIsPassword DEFAULT TABLESPACE db_test;

上面的语句的意思是创建用户:thisIsUserName,其密码为:thisIsPassword,它默认管理的表空间是db_test;

四、接着执行给用户赋予权限的语句以保证此用户能够顺利的执行我们想要的操作(system用户登录):

GRANT resource to thisIsUserName;
grant unlimited tablespace to thisIsUserName;
GRANT connect to thisIsUserName; -- 连接权限
GRANT CREATE SESSION to thisIsUserName;
GRANT CREATE TABLE to thisIsUserName; -- 表权限
GRANT CREATE VIEW to thisIsUserName; -- 视图权限
GRANT CREATE TRIGGER to thisIsUserName; -- 触发器权限
GRANT CREATE PROCEDURE to thisIsUserName; -- 存储过程权限
GRANT CREATE SEQUENCE to thisIsUserName;
grant create any synonym to thisIsUserName;
grant create public synonym to thisIsUserName;
grant create database link to thisIsUserName;
grant create public database link to thisIsUserName;

在执行完上面的所有操作后就可以用thisIsUserName登录Oracle数据库系统并直接操作表空间db_test了。

五、较常用的Oracle数据库系统的客户端工具:

①PL/SQL,个人第一次用Oracle数据库时周围的小伙伴就推荐用的这个。

②安装Oracle12c后自带的SQL Developer,我自己瞎捣鼓找到的。

这两个工具由于自己也没有细细研究不好说哪个更好,不过个人比较喜欢用自带的SQL Developer,因为在连远程的Oracle数据库实例时PLSQL需要先配置

tnsnames.ora文件(在安装目录\product\12.2.0\dbhome_1\network\admin下),比如我要能远程访问188.188.66.9的test数据库实例,我需要在此文件里添加

RemoteORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 188.188.66.9)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = test)
)
)

然后才能在PLSQL登录界面选择此实例,输入用户名密码登录。

而对于SQL Developer则可以直接输入远程Oracle数据库系统的IP和端口及数据库实例名(SID值)来访问,如图:

而且SQL Developer里还可以右键连接-生成数据库文档 来生成Web数据库字典。

六、导入导出表空间:

①导出表空间:

exp thisIsUserName/thisIsPassword@188.188.69.3/orcl file="E:\output.dmp" full=y

这个语句Windows上是在cmd/powershell,Linux是在Bash上执行的,如果端口是1521则可以不写,否则IP后面要带上:xxxx

②导入表空间:

导入表空间之前一般要先清空表空间(如果表空间已经有数据),以system用户登录后执行:

drop user thisIsUserName cascade;
drop tablespace db_test including contents and datafiles;

然后重新执行第三和第四步骤。

接着转到cmd/bash执行:

imp thisIsUserName/thisIsPassword@orcl file="E:\Oracle12c\oradata_backup\output.dmp" full=y

七、创建或删除数据库实例:

安装完Oracle12c后有工具Database Configuration Assistant来创建新的数据库实例或删除数据库实例;

具体步骤跟安装Oracle12c时的步骤差不多,注意安装Oracle12c或创建新的实例时要取消勾选创建为容器数据库。

Oracle零碎总结:结构-工具-创建语句的更多相关文章

  1. Oracle中如何导出存储过程、函数、包和触发器的定义语句?如何导出表的结构?如何导出索引的创建语句?

    Oracle中如何导出存储过程.函数.包和触发器的定义语句?如何导出表的结构?如何导出索引的创建语句? QQ群里有人问:如何导出一个用户下的存储过程?   麦苗答:方法有多种,可以使用DBMS_MET ...

  2. (转载)根据数据字典表定义的表结构,生成创建表的SQL语句

    <来源网址:http://www.delphifans.com/infoview/Article_221.html>根据数据字典表定义的表结构,生成创建表的SQL语句 //1.  类名:T ...

  3. 通过Oracle DUMP 文件获取表的创建语句

    1. 有了dump文件之后 想获取表的创建语句. 之前一直不知道 dump文件能够直接解析文件. 今天学习了下 需要的材料. dump文件, dump文件对应的schema和用户. 以及一个版本合适的 ...

  4. Oracle获取数据库中的对象创建语句

    使用dbms_metadata.get_ddl()函数可以做到. 实验环境:Oracle 11.2.0.4 以获取jingyu用户下的T1表为例: SQL> conn jingyu/jingyu ...

  5. oracle中查询用户表/索引/视图创建语句

    不多说,直接上干货 1.查询当前用户下表的创建语句 select dbms_metadata.get_ddl('TABLE','ux_future') from dual; 2.查询其他用户下表的创建 ...

  6. 数据库--oracle图形化管理工具和新增自定义用户

    oracle数据库图形化管理工具: 1 navicat工具很小,操作mySQL和SQLServer非常好用,但对于oracle体验性就有点差,要自己下载编码和替换oci文件.下面是解决的方法教程链接 ...

  7. oracle 架构和一些工具了解

    oracle的架构大概分为3部分, 客户端:用户端 oracle instance:叫做实例,由内存结构(内存池或者叫SGA)和后台进程组成.Oracle Instance是Oracle RDBMS的 ...

  8. Oracle手边常用命令及操作语句

    Oracle手边常用命令及操作语句 作者:白宁超 时间:2016年3月4日11:24:08 摘要:日常使用oracle数据库过程中,常用脚本命令莫不是用户和密码.表空间.多表联合.执行语句等常规操作. ...

  9. Oracle如何复制表的sql语句

    以下的文章主要是介绍Oracle复制表的sql语句,其中包括如何复制表结构的sql.以及如何复制相关表的结构又复制表中的数据sql.以下就是相关内容的具体介绍,望你浏览完以下的内容会有所收获. 如下, ...

随机推荐

  1. <!-- str.startsWith('胡') 检查一个 字符串中是否有某字符 返回true false -->& vh 属性

    1.<!-- str.startsWith('胡')  检查一个 字符串中是否有某字符 返回true false --> 2. vh 分享到选择其它项   复制本页链接 版本:CSS3 补 ...

  2. ADO数据库编程入门

    ADO 是目前在Windows环境中比较流行的客户端数据库编程技术. ADO是建立在OLE DB底层技术之上的高级编程接口,因而它兼具有强大的数据处理功能(处理各种不同类型的数据源.分布式的数据处理等 ...

  3. 软件工程导论复习 如何画系统流程图和数据流图 part1

    一.数据流图与流程图的区别 数据流程图是以图形的方式表达在问题中信息的变换和传递过程.它把系统看成是由数据流联系的各种概念的组合,用分解及抽象手段来控制需求分析的复杂性,采用分层的数据流程图来表示一个 ...

  4. Spring AsyncRestTemplate

    类说明 AsyncRestTemplate 是 Spring中提供异步的客户端HTTP访问的核心类.与RestTemplate类相似,它提供了一些类似的方法,只不过返回类型不是具体的结果,而是List ...

  5. 在c#下用 WCF编写restful

    1.添加WCF服务库 2.在global里面注册路由 RouteTable.Routes.Add(new ServiceRoute("api", new WebServiceHos ...

  6. Python bytearray() 函数

    Python bytearray() 函数  Python 内置函数 描述 bytearray() 方法返回一个新字节数组.这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < ...

  7. Eclipse 中 program arguments 与 VM arguments 的区别

    1. program arguments 中的值作为 主函数中的参数args[] 传入 2. VM Arguments 是设置的java虚拟机的属性,这些系统属性都以-D开头, VM argument ...

  8. 使用ecstore-sdk开发包制作易开店和启明星模板

    前言: 尽管商派官网有模板开发教程,但是诸多方面太过笼统.我等平庸之辈,纵使细心研读,潜心修炼,亦未能品味练功境界,领悟其中真谛. 商派有云,此九阳真经不用您挥刀****本人却感觉此教程令人抓狂,无人 ...

  9. swift 移除所有子控件

    /// 移除所有子控件 func removeAllSubViews(){ if self.view.subviews.count>0{ self.view.subviews.forEach({ ...

  10. Tomcat设置默认时区

    本文讲解如何在tomcat启动时设置JVM默认时区. 环境:JDK1.8.114 web容器:Tomcat 9 tomcat启动脚本 /etc/init.d/tomcat 操作系统ubuntu 16 ...