ORACLE基础技术

来源:互联网 发布:淘宝直播怎么搜索找人 编辑:程序博客网 时间:2024/06/08 11:20

假设当前执行命令为:select * from tab;

(a)ppend     添加文本到缓冲区当前行尾   a  order by tname 

结果:select * from tab order by tname;
           (注:a后面跟2个空格)
(c)hange/old/new 在当前行用新的文本替换旧的文本 c/*/tname     结果:select tname from tab;
(c)hange/text  从当前行删除文本        c/tab       结果:select tname from ;
del       删除当前行
del n      删除第n行
(i)nput 文本   在当前行之后添加一行
(l)ist      显示缓冲区中所有行
(l)ist n     显示缓冲区中第 n 行
(l)ist m n    显示缓冲区中 m 到 n 行
run       执行当前缓冲区的命令
/        执行当前缓冲区的命令
r        执行当前缓冲区的命令
@文件名     运行调入内存的sql文件,如:

SQL> edit s<回车>
如果当前目录下不存在s.sql文件,则系统自动生成s.sql文件,
在其中输入“select * from tab;”,存盘退出。

 


察看各种对象:
表:
  select * from cat;
  select * from tab;
  select table_name from user_tables;
视图:
  select text from user_views where view_name=upper('&view_name');
索引:
  select index_name,table_owner,table_name,tablespace_name,status from user_indexes order by table_name;
触发器:
  select trigger_name,trigger_type,table_owner,table_name,status from user_triggers;
快照:
  select owner,name,master,table_name,last_refresh,next from user_snapshots order by owner,next;
同义词:
  select * from syn;
序列:
  select * from seq;
数据库链路:
  select * from user_db_links;
约束限制:
  select TABLE_NAME,CONSTRAINT_NAME,SEARCH_CONDITION,STATUS from user_constraints;
本用户读取其他用户对象的权限:
  select * from user_tab_privs;
本用户所拥有的系统权限:
  select * from user_sys_privs;
用户:
  select * from all_users order by user_id;
表空间剩余自由空间情况:
  select tablespace_name,sum(bytes) 总字节数,max(bytes),count(*) from dba_free_space group by tablespace_name;
数据字典:
  select table_name from dict order by table_name;
锁及资源信息:
  select * from v$lock;不包括DDL锁
数据库字符集:
  select name,value$ from props$ where name='NLS_CHARACTERSET';
inin.ora参数:
  select name,value from v$parameter order by name;
SQL共享池:
  select sql_text from v$sqlarea;
数据库:
  select * from v$database
控制文件:
  select * from V$controlfile;
重做日志文件信息:
  select * from V$logfile;
来自控制文件中的日志文件信息:
  select * from V$log;
来自控制文件中的数据文件信息:
  select * from V$datafile;
NLS参数当前值:
  select * from V$nls_parameters;
ORACLE版本信息:
  select * from v$version;
描述后台进程:
  select * from v$bgprocess;
查看版本信息:
  select * from product_component_version;

 

 

SQL> @s<回车>
系统会自动查询当前用户下的所有表、视图、同义词。

@@文件名     在.sql文件中调用令一个.sql文件时使用

save 文件名   将缓冲区的命令以文件方式存盘,缺省文件扩展名为.sql
get 文件名    调入存盘的sql文件
start 文件名   运行调入内存的sql文件

spool 文件名   把这之后的各种操作及执行结果“假脱机”即存盘到磁盘文件上,默认文件扩展名为.lst
spool      显示当前的“假脱机”状态
spool off    停止输出

例:
SQL> spool a
SQL> spool
正假脱机到 A.LST
SQL> spool off
SQL> spool
当前无假脱机


exit       退出SQL*PLUS
desc 表名    显示表的结构
show user    显示当前连接用户
show error    显示错误
show all     显示所有68个系统变量值
edit       打开默认编辑器,Windows系统中默认是notepad.exe,把缓冲区中最后一条SQL语句调入afiedt.buf文件中进行编辑
edit 文件名   把当前目录中指定的.sql文件调入编辑器进行编辑

clear screen   清空当前屏幕显示

插入日期:

 drop table da_yyyymmdd;                --如果有,先删除此表
create table da_yyyymmdd(rq char(8) PRIMARY KEY);    --建立表,rq(日期)为主关键字

declare
    i number;         --循环用
    j char(8);        --记录日期值
begin
    j:='20000101';                         --设初始值
    for i in 1..18250 loop                     --365*50=600天
    insert into da_yyyymmdd values(j);               --insert记录
    j:=to_char(to_date(j,'yyyymmdd')+1,'yyyymmdd');        --日期加1天
    end loop;                           --循环结束
end;
/
commit;

                                --提交,PL/SQL块不自动


插入月:
 drop table da_yyyymm;                --如果有,先删除此表
create table da_yyyymm(month char(6) PRIMARY KEY);   --建立表,,month(月份)为主关键字

declare
    i number;         --循环用
    j char(6);        --记录月份值
begin
    j:='200001';                         --设初始值
    for i in 1..600 loop                     --12*50=600个月
    insert into da_yyyymm values(j);               --insert记录
    j:=to_char(add_months(to_date(j,'yyyymm'),1),'yyyymm');   --月份值加1
    end loop;                          --循环结束
end;
/
commit;                               --提交,PL/SQL块不自动提


 

原创粉丝点击