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