千家信息网

oracle数据库的结构及基本操作

发表于:2024-11-25 作者:千家信息网编辑
千家信息网最后更新 2024年11月25日,这篇文章主要介绍"oracle数据库的结构及基本操作",在日常操作中,相信很多人在oracle数据库的结构及基本操作问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"ora
千家信息网最后更新 2024年11月25日oracle数据库的结构及基本操作

这篇文章主要介绍"oracle数据库的结构及基本操作",在日常操作中,相信很多人在oracle数据库的结构及基本操作问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"oracle数据库的结构及基本操作"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

系统简介

ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。

如图所示:
SGA---为数据库提供服务
PGA---为用户提供服务
整个系统主要分为两大部分:
(一)实例-管理端
内存结构---SGA:共享池 数据缓冲区 日志缓冲区
后台进程---维持与数据库交互
(二)数据库
数据文件 控制文件 日志文件

特点

  • 完整的数据管理功能

  • 完备关系的产品

  • 分布式处理功能

  • 用ORACLE能轻松的实现数据仓库的操作

    逻辑结构

    逻辑结构由逻辑存储结构(表空间,段,范围,块)和逻辑数据结构(表、视图、序列、存储过程、同义词、索引、簇和数据库链等)组成,而其中的模式对象(逻辑数据结构)和关系形成了数据库的关系设计。

  • 段(Segment):是表空间中一个指定类型的逻辑存储结构,它由一个或多个范围组成,段将占用并增长存储空间。

  • 范围(Extent):是数据库存储空间分配的逻辑单位,一个范围由许多连续的数据块组成,范围是由段依次分配的。

  • 数据块(Block):是数据库进行IO操作的最小单位,oracle数据库是以多个Oracle数据库块为单位。

表空间

system:系统表空间,存放关于表空间名称、控制文件、数据文件等管理信息,它属于sys、system模式。不能删除或重命名
sysaux:辅助系统表空间,用于减少系统表空间负荷,提高效率
temp:临时表空间,存放临时表和临时数据,用于排序
users:用户表空间,存放永久性用户对象及私有信息,也成数据库表空间。每个数据库都应有一个用户表空间,创建用户时分配给用户
undo:重做表空间,用来帮助回退未提交的事务数据

文件结构

数据库的物理存储结构是由一些多种物理文件组成,主要有:

  • 控制文件:存储实例、数据文件及日志文件等信息的二进制文件。

  • 数据文件:存储数据,以.dbf做后缀。一句话:一个表空间对多个数据文件,一个数据文件只对一个表空间。

  • 重做日志文件:用于进行数据库的实例恢复。

  • 日志文件:记录数据库修改信息。

  • 参数文件:记录基本参数。

  • 口令文件:允许sysdba、sysoper和sysasm远程连接到实例并执行管理任务。

  • 归档日志文件:使用这些文件好数据库备份,可以恢复丢失数据文件。

  • 警告文件:show parameter background_dump_dest---使用共享服务器连接

  • 跟踪文件:show parameter user_dump_dest---使用专用服务器连接

基本操作

一、数据库开启、关闭

//进入数据库

su - oraclesqlplus / as sysdba                    #以最高管理员sysdba登录SQL> help index                       #查看命令列表SQL> show user                      #查看当前用户

//开启、关闭数据库(三阶段)

SQL>startup                                #开启:实例--数据库装载--数据库打开SQL>shutdown immediate        #关闭:数据库关闭--卸载数据库--实例


//启用、关闭监听

lnsrctl start
lnsrctl stop

二、创建数据库

dbca
#创建数据库(如果不弹窗口执行: export DISPLAY=:0.0)
执行成功会跳出创建数据库页面,按以下步骤操作


接下来等安装进度完成即可!

三、表空间操作

//创建表空间

SQL>create tablespace tbs_work
datafile '/orc/app/oracle/oradata/aaa01.dbf'
size 10M autoextend on; #支持自动扩展


//调整表空间大小
方法一:修改空间大小

SQL>alter database datafile
'/orc/app/oracle/oradata/aaa01.dbf'
resize 80M;


方法二:添加数据文件

SQL>alter tablespace tbs_work
add datafile
'/orc/app/oracle/oradata/aaa02.dbf'
size 40M autoextend on;


//表空间权限

alter tablespace tbs_work read only;
alter tablespace tbs_work write read;

//删除表空间

drop tablespaces tbs_work including contents;

四、CDB与PDB操作

//查询当前所在容器

SQL> startup
SQL> show con_name

//查询数据库所有容器

SQL> show pdbs;

//CDB切换到PDB

SQL> alter pluggable database orclpdb open;   #修改可插拔库orclpdb打开状态SQL> alter session set container=orclpdb;          #CDB下切换会话到PDB中

//PDB切换到CDB

SQL> shutdown immediate                                  #在PBD中关闭插拔数据库SQL> startup                                                          #在PBD中开启插拔数据库SQL> alter session set container=cdb$root;      #切换会话到CDB

五、用户管理

//创建表空间

SQL>create tablespace school  2  datafile '/orc/app/oracle/oradata/school01.dbf'  3  size 100M;

//创建用户(创建好未赋予权限,所以不能登录)

SQL> create user c##jack  2  identified by 123123                   3  default tablespace school              #默认表空间  4  temporary tablespace temp            #定义临时表空间  5  quota unlimited on school               #不设定配额  6  password expire;                             #设定密码,下次登录修改

//更改用户密码

SQL> alter user c##jack identified by abc123;

//删除用户

SQL> drop user c##jack cascade;


//用户授权

SQL> grant connect, resource to c##jerry; #授予连接和管理数据库权限
SQL> revoke connect, resource from c##jerry;


//用户登录

sqlplus -----c##jerry(用户名)----123123(密码)----新密码---登陆成功


//用户切换

coon sys/abc123 as sysdba #切换到sysdba
conn---c##jerry---123123 #切换到c##jerry

六、表的操作

create table info
2 (
3 id number(4) constraint PK_id primary key, #constraint PK_id:约束-约束名称
4 name varchar2(10),
5 score number(5,2),
6 born date,
7 address varchar2(50)
8 );

//查看表结构

desc info;


//插入数据

insert into info values(1,'zhangsan',88,to_date('2018-10-9','yyyy-mm-dd'),'nanjing');

//查看表格

select * from info;

七、事务

  • 事务:在不违反约束的条件下,sql语句要么执行成功,要么都不执行。
    //事务提交

    insert into info values(2,'lisi',88,null,null); #插入数据
    commit; #提交


//事务回滚

insert into info values(3,'wangwu',77,null,null); #插入数据
rollback; #回滚


//设置自动提交

set autocommit on; #自动提交,回滚无效
set autocommit off; #关闭自动提交

到此,关于"oracle数据库的结构及基本操作"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

0