前言

近期这几天一直在与Oracle数据库打交道。因为之前对Oracle的学习并不深入,仅仅是把Oracle当成一个数据源去使用。非常多东西了解的不是非常深,比方。数据库、数据库实例、表空间、用户、表。它们是怎样创建的,它们之间又有什么关系。所以这次就一块来学习下。

1数据库

一个完整的Oracle数据库通常由两部分组成,各自是Oracle数据库和Oracle数据库实例,第一个Oralce数据库是指Oracle类型的关系型数据库管理系统,包括物理数据、数据库管理系统。也就是物理数据、内存、操作系统进程的组合体;而后面提到的Oracle数据库是指一系列物理文件的数据集合。这些集合包括数据文件、控制文件、联机日志、參数文件等。

以下这张图是创建数据库的一个步骤:

第一个要填写的是全局数据库名,第二个要填写的是数据库实例SID(下文会介绍)。

全局数据库名:就是一个数据库的标识。简单来说就是名字,这个一般在创建的时候一定要想好。以后通常是不改动的。只是也能够改动,仅仅只是改动起来比較麻烦,由于数据库安装好以后。数据库的这个标识名字就会写入控制文件、数据库表等非常多地方。

关于数据库的命令:

查看当前的数据库的名字:

select name from v$database;

2数据库实例

官方说Oracle实例是訪问Oracle数据库所需的一部分计算机内存和辅助处理后台进程,是由进程和这些进程所使用的内存(SGA)所构成一个集合。

我们在写代码过程中需求调用对象的方法时。须要new出来一个实例,这个new出来的实例也是放在内存中的;我们的oracle实例跟这个new出来的对象差点儿相同。也是当须要訪问oracle数据库时就在内存中创建出一块进程,它也是仅仅存在与内存中的。

我们訪问oracle事实上就是訪问oracle的实例,訪问oracle实例的时候。有时候须要先开启实例,我的实例名为orcltest:

startup open orcltest;

实例名与SID

实例名(instance_name)指的是用于响应某个数据库操作的数据库管理系统的名字。提到Oralce实例名就不能不提Oracle_SID,SID事实上Oracle实例的一个标识。

但两者是有差别的,instance_name是oracle数据库參数。而Oracle_SID是操作系统的环境变量。

Oracle_SID用于与操作系统交互,也就是说。从操作系统的角度訪问实例名,必须通过Oracle_SID。而且Oracle_SID必须与instance_name的值一致。否则,你将会收到一个错误,在unix平台,是“ORACLEnot
available”,在windows平台。是“TNS:协议适配器错误”。

数据库实例名除了与操作系统交互外,还用于网络连接的oracleserver标识。

当你配置oracle主机连接串的时候,就须要指定实例名例如以下:

jdbc:oracle:thin:@localhost:1521:orcltest(orcltest就为数据库实例名)

查询当前数据库实例名:

select instance_name from v$instance;<span style="font-size: 16pt; font-family: SimSun; "> </span>

查看当前数据库实例的信息:

Show parameter instance_name;

注意:一个数据库能够有多个实例,在作数据库服务集群的时候能够用到,或者不同的项目用不同的数据库实例也能够。这块内容兴许会继续说明。

3表空间

Oracle数据库是通过表空间来存储物理表的。表空间(tablespace)是数据库的逻辑划分,它是隶属与Oracle数据库实例以下的。一个数据库实例能够有N个表空间,一个表空间下能够有N张表。

所以有了数据库实例就能够创建表空间了。

创建表空间:

create tablespace OracleTest logging datafile 'C:\oracle\product\10.2.0\oradata\ORCLTEST\OracleTest.dbf' size 32m autoextend on next 32m maxsize2048m extent management local;

当中的创建的表空间名字为OracleTest ,建立表空间的位置是:C:\oracle\product\10.2.0\oradata\ORCLTEST\OracleTest.dbf,大小是32M。空间能够自己主动扩充,每次扩充32M,最大表空间为2048M。

查询表空间名字:

select tablespace_name from dba_data_files group by tablespace_name;

查询表空间的大小:

select tablespace_name,count(*),sum(blocks),sum(bytes)/1024/1024 from dba_data_filesgroup by tablespace_name;

查看表空间是否自己主动扩充:

select file_name,autoextensible,increment_by from dba_data_files;

假设表空间中有表的话,能够查看:

Select tablespace_name,table_name from dba_tables where tablespace_name='ORACLETEST';
 

4用户

关于Oracle的用户,一个Oracle数据库装好后,建立了Oracle实例。创建了表空间,为用户指定表空间,最后才是创建物理表。

上面我们已经创建好数据库实例和表空间了,如今就是创建用户为指定的表空间:

Create user testuser identified by test default tablespace OracleTest;

创建了一个testuser的用户。password是test。表空间是OracleTest.

在这里要说一点的是,同一表空间是能够授予多个用户的,而且能够给不同的用户分配对表空间的不同等级的操作权限。

给testuser用户授予权限,有三种:

grant connect to testuser;
grant resource to testuser;
grant dba to testuser;

我给testuser用户授予的是第三种dba管理员权限。

当我们通过我们创建好的用户登陆后能够查到当前用户:

show user;

查看当前数据库的全部用户:

select  * from dba_users;

5表

数据库实例、表空间、用户这些都有了以后。就能够在自己的用户所属的表空间下创建表了。关于表这块我们大家经经常使用,这里就不多说了。看下经常使用命令就能够了:

查看表所属表空间

Select table_name,tablespace_name from all_tables where table_name='t_student';

查看表结构

desc t_student;

总结

