达梦常用语句
1. 查询表空间
SQL> select * from V$TABLESPACE;
2. 模式查询
SQL> SELECT * FROM dba_segments;
通过系统视图查找,速度会慢很多 (7.1.4.6之前的版本不支持)
SQL> SELECT object_name from all_objects where object_type = 'SCH';
3. 查询表
SQL> select * from dba_tables where tablespace_name='%s'; //根据表空间名,大小写敏感
SQL> SELECT * FROM SYSOBJECTS WHERE schid = (SELECT object_id from all_objects where object_name = '%s'
and object_type = 'SCH') and (SUBTYPE$ = 'UTAB' or SUBTYPE$ = 'STAB');
//根据模式名字,借助公共属性模式ID。UTAB用户表,STAB系统表
4. 关闭数据库
SQL> shutdown normal;
正常方式关闭数据库
SQL> shutdown immediate;
立即方式关闭数据库。数据库并不立即关闭,而是在执行某些清除工作后才关闭(终止会话、释放会话资源)。需要10到20S
SQL> shutdown abort;
直接关闭数据库。正在访问数据库的会话会被突然终止,如果数据库中有大量操作正在执行,这时执行shutdown abort后,重新启动数据库需要很长时间
5. 用户和模式
用户(user):用来连接数据库访问数据库
模式(schema):模式对象是数据库数据的逻辑结构
关系:模式跟用户在oracle 是一对一的关系,db2 一个用户可以对应多个模式,dm也是一对多(mysql中没有模式概念)
6. 模式规则
- 在同一模式下不能存在同名对象,但在不同模式中的对象名称可以相同
- 新建表时候,可以指定表空间。如果不指定,则默认保存到MAIN
- 用户可以直接访问其他模式对象,但如果要要访问其他模式对象,则必须具有对象权限
- 当用户要访问其他模式对象时,必须附加模式名作后缀(schema.table)
7. 表空间
dm的表空间模仿oracle的表空间
同一表空间下可以存在同名对象
SQL> alter tablespace "%s" offline; //表空间脱机
SQL> alter tablespace "%s" online;
8. 模式切换
SQL> SELECT SYS_CONTEXT ('userenv', 'current_schema') FROM DUAL; //当前模式
SQL> SET SCHEMA "SYSDBA"; //大小写敏感
SQL> ALTER SESSION SET CURRENT_SCHEMA = "SYSDBA"; //非常安全的一个方式
9. 数据大小
SQL> SELECT SUM(bytes) from dba_data_files; //数据库占用空间(kb为单位)
SQL> SELECT * from v$datafile; //数据库读写占用
SQL> SELECT TABLE_USED_SPACE('SYSDBA', 'D') * 1024; //表大小,大小写敏感
10. 归档模式
SQL> select arch_mode from v$database; //归档是否打开
SQL> select * from V$DM_ARCH_INI; //归档信息
11. 实例名
SQL> select distinct value from v$parameter;
12. 其他
SQL> select * from SYSTABLECOMMENTS; //查询系统视图
SQL> select count(*) from dba_tables;
SQL> select * from user_tables;
SQL> select * from dba_tablespaces;
SQL> select * from user_tablespaces;
SQL> SELECT * from all_objects;
SQL> select * from dba_objects;
SQL> select * from user_objects;
SQL> select * from dba_users;
13. 特殊字符
“:默认处理方式是在”前加一个”作为标识
命令参数大小写:应用\”\”,否则它自动小写变大写。需要转义的字符加\
14. text数据类型
查找的时候不能用’=’号,要用link