Oracle知识点

2020.3.5
一、物理存储结构
1.数据库:物理操作系统文件或磁盘的集合。
——物理存储结构
——逻辑存储结构
2.实例:一组Oracle后台进程以及内存。
3.同一时间,一个实例只能打开一个数据库,也就是一个实例只能操作或管理一个数据库;
通常,同一时间,一个数据库只能被一个实例打开。
4.Oracle的物理存储结构是由存储在磁盘中的操作系统文件所组成的,Oracle在运行时需要使用这些文件。
5.一般Oracle数据库在物理上主要由3种类型的文件组成,分别是数据文件(.dbf)、控制文件(.ctl)和重做日志文件(*.log)。

二、物理存储结构-数据文件
1.数据文件(Date File)是指存储数据的文件。
2.数据文件一般有以下几个特点。
——一个表空间由一个或多个数据文件组成
——一个数据文件只对应一个数据库,而一个数据库通常包含多个数据文件
——数据文件可以通过设置其自动扩展参数,实现其自动扩展的功能。
3.如果想要了解数据文件的信息,可以查询数据字典dba_data_files和v$datafile。其中,dba_data_files主要有如下字段。
——file_name:数据文件的名称以及存放路径
——file_id:数据文件在数据库中的ID号。
——tablespace_name:数据文件对应的表空间名
——bytes:数据文件的大小
——blocks:数据文件所占有的数据块数
——status:数据文件的状态
——zutoextensible:数据文件是否可以扩展

三、物理存储结构-重做日志文件
1.重做日志文件(Redo Log File)是记录数据库中所有修改信息的文件。简称日志文件。
2.日志文件是数据库系统的最主要的文件之一,它可以保证数据库的安全,是进行数据库备份与恢复的重要手段。如果日志文件受损,数据库同样可能会无法正常运行。
3.Oracle中的日志文件组是循环使用的,当所有日志文件组的空间都被填满后,系统将重新切换到第一个日志文件组。发生日志切换时,日志文件组中已有的日志信息是否被覆盖,取决于数据库的运行模式。
在Oracle中,如果想要创建一个表,先要做哪些工作
得有数据库和数据库实例,然后要有表空间,还得有一个用户,然后在这个用户下才能开始创建表

四、物理存储结构-控制文件
1.控制文件(Contrpl File)是一个很小的二进制文件用于描述和维护数据库的物理结构。在Oracle数据库中,控制文件相当重要。它存放有数据库中数据文件和日志文件的信息。

2020.3.12

Oracle 数据库在逻辑上可以划分为一系列的逻辑空间,每一个逻辑空间就可以称为一个表空间。
一个数据库由有一个或多个表空间构成个表空间对应一个或多个数据文件表空间是存储模式对象(数据库对象) 的容器,一 个数据库对象只能存储在一个表空间中(分区表和分区索引除外),但可以存储在该表空间所对应的一个或多个数据文件中。

一.表空间(逻辑存储单元) ->段—>区间- - ->数据块表空间(逻辑存储单元,是最大的),之后是段(由区组成,逻辑存储单元),区间(Oracle分配磁盘空间的最小单位),数据块(数据库存储空间的最小单元)(都是逻辑存储单元)2.数据文件:(物理存储单元)(真实存在的,可看见的)3.表空间与数据文件的关系:表空间是由数据文件组成的,一个表空间可以对应多个数据文表空间的大小就是数据文件(加和)的大小;如果表空间不够,就要在数据文件加。

二.系统表空间(system tablespace) 是每个Oracle 数据库都必须具备的。
其功能是在系统表空间中存放诸如表空间名称、表空间所含数据文件等数据库
管理所需的信息。 系统表空间的名称是不可更改的。系统表空间必须在任何时
候都可以用,也是数据库运行的必要条件。因此, 系统表空间是不能脱机的。
系统表空间包括数据字典、 存储过程、 触发器和系统回滚段。为避免系统
表空间产生存储碎片以及争用系统资源的问题 应创建 个独立的表空间用来
单独存储用户数据

三.非系统表空间
1、UNDO 表空间
专门进行回滚信息的自动管理,由UNDO TABLESPACE参数设置。
2、临时表空间
专门进行临时数据管理的表空间,在数据库实例运行过程中,执行排序等 SQL语句时会产生大量的临时数据,这些临时数据将保存在数据库临时表空间中。
3、默认临时表空间
用户表空间保存用户数据

四.表空间的管理方式
字典管理方式
表空间使用数据字典来管理存储空间的分配,当进行区的分配与回收时,Oracle将对数据字典中的相关基础表进行更新,同时会产生回滚信息和重做信息。字典管理方式将渐渐被淘汰。
本地管理方式
在本地管理方式中,区的分配和管理信息都存储在表空间的数据文件中,而与数据字典无关。表空间在每个数据文件中维护一个“位图”结构,用于记录表空
间中所有区的分配情况,因此区在分配与回收时,Oracle将对数据文件中的位图进行更新,不会产生回滚信息或重做信息。
基本表空间一般指用户使用的永久性表空间,用于存储用户的永久性数据。
临时表空间用于存储排序或汇总过程中产生的临时数据temp大文件表空间用于存储大型数据 big非标准数据块表空间用于在一个数据块实例中创建数据块大小不同的表空间撤销表空间用于存储事物的撤销 在数据恢复时使用。

