Oracle 常用命令

# 定义 editor 
  define _editor=vi
  
# 查看缓冲区中内容
  list
  
# 编辑缓冲区的内容
  edit
# 设置查询结果中的列分隔符
  set colsep ',' 

# 查看实例状态
  select instance_name,status from v$instance;

# 查看控制文件
  select name from v$controlfile;

# 查看数据文件
  select name from v$datafile;

# 查看临时文件(用于临时表空间)
  select name from v$tempfile;

# 查看日志文件
  select member from v$logfile;

# 查询数据库、是否归档和是否启用闪回 (mount)
select name,log_mode,flashback_on from v$database;

# 查看归档区(mount)
archive log list;

# 查看闪回区(nomount)
show parameter db_recovery_file_dest;

# 启用/禁用归档(mount)
alter database archivelog/noarchivelog;
alter system set log_archive_dest='dir_path';

# 启用/禁用闪回(mount)
alter database flashback on | off;
alter database set db_recovery_file_dest='dir_path';

# 切换日志组 (日志组切换会产生检查点,检查点会触发存盘操作)
alter system switch logfile;

# 强制产生检查点触发存盘操作
alter system checkpoint;

# 查看表所在的表空间(open)
select tablespace_name from dba_tables where owner='SCOTT' and table_name='T1';

# 查找表空间及对应的数据文件(open)
select tablespace_name,file_name from dba_data_files order by 1;

# 删除表空间及数据文件
drop tablespace ts1 including contents and datafiles;  
  
# 修改当前会话的语言环境
  alter session set nls_language='english';  
  
# oracle 常用数据字典
  user_tables  user_tab_columns  user_constraints  user_indexes
   all_tables   all_tab_columns   all_constraints   all_indexes
   dba_tables   dba_tab_columns   dba_constraints   dba_indexes
   user_views  user_tablespaces     user_triggers   user_source
    all_views                        all_triggers    all_source
    dba_views   dba_tablespaces      dba_triggers    dba_source
   user_users  user_sequences  
    all_users   all_sequences
    dba_users   dba_sequences
   v$instance    v$database  v$controlfile  
   v$tablespace  v$datafile  v$tempfile     v$logfile
   dba_data_files  dba_roles    

##########################  sql 基础  ##########################################
# rownum 和 order by
  当 rownum 和 order by 放在一起时,是先按行号过滤然后才排序的,所以会显示如下结果
  select id,name,rownum rn from test_tmp where rownum<5 order by id;
      ID NAME  RN
    ---- ---- ----
       8 hh    4
       9 ii    3
      10 jj    2
      11 kk    1
  正确的做法应该是先排序然后按行号过滤
  select b.*,rownum rn from (select a.* from test_tmp a order by a.id) b where rownum<5;
      ID NAME  RN 
    ---- ---- ----
       5 ee    1
       6 ff    2
       7 gg    3
       8 hh    4

 

你可能感兴趣的:(oracle)