当前位置:Gxlcms > 数据库问题 > Oracle基本操作(二)

Oracle基本操作(二)

时间:2021-07-01 10:21:17 帮助过:15人阅读

oracle数据库的基本操作;

  • 创建表空间
  • 插拔数据库
  • 创建用户
  • 创建数据表(事务)
  • 索引
  • 视图
  • 序列
  • 同义词

一,创建表空间
例;

create tablespace school //创建表空间school
2 datafile ‘/oracle/app/oracle/oradata/school01.dbf‘ //指定表空间文件存放位置
3 size 10m autoextend on; //指定大小,空间可以扩容

技术分享图片技术分享图片
调整表空间大小
1,调整大小

SQL> alter database datafile
2 ‘/oracle/app/oracle/oradata/school01.dbf‘
3 resize 80m;

数据库已更改。

2,添加文件

SQL> alter tablespace school
2 add datafile
3 ‘/oracle/app/oracle/oradata/school02.dbf‘
4 size 20m autoextend on;

表空间已更改。

技术分享图片
表空间权限

SQL> alter tablespace school read only; //修改为只读权限

表空间已更改。

SQL> alter tablespace school read write; //权限修改为读写(默认)

表空间已更改。

删除表空间

SQL> drop tablespace school including contents;

表空间已删除。

技术分享图片

二,插拔数据库(CDB与PDB转换)

SQL> show con_name //查看当前所在的容器
SQL> show pdbs; //查询数据库的所有容器

技术分享图片
将当前数据库CDB转换为PDB

CDB:默认的数据库
PDB:容器型数据库
SQL> alter pluggable database orclpdb open; //修改可插拔库orclpdb打开状态

插接式数据库已变更。

SQL> alter session set container=orclpdb; //CDB下切换会话到PDB中

会话已更改。
SQL> shutdown immediate //在PBD中关闭插拔数据库
插接式数据库已关闭。

SQL> startup //在PBD中打开插拔数据库
插接式数据库已打开。

技术分享图片
将PDB切换为CDB

SQL> alter session set container=cdb$root; //切换会话到CDB

技术分享图片

三,创建用户

创建用户必须指定一个默认的表空间
在12 C版本,CDB中创建用户,用户名格式为:c##用户名
PDB中创建用户,用户名格式为:用户名
SQL> create user c##jack
2 identified by abc123 //指定密码
3 default tablespace users //指定默认表空间
4 temporary tablespace temp //指定临时表空间
5 quota unlimited on users; //不进行限额
更改用户密码
SQL> alter user c##jack identified by jack123;

删除用户
SQL> drop user c##jack cascade;

技术分享图片技术分享图片
四,创建数据表(插入数据,事务)

SQL> create table info
2 (
3 id number(4),
4 name varchar2(10),
5 score number(5,2),
6 riqi date
7 );

技术分享图片
五,事务

在oracle中默认开启事务不进行提交。因此在进行数据操作时,一定要记得提交,或者设定为自动提交。否则数据不能写入硬盘中。
SQL> insert into info values (1,‘lisi‘,80,to_date(‘2018-08-26‘,‘yyyy-mm-dd‘));
SQL> set autocommit on; //设定自动提交,回滚无效

技术分享图片技术分享图片技术分享图片
六,索引

B树索引

create index 索引名称 on 表名(列名)

唯一索引/非唯一索引

create unique index 索引名称 on 表名(列名)

反向索引

create index 索引名称 on 表名(列名)reverse

位图索引

create bitmap index 索引名称 on 表名(列名)

其他索引

create index 索引名称 on 表名(upper(列名)) //大写函数索引

查看索引

select index_name,index_type,table_name,tablespace_name from user_indexes;

查看索引相关信息

select index_name,table_name,column_name from user_ind_columns where index_name like ‘EMP%‘;

重建索引

alter index 索引名称 rebuild;

alter index 索引名称 rebuild tablespace 表空间

合并索引碎片

alter index 索引名称 coalesce;

删除索引

drop index 索引名称

技术分享图片
技术分享图片
七,视图

创建视图要注意权限问题
SQL> create view vinfo as select from info; //创建视图
SQL> select
from vinfo; //查询视图
SQL> drop view vinfo; //删除视图

技术分享图片技术分享图片
物化视图

首先要通过管理员帐号为c##jack用户赋予权限
SQL> grant create materialized view to c##jack; //创建物化视图权限
SQL> grant query rewrite to c##jack; //查询,重写权限
SQL> grant create any table to c##jack; //创建所有表权限
SQL> grant select any table to c##jack; //查询所有表权限

技术分享图片
创建物化视图之前需要创建物化视图日志

create materialized view log on info;

技术分享图片
创建物化视图

SQL> create materialized view mtview
2 build immediate //创建完成立马生成新数据
3 refresh fast //刷新数据
4 on commit //提交
5 enable query rewrite //开启查询重写功能
6 as
7 select * from info;

SQL> drop materialized view mtview; //删除物化视图

技术分享图片
八,序列

oracle中自增列需要单独进行创建,然后插入数据时进行调用。
创建序列
SQL> create sequence id_seq
2 start with 10 //初始值
3 increment by 1 //增量
4 maxvalue 1000 //最大值
5 nocycle //肺循环
6 cache 50; //缓存

插入数据时调用序列
SQL> insert into info values (id_seq.nextval,‘tom‘,80,to_date(‘2018-04-10‘,‘yyyy-mm-dd‘));
查询序列当前值
SQL> select id_seq.currval from dual;
更改序列
SQL> alter sequence id_seq cache 30;
查看序列信息
SQL> select sequence_name,increment_by,cache_size from user_sequences;
删除序列
SQL>drop sequence id_seq;

技术分享图片技术分享图片技术分享图片
九,同义词

俗称别名,外号,可以提高数据安全可靠性。
私有同义词:只在当前用户可以使用
公有同义词:所有数据库用户都可以使用
SQL> create synonym pr_info for info; //创建私有同义词
SQL> create public synonym pub_info for info; //创建共有同义词
删除同义词
SQL> drop synonym pr_info;
SQL> drop public synonym pub_info;

技术分享图片
技术分享图片

Oracle基本操作(二)

标签:http   rtu   ESS   碎片   权限   clu   同义词   cache   currval   

人气教程排行