什么是Oracle数据库?-Java培训班
最近这几天一直在与Oracle数据库打交道,由于之前对Oracle的学习并不深入,只是把Oracle当成一个数据源去使用,很多东西了解的不是很深,比如,数据库、数据库实例、表空间、用户、表,它们是如何创建的,它们之间又有什么关系,所以达内java培训班带大家一块来学习下。
1数据库
一个完整的Oracle数据库通常由两部分组成,分别是Oracle数据库和Oracle数据库实例,第一个Oralce数据库是指Oracle类型的关系型数据库管理系统,包含物理数据、数据库管理系统,也就是物理数据、内存、操作系统进程的组合体;而后面提到的Oracle数据库是指一系列物理文件的数据集合,这些集合包括数据文件、控制文件、联机日志、参数文件等。
下面这张图是创建数据库的一个步骤:
第一个要填写的是全局数据库名,第二个要填写的是数据库实例SID(下文会介绍)。
全局数据库名:就是一个数据库的标识,简单来说就是名字,这个一般在创建的时候一定要想好。以后一般是不修改的,不过也可以修改,只不过修改起来比较麻烦,因为数据库安装好以后,数据库的这个标识名字就会写入控制文件、数据库表等很多地方。
关于数据库的命令:
查看当前的数据库的名字:
2数据库实例
官方说Oracle实例是访问Oracle数据库所需的一部分计算机内存和辅助处理后台进程,是由进程和这些进程所使用的内存(SGA)所构成一个集合。
我们在写代码过程中需求调用对象的方法时,需要new出来一个实例,这个new出来的实例也是放在内存中的;我们的oracle实例跟这个new出来的对象差不多,也是当需要访问oracle数据库时就在内存中创建出一块进程,它也是只存在与内存中的。
我们访问oracle其实就是访问oracle的实例,访问oracle实例的时候,有时候需要先开启实例,我的实例名为orcltest:
1startup 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:协议适配器错误”。
数据库实例名除了与操作系统交互外,还用于网络连接的oracle服务器标识。当你配置oracle主机连接串的时候,就需要指定实例名如下:
查询当前数据库实例名:
查看当前数据库实例的信息:
注意:一个数据库可以有多个实例,在作数据库服务集群的时候可以用到,或者不同的项目用不同的数据库实例也可以,这块内容后续会继续说明。
3表空间
Oracle数据库是通过表空间来存储物理表的,表空间(tablespace)是数据库的逻辑划分,它是隶属与Oracle数据库实例下面的,一个数据库实例可以有N个表空间,一个表空间下可以有N张表。
所以有了数据库实例就可以创建表空间了。
创建表空间:
其中的创建的表空间名字为OracleTest ,建立表空间的位置是:C:\oracle\product\10.2.0\oradata\ORCLTEST\OracleTest.dbf,大小是32M,空间可以自动扩充,每次扩充32M,最大表空间为2048M。
查询表空间名字:
查询表空间的大小:
查看表空间是否自动扩充:
如果表空间中有表的话,可以查看:
1Select tablespace_name,table_name from dba_tables where tablespace_name='ORACLETEST';
4用户
关于Oracle的用户,一个Oracle数据库装好后,建立了Oracle实例,创建了表空间,为用户指定表空间,最后才是创建物理表。
上面我们已经创建好数据库实例和表空间了,现在就是创建用户为指定的表空间:
1Create user testuser identified by test default tablespace OracleTest;
创建了一个testuser的用户,密码是test,表空间是OracleTest.
在这里要说一点的是,同一表空间是可以授予多个用户的,并且可以给不同的用户分配对表空间的不同等级的操作权限。
给testuser用户授予权限,有三种:
3grant connect to testuser;
grant resource to testuser;
grant dba to testuser;
我给testuser用户授予的是第三种dba管理员权限。
当我们通过我们创建好的用户登陆后可以查到当前用户:
1show user;
查看当前数据库的所有用户:
1select * from dba_users;
5表
数据库实例、表空间、用户这些都有了以后,就可以在自己的用户所属的表空间下创建表了,关于表这块我们大家经常用,这里就不多说了。看下常用命令就可以了:
查看表所属表空间
1Select table_name,tablespace_name from all_tables where table_name='t_student';
查看表结构
1desc t_student;
总结
关于Oracle的使用,首先安装oracle数据库软件、然后创建数据库实例、接下来创建表空间、再往下给表空间创建用户并分配权限、然后创建表、最后测试,其中创建表空间和创建用户这两个顺序可以颠倒的。这几天这些东西来回捣鼓了好几遍,关于Oracle的这些操作,如果不去自己一步步实践,你永远都不知道自己到底有多生,你也不会知道它到底会出哪些让你抓狂的错误。
【免责声明】本文部分系转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,如涉及作品内容、版权和其它问题,请在30日内与我们联系,我们会予以重改或删除相关文章,以保证您的权益!
Java开发高端课程免费试学
大咖讲师+项目实战全面提升你的职场竞争力
- 海量实战教程
- 1V1答疑解惑
- 行业动态分析
- 大神学习路径图
相关推荐
更多达内就业喜报
更多>Java开班时间
-
北京 丨 11月27日
火速抢座 -
上海 丨 11月27日
火速抢座 -
广州 丨 11月27日
火速抢座 -
兰州 丨 11月27日
火速抢座 -
杭州 丨 11月27日
火速抢座 -
南京 丨 11月27日
火速抢座 -
沈阳 丨 11月27日
火速抢座 -
大连 丨 11月27日
火速抢座 -
长春 丨 11月27日
火速抢座 -
哈尔滨 丨 11月27日
火速抢座 -
济南 丨 11月27日
火速抢座 -
青岛 丨 11月27日
火速抢座 -
烟台 丨 11月27日
火速抢座 -
西安 丨 11月27日
火速抢座 -
天津 丨 11月27日
火速抢座 -
石家庄 丨 11月27日
火速抢座 -
保定 丨 11月27日
火速抢座 -
郑州 丨 11月27日
火速抢座 -
合肥 丨 11月27日
火速抢座 -
太原 丨 11月27日
火速抢座 -
苏州 丨 11月27日
火速抢座 -
武汉 丨 11月27日
火速抢座 -
成都 丨 11月27日
火速抢座 -
重庆 丨 11月27日
火速抢座 -
厦门 丨 11月27日
火速抢座 -
福州 丨 11月27日
火速抢座 -
珠海 丨 11月27日
火速抢座 -
南宁 丨 11月27日
火速抢座 -
东莞 丨 11月27日
火速抢座 -
贵阳 丨 11月27日
火速抢座 -
昆明 丨 11月27日
火速抢座 -
洛阳 丨 11月27日
火速抢座 -
临沂 丨 11月27日
火速抢座 -
潍坊 丨 11月27日
火速抢座 -
运城 丨 11月27日
火速抢座 -
呼和浩特丨11月27日
火速抢座 -
长沙 丨 11月27日
火速抢座 -
南昌 丨 11月27日
火速抢座 -
宁波 丨 11月27日
火速抢座 -
深圳 丨 11月27日
火速抢座 -
大庆 丨 11月27日
火速抢座