前言: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. 16 python xml模块

    1.基本概念 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单. 不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀. 至今很多传统公司如金 ...

  2. HIBERNATE知识复习记录1-连接及常用方法

    要去面试了,复习一下HIBERNATE的相关知识吧,原来边看视频边写的代码如下,已经分不清先后次序了,大致看一看吧. 先看下总的配置文件hibernate.cfg.xml: <?xml vers ...

  3. Linux CentOS7中 设置IP地址、网关DNS

    cd  /etc/sysconfig/network-scripts/  #进入网络配置文件目录 vi  ifcfg-eno16777736  #编辑配置文件,此处eno后边的编号因电脑而易 TYPE ...

  4. js 日期证有效性验的通用方法

    开发的理念是“为复用而开发,为使用而组装”,代码的复用度将是项目和产品的一个重要的技术指标. var DateTools={ isDate:function(str) { var result = s ...

  5. springmvc框架的搭建

    1引入jar包 jar包下载地址http://maven.springframework.org/release/org/ 以下是我引入的jar包 aopalliance-1.0.jaraspectj ...

  6. neo4j 学习-2

    Neo4j 查询例句 MATCH (john {name: 'John'})-[:friend]->()-[:friend]->(fof) RETURN john.name, fof.na ...

  7. 查询中mybatis的if判断里传入0

    1.传入的是long 或者 Integer类型 ,<if test="id != null "> 但是id传值为0时(前提是id对应的类型为long 或者 Intege ...

  8. java并发:AtomicInteger 以及CAS无锁算法【转载】

    1 AtomicInteger解析 众所周知,在多线程并发的情况下,对于成员变量,可能是线程不安全的: 一个很简单的例子,假设我存在两个线程,让一个整数自增1000次,那么最终的值应该是1000:但是 ...

  9. Redis常用数据类型及命令

    Redis数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). 注意: 命令的关键词,如set ...

  10. 【校招面试 之 C/C++】第10题 C++不在构造函数和析构函数中调用虚函数

    1.不要在构造函数中调用虚函数的原因 在概念上,构造函数的工作是为对象进行初始化.在构造函数完成之前,被构造的对象被认为“未完全生成”.当创建某个派生类的对象时,如果在它的基类的构造函数中调用虚函数, ...