2020.3.17

–1.创建图书管理系统的临时表空间
create temporary tablespace booktmptbs
tempfile ‘D:\app\Administrator\oradata\bookMng\booktemptbs.bdf’ 
size 20M
–2.创建图书管理系统的撤销表空间
create undo tablespace bookundotbs
datafile ‘D:\app\Administrator\oradata\bookMng\bookundotbs.dbf’ 
size 20M
autoextend on next 5M
maxsize 50M
–3.创建图书管理系统的大文件表空间
create bigfile tablespace bookbigtbs
datafile ‘D:\app\Administrator\oradata\bookMng\bookbigfiletbs.dbf’ 
size 1G

–查询表空间的信息
Select * from dba_tablespaces
Select * from dba_data_files

--------------修改表空间操作---------------
–1.修改表空间的名字
alter tablespace booktbs
rename to booktbs2
–2.修改表空间中的数据文件大小
alter database 
datafile ‘D:\app\Administrator\oradata\bookMng\booktbs.bdf’
resize 40M
–3.增加表空间的数据文件
alter tablespace booktbs2
add datafile ‘D:\app\Administrator\oradata\bookMng\booktbs2.bdf’
size 10M,
‘D:\app\Administrator\oradata\bookMng\booktbs3.bdf’
size 10M;

-6.修改表空间中数据文件的状态
设置数据文件状态的语法如下:
ALTER DATABASE
DATAFILE file_name ONLINE | OFFLINE
设置表空间booktbs2为脱机状态
alter tablespace booktbs2 offline
设置表空间booktbs2为联机状态
alter tablespace booktbs2 online

任务1创建表-1.1数据类型
1. 字符数据类型
(1) CHAR 类型
CHAR 数据类型存储固定长度的字符值。一个 CHAR 数据类型可以包括1~2 000 个字符。如果没有对 CHAR 明确地说明长度、则它的默认长度设置为1。如果对某个 CHAR 类型变量赋值,其长度小于规定的长度,那么 Oracle 自动用空格填充
(2) VARCHAR2 类型
VARCHAH2 数据类型是一种可变长度的、有最大长度的字符型数据 虽然也必须指定个VARCHAB2 数据变量的长度,但是这个长度是指对该变量瞩值的最大长度,而非实际赋值长度 不需要用空格填充。最多可设置为4 000 个字件VARCHAR2 同 CHAR 的区别:CHAR 的长度是固定的,而VARCHAR2 的长度是可以变化的、比如,在储字符谨“abe”。对复LHAB(20)、表示存储的字符将占 20 个字节(包括17 个空字符),而VARCMAR2《20”则只占用×个字节的长度,20 只是最大鱼,当存储的字符小于20时,按实际长度存储 CMAR 的效率比VARCHAB2 的效率稍高
任务2 约束
·通过为表中的列增加约束条件,可以防止用户向该列传
递不合要求的数据。
· 例如人员表的性别列,使用数据类型CHAR(2)可以将该列
的输入数据限定为两个字节长度的字符串,但不能对字符串的内容做限制,像“ab”、 “12”和“家”等都是两个字节长度的字符串,它们都可以成功地传递给性别列,但是它们很明显是不符合要求的数据。为了防止这种情况的出现,可以对表添加完整性约束。
任务2 约束-2.4 FOREIGN KEY约束
•FOREIGN KEY约束是指外键约束,用于引用本表或另一个表中的一列或一组列。 FOREIGNKEY约束具有如下特点:
•被引用的列或列组应该具有主键约束或唯一约束
•引用列的取值只能为被引用列的值或NULL值
•可以为一个列或一组列定义FOREIGNKEY约束
任务2 约束-2.7禁用和激活约束
在添加约束时或添加约束后,都可以设置约束的状态,约束有如下两种状态。
激活状态(ENABLE):约束只有处于激活状态时,才会起到约束的作用。 如果操作与约束冲突, 则该操作将被禁止执行。默认为此状态。
禁用状态(DISABLE): 如果约束处于禁用状态,则该约束将 不起任何作用,即使操作与约束冲突, 也会被执行。

在PL/SQL中使用常量与变量
【例1】使用PL/SQL程序块,输出显示book表中isbn为’1831030124’的书名。
Declare
CISBN constant char(13):=‘1831030124’; (常量)
Name varchar2(30);

 number(5,2)
 char(10)
 varchar2(200)
 date
 interger

Begin
select bookname into name (赋值 name=***bookname)
from book where isbn=CISBN; (替换)
DBMS_OUTPUT.PUT_LINE(CISBN||name);
End;

  1. %TYPE类型
    — 【例2】使用PL/SQL程序块,输出显示book表中isbn为’1831030124’的书名。
    Declare
    CISBN tonstant book.isbn%type =‘1831030124’;
    Name book.bookname%type;
    Begin
    Select bookname into name
    From book where bookid=id; (isbn=cisbn)
    DBMS OUTPUT.PUT_LINE(id||name);
    End;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

轩辕椿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值