Oracle对象管理
一、用户管理
1、创建表空间 create tablespace school #指定表空间名称 datafile ‘/orc/app/oracle/oradata/school01.dbf‘ #指定数据文件路径 size 200M #指定表空间大小 autoextend on #设置表空间自动扩展 2、创建用户 create user c##tom #创建用户"Tom" identified by abc123 #设置用户密码"abc123" default tablespace school #指定默认表空间"school" temporary tablespace temp #指定默认临时表空间"temp" quota unlimited on school #针对"school"表空间不做磁盘配额限制 password expire; #设置用户每次登录,强行修改密码 更改用户密码 grant connect,resource to c##tom; #connect为连接权限;resource为管理数据库权限 revoke connect,resource from c##tom; #撤销用户授权(sysdba用户下) 以tom身份登录 commit; #注意,oracle默认是手动提交事务,对数据编辑完之后,必须使用commit进行提交 rollback; #注意,事务回滚使用此命令 set autocommit on; #设置自动提交 二、索引1、说明 create index index_sno on student(‘name‘); select * from all_indexes where table_name=‘student‘; 5、索引的分类 create index index_info on info(score) ; create unique index uni_index_info on info(id); #唯一索引 create index rev_index_info on info(createtime) reverse; #反向索引 使用场景 create index up_index_info on info(upper(name)); #大写函数索引 select * from student where upper(name) =‘WISH‘; #验证查看 三、视图1、视图的定义 grant create view to c##tom; #Sysdba身份登录为用户创建视图授权 SQL> create view view_info as select * from info; 2)查看视图
SQL> grant create materialized view to c##tom; #授予创建物化视图权限 SQL> grant query rewrite to c##tom; #授予查询、重写权限 SQL> grant create any table to c##tom; #授予创建任何表权限 SQL> grant select any table to c##tom; #授予查询任何表权限 3)创建物化视图日志 SQL> conn #连接tom用户 SQL> create materialized view log on info; 4)创建物化视图 SQL> create materialized view mtrlview_pro 2 build immediate #创建物化视图是否立即生成数据,immediate代表true 3 refresh fast #设置与基表进行同步更新,如果不添加此参数,相当于快照功能 4 on commit #开启提交功能 5 enable query rewrite #开启查询、重写功能 6 as select * from info; 5)删除视图
四、导入导出数据drop index up_index_info; #删除前面创建的索引,否则无法更改列字段的属性 alter table info modify name varchar2(11); #更改name字段的位宽 begin 2 for i in 2..100 3 loop 4 insert into info values(i,‘zhangsan‘||i,88,to_date(‘2018-10-10‘,‘yyyy-mm-dd‘),‘nanjing‘); 5 end loop; 6 commit; 7 end; 8 /
ho ls /home/oracle #oracle软件可以兼容Linux 使用ho命令跟上liunx命令查看家目录文件 用指定用户导入数据 imp c##tom/abc123 full=y file=/home/oracle/test.dmp select * from tab; #查看相关表信息 2、导出数据 exp c##tom/abc123 file=/home/oracle/test.dmp #指定用户进行导出数据 ls /home/oracle/ //查看验证 五、序列1、序列定义 SQL> create sequence toy_seq 2 start with 1 #指定初始值 3 increment by 1 #指定增量 4 maxvalue 2000 #指定最大值 5 nocycle #指定工作模式为非循环 6 cache 30; #指定缓存区30个数值,空闲等待 3、添加数据 Delete from info; #清空表 SQL> insert into info values (toy_seq.nextval,‘Sony‘,999999,to_date(‘2018-10-09‘,‘ok‘); #插入值多次执行该语句,发现ID对应的序列号在自增 Select * from info; #查看验证 4、查看序列 SQL> select toy_seq.currval from dual; #查看当前序列的值 SQL> select sequence_name,increment_by,cache_size from user_sequences; #查看序列的相关信息 5、更改序列 SQL> alter sequence toy_seq maxvalue 5000 cycle; 6、删除序列 SQL> drop sequence toy_seq;
六、同义词1、定义 SQL> grant create synonym to c##tom #dba为用户创建同义词授权 SQL> show user; #查看当前用户 SQL> create synonym pr_info for info; #为表设置了一个别名"pr_info" 2)调用私有同义词
SQL> conn / as sysdba #管理员登录 SQL> grant create public synonym to c##tom; #为用户创建公有同义词授权 2)创建公有同义词 SQL> conn c##tom/abc123 #连接普通用户 SQL> create public synonym public_sy_info for info; 3)查看公有同义词 SQL> conn / as sysdba #管理员登录 SQL> select * from public_sy_info; #切换dba之后可以查看,dba中并没有info表,说明共有同义词生效 七、分区表1、定义 SQL> show user; #当前用户为系统管理员 SQL> create tablespace tmp01 #注意建立4个表空间,依次为tmp01、tmp02、tmp03、tmp04 2 datafile ‘/orc/app/oracle/oradata/tmp01.dbf‘ 3 size 100M; SQL> edit #编辑之前的操作将便空间名和dbf文件名修改 SQL> / #指定edit操作重复操作创建好四个表空间 SQL> select tablespace_name from dba_tablespaces; //查看表空间是否创建成功 3、创建数据表 SQL> create table sales #创建表 2 ( 3 sales_id number(4),4 product_id varchar2(5),5 sales_date date 6 ) 7 partition by range (sales_date) #指定按时间字段进行分区 8 ( 9 partition p1 values less than (to_date(‘2018-04-03‘,‘yyyy-mm-dd‘)) tablespace tmp01,#p1指定名称;less than小于指定的时间;tablespace指定表空间 10 partition p2 values less than (to_date(‘2018-05-03‘,‘yyyy-mm-dd‘)) tablespace tmp02,11 partition p3 values less than (to_date(‘2018-06-03‘,‘yyyy-mm-dd‘)) tablespace tmp03,12 partition p4 values less than (maxvalue) tablespace tmp04 13 ); 4、插入测试数据 insert into sales values (1,‘ttt1‘,to_date(‘2018-03-23‘,‘yyyy-mm-dd‘)); #应该存放在P1 insert into sales values (1,to_date(‘2018-04-23‘,‘yyyy-mm-dd‘)); #应该存放在P2 insert into sales values (1,to_date(‘2018-05-23‘,‘yyyy-mm-dd‘)); #应该存放在P3 insert into sales values (1,to_date(‘2018-06-23‘,‘yyyy-mm-dd‘)); #应该存放在P4 5、查询分区验证 八、控制文件1、定义 3、备份控制文件alter database backup controlfile to ‘/home/oracle/controlfile.bk‘; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |