Oracle基本认识
Oracle数据库基本认识
Oracle数据库与SQL Server数据库有很多概念上的不同,从Oracle数据库的角度来理解,运行一个数据库需要软件和数据的支持,所谓的数据,就是真正的数据库,将数据库中的内容保存到电脑中的文件中,并且格式固定。这个时候我们可以用二进制文件打开,查看里面的0 1 传,如果我们不怕麻烦直接去分析这些0 1 串最终是肯定可以找到问们想要的数据的。
但是数据库不仅仅是为了保存数据还为了方便的存取操作,为了这些方便,比如我们熟悉的SQL语句,Oracle需要安装一系列的组件来编译理解这些命令,对于一个完整的数据库来书这些组件也是必须的。
数据库还必须提供给我们一个操作的借口,比如用来输入SQL语句的接口,用来操作的界面,这些接口将我们输入的命令,传给相应的组件,再由相应的组件调用相应的命令,查找存放数据的文件,并把查找到的结果返回给用户接口,这样才能组成一个完整的数据库。
最常见的用户操作接口是SQL Plus 他是一个命令行接口,不过却非常的方便强大,毕竟Oracle的出发点就是使用者是专业人士。此外Oracle也有图形界面操作,只要下载相应的软件即可,不过如果为了熟练使用数据库,图形界面操作并不可取。Oracle提供的第三个操作接口,就是OEM Oracle Express Manager 这是一个利用浏览器作为操作接口的界面,由此也可以看出来浏览器的开发日益火热,这个界面可以完成许多SQL Plus 不方便完成的任务,所以也是很重要的。
在我看来 SQL Plus 和 OEM都是很重要且需要掌握的,两者互补更方便。
当我们安装上一个数据库的时候,上面所说的数据库文件,数据库组件,操作接口都已经安装上了,接口默认使用的是SQL Plus 和 OEM。但是为什么我们没有建立任何的数据库也有数据库文件呢,这是因为数据库为我们提供了数据字典,里面有些数据库的信息,这些信息可以通过SQL语句查询但是必须是
DBA。此外数据库会默认提供一个用户叫做 scott 密码是 tiger 该用户下有几张表和一些数据可以供我们学习练习。这样就不用我们建立一个新的表空间了,毕竟我们初学者设计的表空间不必专业人士设计。
当数据库被安装到我们的电脑的时候我们的电脑就是一个数据库服务器了,实际应用中肯定是专门的服务器做数据库服务器,在练习的时候我们的电脑即是服务器又是客户端,我们从客户端登录到服务器就是连接掉数据库了,这个时候数据库必然要监听一个端口才能保证连接上数据库,而监听端口的进程一般会做成一个服务,这样占用资源少反应迅速(WINDOWS下)。接下来就需要说下数据库都安装了那些服务,那些文件,运行那些进程。内存结构等等。
在此之前需要先说一下Oracle下的一些节本概念。
Oracle数据库里面,最小的结构叫做块,就像操作系统的块(4KB)一样,这主要是为了保证操作速度,因为当空间不足需要向操作系统申请一个空间的时候不能按位申请吧(这个很明显,有编程经验的都知道,虽然boolean类型只需要1位表示但是最常见的还是用1字节或4字节表示boolean类型)。对数据库来说它的块一般是操作系统块大小的整数倍,然后申请空间都会按照申请几个块来完成。
多个块组成了一个区,
多个区做成一一个段,现在我一直理解为一个段就是一张表,但是只是为了方便记忆,实际肯定不是吧,因为一张表的大小逐渐增加,肯定最终会超过一个段申请第二个段。
段之上就是表空间了,从字面理解就是多个表的空间,如果有SQLServer的经验,这里的表空间就是SQLServe里面的数据库,我们通常为一个应用软件建立一个数据库,以保证不同应用软件之间的隔离,在Oracle里面这叫做表空间。如果使我们平时用肯定觉得数据库这个概念比较好理解,但是我是这么想的,在实际的应用中一个数据库服务器一般也就是为一个应用服务的,比如一个网站,这个时候把它们组成一个表空间就显得有意义了。
最大的概念就是数据库了,一个数据库相当于是一个安装了一遍Oracle。(当然了你也可以新建立一个数据库,但是你无法只运行一组服务二运行两个数据库)。
Oracle安装的时候我们就已经建立了一个数据库,当时要求我们填一个id 一般都会填orcl 这个id作为一个数据库的标志id。为了运行这个数据库的服务,组件以及程序的命名都是跟这个id有关的。
下面来看一下Oracle的服务:
安装的时候我赋予的id是orcl,所以在我的计算机上有七个Oracle相关的服务他们分别是
OracleVssWriterORCL OracleDBConsoleorcl OracleJobSchedulerORCL OracleMTSRecoveryService OracleOraDb11g_home1ClrAgent OracleOraDb11g_home1TNSListener OracleServiceORCL
注意我这是服务名,而不是显示名,有时候你需要看服务的属性才能看到相同的名称。
在这些服务里有些服务的后缀是ORCL 也就是我赋予的id,这些服务与特定的数据库相关,换句话说如果你新建了一个数据库,必须赋予一个新的id那么会生成一组新的这些服务,并且后缀是新的id 选择启动哪个数据库就会启动哪组服务。我们看看这些服务
OracleVssWriterORCL Oracle 对VSS 服务的支持,VSS也就是影卷 不是必须启动服务
OracleDBConsoleorcl 与Oracle OEM相关的服务,如果想使用OEM则必须启动该服务
OracleJobSchedulerORCL 作业调度,如果没有日期安排则不需要启动,一般为禁用
OracleServiceORCL 服务进程,正常使用Oracle必启动的进程
OracleMTSRecoveryService 该服务针对微软的COM+设计,平时应该保持禁用状态。
OracleOraDb11g_home1ClrAgent 针对微软的服务
OracleOraDb11g_home1TNSListener 端口侦听, 为了正常运行Oracle,该服务也必须启动。
OracleOraDb11g_home1TNSListener 如果不启动该服务,登录的时候会出现TNS错误
当所需要的服务已经正常启动了,就可以使用SQLPlus登录了,默认情况下可以使用 conn / as sysdba dba在Oracl里面是管理员的意思,sysdba就是系统管理员,也就是不需要提供账号密码直接使用系统管理员登录,也就是使用操作系统认证。
Oracle数据库会自动创建一组环境变量,这些环境变量可能存在于环境中 也就是cmd 里面 set 命令,也可能存在注册表中,我的安装后就是存在注册表中。一般在HKLM/software/ORACLE/KEY_OraDb11g_home2 可以在其中找到数据库的系统定义。
一般练习的情况下会登录scott账户,使用该账户下的表空间,默认密码是taiger(老虎)如果忘了,可以首先使用sysdba登录,然后修改密码
conn / as sysdba
alter user scott identified newpassword account unlock
每个用户默认应该是拥有一个表空间,比如scott就拥有一个自己的表空间,作为练习使用,查看当前表空间的情况可以使用user_tables。
查看一个表的结构 可以使用 desc(description)语句,如 desc user_tables;
Oracle基本认识相关推荐
- 数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法
数据库中自定义排序 场景:有一张banner表,表中有一个status字段,有0, 1, 2三个状态位,我想要 1,0,2的自定义排序(这里是重点),然后再进行之上对sequence字段进行二次排序( ...
- oracle 提示:ORA-02292:integrity constraint(xxxxxxx) violated - child record found
当我们删除 数据的时候 oracle 提示:ORA-02292:integrity constraint(xxxxxxx) violated - child record found 这种情况呢是因为 ...
- sql特殊字符转义,oracle中将字符 ‘ 转义
oracle中使用sql语句或多或少地会遇到使用特殊字符,比如" ' ",这时,这个单引号就会与前面的单引号匹配,将文本从中间断开,引发问题和错误.这就需要我们进行转义. 而ora ...
- Oracle根据日期区间查询Date类型的数据
在Oracle数据库中,根据日期区间查询Date类型的数据 select proposalno,policyno,enddate from 表名 where 时间字段 between to_date( ...
- Linux/docker下oracle开启监听,开启自动启动
写在前头: 之前呢,使用docker安装了oracle,但它默认是会关闭的.使用了几天以后突然连接异常了,报的问题是oracle监听有问题了,我知道了是oracle服务自动关闭了,监听也跟着关了.所以 ...
- Linux下docker安装配置oracle,oracle创建用户并远程连接,实测可用!
最近在给同学弄毕业设计的数据库,因为oracle在个人电脑上极不稳定,所以他的电脑数据库崩溃了,这时候我就在docker上为他拉了一个oracle,解决了问题. docker的安装共有以下几步,实测没 ...
- Oracle type (自定义类型的使用)
oracle - type type定义: oracle中自定义数据类型 oracle中有基本的数据类型,如number,varchar2,date,numeric,float....但有时候我们需要 ...
- Mysql,SqlServer,Oracle主键自动增长的设置
Mysql,SqlServer,Oracle主键自动增长的设置 参考文献 http://blog.csdn.net/andyelvis/article/details/2446865 1.把主键定义为 ...
- oracle自动备份
oracle自动备份,支持BLOB,BINARY_DOUBLE字段 #!/bin/sh #请设置以下参数 db_array=(csop) db_user=csop db_pwd=csop #默认备份目 ...
- oracle sqlserver 查看指定用户下面的表
一.oracle 的sql语句查看指定用户下表的数量 (KOKO提供) ---------------------------------------------------------------- ...
最新文章
- 对象的序列化和反序列化
- java length()函数_小猿圈介绍java函数式编码结构及优势
- 一下科技完成5亿美元E轮融资,神策助力秒拍实现数据驱动
- Java黑皮书课后题第8章:*8.27(列排序)用下面的方法实现一个二维数组中的列排序。返回新数组,且原数组保持不变。编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵
- 是可改写的随机存储器_关于存储器的一些基础知识整理
- python安装地是什么_如何安装python
- vue : 无法将“vue”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确, 然后再试一次。
- MySQL 处理重复数据
- MySQL如何查全部序列_Oracle查询所有序列
- python和对象复习_python 面向对象基础和高级复习
- pla3d打印材料密度_PLA塑料材料
- [MATLAB]--曲线拟合(polyfit/polyval)
- 【xla】二、【构图阶段】MarkForCompilationPassImpl
- 前后端鉴权方案,一文打尽!
- 数据结构与算法课程设计
- 【vue js】省市区js数据转为tree结构
- pycharm 【Debug】过程卡住不动
- BZOJ 3875 Ahoi2014 骑士游戏
- 【前沿技术RPA】 一文了解UiPath 机器人企业框架 (REFramework)
- RocketMq最强总结 带你rocket从入门到入土为安
热门文章
- 逆波兰式求值 —Java
- Matlab读取图像,显示H、S、V分量
- 初等函数的麦克劳林级数展开+逆函数的展开求法
- 中医大2020年7月网考计算机应用基础,2020年7月网络教育统考《计算机应用基础》Internet应用模拟题试卷2...
- angularjs 猜大小
- lm283_飞利浦LED泛光灯具 BVP283 LED户外照明灯具350W 超高功率泛光灯
- 腾讯im及时登录注册
- 微软java虚拟机下载_微软Java虚拟机下载-Microsoft VM(Java虚拟机)5.0.3805最新版 - 维维软件园...
- Expeditious Cubing(浮点数处理)
- 【中英双语】C 语言的历史