前言: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. vue 项目部署后 刷新一下 页面找不到 解决

    1.修改配置router的参数  (效果不好) 2. (不能解决 出现403) 后端配置例子 Apache <IfModule mod_rewrite.c> RewriteEngine O ...

  2. python 文件移动

    python实现文件移动: import shutil shutil.move("original_path", "new_folder") # move fi ...

  3. Haskell语言学习笔记(53)Data.Sequence

    Data.Sequence Prelude> import Data.Sequence as Seq Prelude Seq> :set -XOverloadedLists Prelude ...

  4. mysql 建库建表建用户

    1.创建数据库 create database school; 2.使用数据库 Use school; 3.创建用户 create user jame@localhost identified by ...

  5. SQL Server 2008用'sa'登录失败,启用'sa'登录的办法

    首先”为什么用sa登录不了,提示登录失败呢?" 当然,自己装SQL Server 2008的时候根本就没有用sa登录的方法,装数据库的时候是用windows身份登录的. 如果要启用用户名为“ ...

  6. c# 结构体 集合 复习

    添加5个学生的信息到集合中,每个学生都有:学号,姓名,成绩,3个内容,添加完毕后将学生的分数从高到低排列并打印出来,使用结构体 using System; using System.Collectio ...

  7. org.springframework.stereotype 注解

    org.springframework.stereotype 1.@controller 控制器(注入服务) 2.@service 服务(注入dao) 3.@repository dao(实现dao访 ...

  8. docker问题

    Docker报错 WARNING: IPv4 forwarding is disabled. Networking will not work. 解决办法: # vim /usr/lib/sysctl ...

  9. The maximum column size is 767 bytes (Mysql)

     ERROR app.wsutils 419 INCRON: Error: ('HY000', '[HY000] [MySQL][ODBC 5.2(w) Driver][mysqld-5.7.7-rc ...

  10. Musle比对软件

    下载地址:http://www.drive5.com/muscle/downloads.htm 1)运行: win+R然后输入cmd,然后cd进入muscle目录 2) 比对: muscle3.8.3 ...