关于Oracle的使用,首先安装oracle数据库软件、然后创建数据库实例、接下来创建表空间、再往下给表空间创建用户并分配权限、然后创建表、最后測试,当中创建表空间和创建用户这两个顺序能够颠倒的。这几天这些东西来回捣鼓了好几遍。关于Oracle的这些操作,假设不去自己一步步实践。你永远都不知道自己究竟有多生,你也不会知道它究竟会出哪些让你抓狂的错误。

Oracle学习——扫盲篇的更多相关文章

  1. Oracle学习第二篇—单行函数

    1字符函数 length  字符长度 lengthb 字节长度 lower 变为小写 upper 变为大写 initcap 首字母大写 select Lower('xun Ying') 小写,Uppe ...

  2. Oracle学习第一篇—安装和简单语句

    一 安装  10G ----不适合Win7 Visual Machine-++++Visual Hard Disk 先安装介质(VM)---便于删除 11G-----适合Win7 1 把win64_1 ...

  3. Oracle学习——dmp文件(表)导入与导出

    Oracle学习——dmp文件(表)导入与导出 2014-12-28      0个评论    来源:张文康 廊坊师范学院信息技术提高班 第九期   收藏    我要投稿 前言 关于dmp文件我们用的 ...

  4. MySQL数据库扫盲篇

    MySQL数据库扫盲篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   一.MySQL概述 1>.什么是MySQL MySQL是瑞典的MySQL AB公司开发的一个可用于各 ...

  5. 转摘 MySQL扫盲篇

    一下文章摘自:http://www.jellythink.com/archives/636 MySQL扫盲篇 2014-09-15 分类:MySQL / 数据库 阅读(1412) 评论(1)  为什么 ...

  6. 7.oracle学习门户系列七---网络管理和配置

    oracle学习门户系列七 网络管理和配置 们学习了模式和用户.包含模式定义以及模式的作用. 这篇我么来看下ORACLE数据库中的网络管理和配置.只是这篇好像和上篇没有继承啊.这怎么看? Ok,事实上 ...

  7. C语言扫盲篇

    C语言扫盲篇 作者:尹正杰 版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接. 一.什么是C语言 C 语言是一种通用的高级语言,最初是由 ...

  8. oracle学习 第二章 限制性查询和数据的排序 ——03

    这里.我们接着上一小节2.6留下的问题:假设要查询的字符串中含有"_"或"%".又该如何处理呢? 開始今天的学习. 2.7  怎样使用转义(escape)操作符 ...

  9. oracle学习 第一章 简单的查询语句 ——03

    1.1最简单的查询语句 例 1-1 SQL> select * from emp; 例 1-1 结果 这里的 * 号表示全部的列.它与在select 之后列出全部的列名是一样的.查询语句以分号( ...

随机推荐

  1. HDU1710---树(知前序遍历与中序遍历 求后序遍历)

    知前序遍历与中序遍历 求后序遍历 #include<iostream> #include<cstring> #include<queue> #include< ...

  2. 汕头市队赛 SRM1X T2 ——扫描线

    绵津见-终 SRM 13 背景 “西瓜也是可以种在海上的!”——绵津见 然而种在海上的西瓜最需要防范的,是时不时会涌向瓜田的阵阵海浪. 幸好,身为海神的绵津见可以释放魔法“水平如镜”来阻止海浪拍打西瓜 ...

  3. ping & traceroute 原理

    说明: 忘记从哪里看到的原文了. 不过我应该进行了大刀阔斧的删选. ping 用类型码为0的ICMP发请 求,受到请求的主机则用类型码为8的ICMP回应. ping程序来计算间隔时间,并计算有多少个包 ...

  4. win7 无法启动此程序,因为计算机中丢失glut32.dll

    http://zhidao.baidu.com/link?url=9NZxqCvR7hvmKuVR1dUSdQB-TTv_re-g7lp-xZj5FKII04FnMvIKjFhKv299t6wv5Ht ...

  5. ldd命令【转】

    转自:http://www.cnblogs.com/wanghetao/p/3779611.html ldd命令用于判断某个可执行的 binary 档案含有什么动态函式库. 参数说明: --versi ...

  6. mysql 共享空间转为独立表空间

    由于以前的mysql配置为共享表空间,服务器空间不足,清理日志表里的数据后,数据库并没缩小,照成空间浪费,现在修改为独立表空间 #独立表空间innodb_file_per_table=1 #停止事物日 ...

  7. 安全提示“X-Frame-Options头未设置”的解决方法

    漏洞检测提示“X-Frame-Options头未设置”,意思是网页可能被别人用iframe框架使用.事实上,我的网页已经通过js程序禁止被iframe框架嵌入使用了.不过,对于使用iis的网站来说,可 ...

  8. 【linux高级程序设计】(第十二章)Linux多线程编程

    线程与进程对比 1.用户空间对比 2.内核空间资源对比 在创建线程时,Linux内核仍然创建一个新的PCB来标识这个线程.内核并不认为进程与线程有差别. 进程是操作系统管理资源的基本单元,线程时Lin ...

  9. jmeter 多机负载压测与服务器性能监测

    环境: jmeter: apache-jmeter-3.3 jdk: 负载生成: 被测机: 一. 多机负载压测: 概述: 1.修改jmeter.properties配置文件 remote_hosts= ...

  10. Font Awesome 字体使用方法, 兼容ie7+

    WebFont 技术可以让网页使用在线字体,而无需使用图片,从而有机会解决开头设计师提到的问题.它通过 CSS 的@font-face语句引入在线字体,使用 CSS 选择器指定运用字体的文本,与此同时 ...