Oracle数据库使用,oracle数据库使用的段类型
oracle数据库中,应用所使用的数据库用户,可以访问哪类数据库系统表
Oracle是一种数据库管理系统,是一种关系型的数据库管理系统。通常情况了我们称的“数据库”,包含了物理数据、数据库管理系统、内存、操作系统进程的组合体,就是指这里所说的数据库管理系统。
完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例。
① Oracle数据库是一系列物理文件的集合;
组成Oracle数据库的文件可以分成三个类型:数据文件(data file)、重做日志文件(redo log file)和控制文件(control file)。数据文件保存数据,Oracle中可以存在任意数量的数据文件;重做日志文件跟SQL Server的事务日志文件一样用来保存对数据更改的记录,在系统恢复阶段需要用到;控制文件是一些特别的小文件,用来保存一些至关重要的关于数据库的信息,没有这个文件的话,实例就无法打开数据库。
除了数据文件、重做日志文件、控制文件之外,数据库还包含参数文件(parameter file)、密码文件(password file)和可选的归档日志文件(archive log files)。
② Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区。
当Oracle启动时,它和SQL Server一样要先占用一些服务器内存用于执行操作,这个内存区域——SGA(System Global Area)——被分为数个不同的结构,在创建SGA的同时也会启动一系列的后台进程用于和SGA进行交互,在这里这些分配的内存空间和后台进程组合起来就是Oracle实例了。请注意这里并没有提到数据库,实际上Oracle实例在没有数据库或是数据库不能访问时也是跑的很好的,在安装Oracle时,我们可以选择只安装软件,完了之后再安装数据库。
Oracle系统启动时,首先在内存中创建数据库实例,然后由实例找到保存在磁盘中的数据库,最后打开数据库让用户操作。当系统关闭时,实例会从内存中清除掉;整个内存结构和后台进程都会消失,但是数据库依然存在于磁盘上,只是处于关闭的状态。
1、数据库
数据库是数据集合。
在安装Oracle数据库时,会让我们选择安装启动数据库(即默认的全局数据库);
启动数据库:也叫全局数据库,是数据库系统的入口,它会内置一些高级权限的用户如SYS,SYSTEM等。我们用这些高级权限账号登陆就可以在数据库实例中创建表空间,用户,表。
内置一些高级权限的用户有 3 个:sys,system,scott
① sys用户超级管理员(等同sql sa,mysql root),具有oracle的最高权限,具有sysdba角色,具有创建create database的权限,密码默认为manager。
②.system用户是操作管理员,权限仅次于sys,具有sysoper(ate)的角色;system其没有create database的权限,其他的权限与sys相同。
③.scott用户普通用户,默认密码为tiger,该用户默认是锁定,可以用system去解锁
全局数据库名:就是一个数据库的标识,在安装时就要想好,以后一般不修改,修改起来也麻烦,因为数据库一旦安装,数据库名就写进了控制文件,数据库表,很多地方都会用到这个数据库名。
查询当前数据库名:
1 select name from v$database;
2、数据库实例
Oracle官方描述:实例是访问Oracle数据库所需的一部分计算机内存和辅助处理后台进程,是由进程和这些进程所使用的内存(SGA)所构成一个集合。
其实就是用来访问和使用数据库的一块进程,它只存在于内存中。
我们访问Oracle数据库就是通过一个实例连接数据库,然后访问数据库文件。如果这个实例关联了数据库文件,就是可以访问的,如果没有,就会得到实例不可用的错误。
Oracle系统启动时,首先在内存中创建数据库实例,然后由实例找到保存在磁盘中的数据库,最后打开数据库让用户操作。当系统关闭时,实例会从内存中清除掉:整个内存结构和后台进程都会消失,但是数据库依然存在于磁盘上,只是处于关闭的状态。之前也说过,Oracle实例可以在不打开数据库的情况下运行
实例名指的是用于响应某个数据库操作的数据库管理系统的名称。她同时也叫SID。实例名是由参数instance_name决定的。
查询当前数据库实例名:
1 select instance_name from v$instance;
数据库实例名(instance_name)用于对外部连接。在操作系统中要取得与数据库的联系,必须使用数据库实例名。比如我们作开发,要连接数据库,就得连接数据库实例,通过实例名连接:
jdbc:oracle:thin:@localhost:1521:orcl(orcl就为数据库实例名)
严格的说:一个Oracle服务,只包括一个Oracle实例和一个数据库(不考虑双机并行等这样的情况)。
但是一个实例只能对应一个数据库,一个数据库有可能对应多个实例。除非使用并行 Oracle 服务器选项,否则每个 Oracle 数据库都有一个实例与之相关,一个数据库被唯一的一个实例装载。
数据库与实例之间是1对1/n的关系,在非并行的数据库系统中每个Oracle数据库与一个实例相对应;在并行的数据库系统中,一个数据库会对应多个实例,同一时间用户只与一个实例相联系,当某一个实例出现故障时,其他实例自动服务,保证数据库正常运行。在任何情况下,每个实例都只可以对应一个数据库。
3、表空间
Oracle数据库是通过表空间来存储物理表的,一个数据库实例可以有N个表空间,一个表空间下可以有N张表。有了数据库,就可以创建表空间。
表空间(tablespace)是数据库的逻辑划分,每个数据库至少有一个表空间(称作SYSTEM表空间)。为了便于管理和提高运行效率,可以使用一些附加表空间来划分用户和应用程序。
数据库自带表空间:
① SYSAUX表空间
SYSAUX表空间在Oracle Database 10g中引入,作为SYSTEM表空间的辅助表空间.以前一些使用独立表空间或系统表空间的数据库组件现在在SYSAUX表空间中创建.SYSAUX 表空间存放一些其他的 metadata 组件,如 OEM,Streams 等会默认存放在 SYSAUX 表空间里。通过分离这些组件和功能,SYSTEM表空间的负荷得以减轻.反复创建一些相关对象及组件引起SYSTEM表空间的碎片问题得以避免。
② SYSTEM表空间
SYSTEM表空间是Oracle创建数据库时候自动创建的,每个Oracle数据库都会有SYSTEM表空间,而且SYSTEM表空间总是要保持在联机模式下,因为其包含了数据库运行所要求的基本信息,如:数据字典、联机求助机制、所有回退段、临时段和自举段、所有的用户数据库实体、其它ORACLE软件产品要求的表等等。
③ TEMP表空间
临时表空间用来管理数据库排序操作以及用于存储临时表、中间排序结果等临时对象,当ORACLE里需要用到SORT的时候,并且当PGA中sort_area_size大小不够时,将会把数据放入临时表空间里进行排序。像数据库中一些操作: CREATE INDEX、 ANALYZE、SELECT DISTINCT、ORDER BY、GROUP BY、 UNION ALL、 INTERSECT、MINUS、ORT-MERGE JOINS、HASH JOIN等都可能会用到临时表空间。当操作完成后,系统会自动清理临时表空间中的临时对象,自动释放临时段。这里的释放只是标记为空闲、可以重用,其实实质占用的磁盘空间并没有真正释放。这也是临时表空间有时会不断增大的原因。临时表空间存储大规模排序操作(小规模排序操作会直接在RAM里完成,大规模排序才需要磁盘排序Disk Sort)和散列操作的中间结果.它跟永久表空间不同的地方在于它由临时数据文件(temporary files)组成的,而不是永久数据文件(datafiles)。临时表空间不会存储永久类型的对象,所以它不会也不需要备份。另外,对临时数据文件的操作不产生redo日志,不过会生成undo日志。
④ UNDO表空间
UNDO表空间是Oracle特有的概念。undo表空间中会自动分配undo段,这些undo段用来保存事务中的DML语句的undo信息,也就是来保存数据在被修改之前的值。在rollback,实例恢复(前滚),一致性读CR块的构造时会使用到undo信息。由于undo的引入,从而Oracle的select语句实现一致性读时,不需要任何锁。undo表空间和其它表空间有很多类似的地方:undo数据块也会被读到buffer cache缓存起来,修改时也会产生redo log,数据也会写回到undo表空间的磁盘上。所以崩溃后,undo块的buffer cache也会恢复过来。
⑤ USERS表空间
创建用户必须为其指定表空间,如果没有显性指定默认表空间,则指定为users表空间,此用户所有信息都会放入到users表空间中。
查看已经创建好的表空间:
1 select default_tablespace, temporary_tablespace, username from dba_users;
4、用户
Oracle数据库建好后,要想在数据库里建表,必须先为数据库建立用户,并为用户指定表空间。Oracle的表空间、包括各种数据库对象的使用和操作权限都是通过授权的方式在用户之间使用的。
查看数据库用户:
1 select * from dba_users;
综上,现有实例和数据库;用户和表空间都存在于实例之后,是授权访问的,但是系统内置高级权限用户和自带表空间在实例创建之初都会被加载。
因此,实例故障时,其他实例接替服务,故障实例的表空间等信息,都可以通过高级权限用户再行赋权给其他实例。
5、数据库对象
有了数据库,表空间和用户,用户在自己的表空间创建表。有了表,就可以进行开发。
数据库的所有对象,包括过程、函数、包和包体、JOB、表、视图、索引、序列、触发器等都由用户开发,存在于表空间下。
Oracle数据库怎么使用
MySQL云数据库创建、配置与使用教程,五秒钟创建属于自己的mysql云数据库,申请地址:xmjar.cn
oracle数据库中SID到底什么意思?怎么用?
SID的意思是oracle数据库的唯一标识符是你在建立一个数据库时系统自动赋予的一个初始ID。
SID主要用于在一些DBA操作以及与操作系统交互,从操作系统的角度访问实例名,必须通过ORACLE SID,且它在注册表中也是存在的。
扩展资料
如何查询当前用户的SID:
1、按【Win + R】快捷键,在弹出的运行对话框中输入【cmd】后按回车键
2、在命令提示符窗口中输入"whoami ? /user",按回车键
3、然后就查出我当前的用户名和对应的SID
oracle 中 sum 如何使用,
使用如下:sum是求和函数,例如:select sum(列名) from 表名,用于计算列的总和。
sum是求指定字段下所有数据的相加总和,select sum(o.amount) from pos_order o 意思就是求出amount这个字段下的数据总和。
1、sum为聚合函数:是?SQL语言中一种特殊的函数:聚合函数,SUM, COUNT, MAX, MIN, AV等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。
2、其他举例:SELECT SUM(population) FROM COUNTRY ,这里的SUM作用在所有返回记录的population字段上,结果就是该查询只返回一个结果,即所有国家的总人口数。
扩展资料
一、应用
Transact-SQL编程语言提供下列聚合函数:
1、AVG 返回指定组中的平均值,空值被忽略。
例:select prd_no,avg(qty) from sales group by prd_no
2、 COUNT 返回指定组中项目的数量。
例:select count(prd_no) from sales
3、 MAX 返回指定数据的最大值。
例:select prd_no,max(qty) from sales group by prd_no
4、 MIN 返回指定数据的最小值。
例:select prd_no,min(qty) from sales group by prd_no
5、 SUM 返回指定数据的和,只能用于数字列,空值被忽略。
例:select prd_no,sum(qty) from sales group by prd_no
6、 COUNT_BIG 返回指定组中的项目数量,与COUNT函数不同的是COUNT_BIG返回bigint值,而COUNT返回的是int值。
例:select count_big(prd_no) from sales
二、Oracle
Oracle数据库系统是美国Oracle公司(甲骨文公司)提供的以分布式数据库为核心的一组软件产品,是目前最流行的C/S或B/S体系结构的数据库之一,在数据库领域一直处于领先地位。
Oracle数据库是目前世界上使用最为广泛的数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类数据操作环境。
作为一个通用的数据库系统,Oracle具有完整的数据管理功能;作为一个关系数据库,Oracle是一个完备关系的产品;作为分布式数据库,Oracle实现了分布式处理功能。因此,Oracle数据库是一种高效率、可靠性好的适应高吞吐量的数据库解决方案。
参考资料来源:百度百科:聚合函数
百度百科:SQL数据库
oracle数据库怎样使用备份
先确认oracle服务器上oracle如下截图中标红的相关的服务是否已经正常启动。
要断开数据库的所有连接,如果数据库中有正在连接客户端,备份的时候可能会出现异常,比如PLSQL的连接先退出一下。
在开始菜单中输入“cmd”命令后回车,打开dos命令窗口,如下截图1和2所示。
在cmd窗口中,输入以下命令:
exp 用户名/密码@SID file=d:\xx.dmp owner=用户名,按下回车键,界面如下截图所示。
导出的时间是根据数据库的大小决定的,如果数据库中表比较多,数据量比较大速度就会比较慢,请耐心等待。当数据完成导出之后,cmd窗口中会出现如下图所示的提示语,这就表示已经完成了数据库备份导出的动作。
这时候在计算机中找到第四步中设定的文件保存路径,如下截图,你会发现多了一个dmp的文件,这个文件就是我们需要的备份文件了。
可以在控制面板的管理工具中,找到任务计划程序,设置一个定时任务,每天执行一遍exp 用户名/密码@SID file=d:\xx.dmp owner=用户名这个命令,这样就能实现数据库数据的定时备份了。
oracle数据库使用
declare ls_id varchar2(20);
cursor cur is select distinct id from emp;
begin
open cur;
loop
fetch cur into ls_id;
exit when cur%notfound;
if ls_id='10' then
update emp set gongzi=gongzi*1.1 where id=ls_id;
End If;
If ls_id='20' Then
Update emp Set gongzi=gongzi*1.05,comm=200 Where Id=ls_id;
End If;
If ls_id='30' Then
Update emp Set gongzi=gongzi+300 Where Id=ls_id And gongzi2500;
End If;
end loop;
close cur;
end;