前言: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. javascript中 try catch用法

    javascript中 try catch用法 投稿:hebedich 字体:[增加 减小] 类型:转载 时间:2015-08-16我要评论 JS try catch语句一般在什么情况下使用?是必须使 ...

  2. python内存泄漏

    记录: 一个脚本在连续运行后,使用内存越来越大,在循环后手动添加gc.collect()没有作用. 尝试方法: 去除所有函数中当作参数传入的全局变量 使用全局redis对象,不再当作参数传入 循环末尾 ...

  3. python语法学习之函数、类、模块

    Python中通过使用类(class)和对象(object)来实现面向对象(object-oriented programming,简称OOP)的编程. 面向对象编程的最主要目的是提高程序的重复使用性 ...

  4. Why ExerciseAlone May Not Be the Key to Weight Loss

    加强运动也许并不能减肥Why ExerciseAlone May Not Be the Key to Weight LossIf you give a mouse a running wheel, i ...

  5. avalon的常见问题

    随着avalon的普及,越来越多人加入avalon的大家庭.随之而来的是各种问题.本文在这里统一解答一下. 使用avalon基本上有几个方针要坚持 数据必须先定义后使用,只能VM中定义,不能V中定义. ...

  6. ROC曲线和AUC值(转)

    http://www.cnblogs.com/dlml/p/4403482.html 分类器性能指标之ROC曲线.AUC值 一 roc曲线 1.roc曲线:接收者操作特征(receiveroperat ...

  7. node集成mysql——pool连接池

    安装 mysql npm install mysql or cnpm install mysql 创建db.js,实现mysql操作模块 var mysql = require('mysql'); v ...

  8. triton,docker,mesos

    triton user: jill /root/.sdc/docker/jill 下 root@1f6af9d8-8ed9-e940-9c6c-d9505ca25896:~/.sdc/docker/j ...

  9. Managing Images on smartos

    SmartOS依赖images.images是包含在创建新zone或虚拟机时使用的磁盘或文件系统映像和元数据的模板. images使用imgadm工具进行管理. 使用此工具,您可以: 查看和下载在公共 ...

  10. luoguP1004 方格取数(四维DP)

    题目链接:https://www.luogu.org/problemnew/show/P1004 思路: 这道题是四维DP的模板题,与luoguP1006传纸条基本相似,用f[i][j][k][l]表 ...