DM7经常使用的命令汇总

  由于DM7、DM8兼容oracle ,所以当你不知道某个命令时,大抵就是可以参照oracle的命令及语法,当然有极少的情况会不一样。常用命令如下:

1.连接登录

disql SYSDBA/SYSDBA@223.254.7.185:5236

或者默认登录

disql 连续回车即可。

 

2 表空间相关

select tablespace_name from dba_tablespaces; --查看所有表空间

select  * from V$TABLESPACE; --2.2 查看表空间详细信息

create tablespace tbs4 datafile '/dm7/data/DAMENG/tbs4.dbf' size 100 autoextend on next 1 maxsize 2048;
--创建表空间,初始100M,最大2G,下次自动扩展为1M

 

 

3.用户

select username from dba_users;

create user test identified by "dameng123" default tablespace test; -- 密码dameng123

create user test identified by dameng123 default tablespace test; --密码—DAMENG123

select user;  --查看当前登录的用户

alter user test identified by 123456789;  --改密码

alter user test account lock; --锁定用户:

alter user test account unlock; --解锁用户

drop user test; --删除用户

drop user test cascade;--级联删除

 

4.权限

select grantee,granted_role from dba_role_privs;  确定用户的角色,得到test 拥有public的角色

select grantee,privilege from dba_sys_privs where grantee='PUBLIC';查看角色的权限:  查看public的权限

 grant resource to test; 分配权限

 

5.模式

CREATE SCHEMA "DMSCH" ;

 

6.表

select table_name from user_tables; 查看所有表

create table test2 (c1 int not null primary key, c2 varchar(20)); --创建普通表test2

create table  test1 as select * from test2 where 1=0; 创建test1表与test2一致,不要数据

drop table test2 cascade; --删除表,级联方式

alter table test1 add constraint fk_11 foreign key(c1) references test2;  --添加外键

alter table test1 add c3 varchar(20) default sysdate; --添加字段,默认为系统时间

alter table test1 drop column c3;  --删除字段

insert into test1 values(1, 'aaa'); --单行插入

insert into test1 values(2, 'aaa'),(3,'bbb'); --多行插入

insert into test1 select * from test2 where c1=1; --查询其他表插入本表

update test1 set c2='bbb' where c1=1; --普通的修改语句

delete from test1 where c1=1; --普通的删除语句

 

 

7.常用的查询语句

select top 10 * from test; --普通的查询语句,仅查询10行

select * from v$version; --查询数据库版本信息

select * from sysobjects where name=‘test’; --查询表test 的表id等信息

select * from sysobjects where name=‘sysdba’; --查询模式sysdba 等相关信息

select TAB.name, SCH.name, TAB.id, sch.id 
from sysobjects TAB, sysobjects SCH where TAB.name='test' and TAB.subtype$='UTAB' and TAB.schid=SCH.id; --查表对应的id和模式id select 'create table hs'||c1||' (c1 int);' from test_seq;
--建立hs1至hs100 的表或用户的思路,创建个test_seq 表插入c1位1-100,然后生成语句就可以了。 select id,count(*) from sysdba.test group by id having count(*) >1; ---分组查询id重复数据行。 select distinct * from sysdba.test; -- 查询所有字段完全不同的数据行,排除重复行

 

8.在其他用户执行SQL的存储过程,在C中:

create or replace procedure  "%s".FF_DDL_EXEC_SQL_PROC(sqlstr clob) as

begin

         execute immediate(sqlstr);

         commit;

end;

 

9.分区表操作示例

--创建一个分区表:
create table sysdba.t_partition (
id int not null, name varchar(20), cluster primary key (id)) partition by range(id) ( partion "t_partition_p1" values less than(10) storage(on "main", cluster), partion "t_partition_p2" values less than(20) storage(on "main", cluster), partion "t_partition_p3" values less than(30) storage(on "main", cluster), partion "t_partition_pmax" values less than(MAXVALUE) storage(on "main", cluster) ) storage (on "main", cluster);

--增加分区
alter table sysdba.t_partition split partition "t_partition_pmax" at(50) into (partion "t_partition_p4", partion "t_partition_p5");

--删除分区
alter table sysdba.t_partition drop subpartition 【t_partition_p3---子表名】

9.1 查询子表分区

select * from sysdba.t_partition partition (t_partition_p1);

9.2 DM锁定子表语法:

lock table sysdba.t_partition_t_partition_p1 in share mode nowait; 
(--oracle语法:lock table sysdba.t_partition partition (t_partition_p1) in share mode nowait;)

 

10.层次查询

select *,connect_by_isleaf isleaf, case when level =1 then 1 else 2 end part_type from sys.SYSHPARTTABLEINFO t 
connect by prior part_table_id = base_table_id start with base_table_id =1533;

 

posted @ 2019-10-23 10:08  疾风泣影  阅读(870)  评论(0)    收藏  举报