ORACLE手册集锦

来源:互联网 发布:海淘攻略 知乎 编辑:程序博客网 时间:2024/05/22 10:13

南京广安科技有限公司

ORACLE手册集锦

Oracle常用命令

 

谭飞

2011/8/2

 

 

此手册用于学习所用,在oracle11g下测试通过

 


 

密码忘了怎么办?进入任意一个帐号 执行SQL 语句:alter user 用户名 identified by 密码
一、常用命令

1、   获取当前数据库系统时间  

select sysdate fromdual;

 

2、   如何在字符串里加回车?  

select 'Welcome tovisit '||chr(10)||'35free.net/tanfei' from dual ;

 

3、   怎样修改oracel数据库的默认日期? 

alter session setnls_date_format='yyyymmddhh24miss';  

也可以在init.ora中加上一行 nls_date_format='yyyymmddhh24miss'

 

4、   如何知道数据裤中某个表所在的tablespace? 

selecttablespace_name from user_tables where table_name='TEST';

 

5、   请问如何修改一张表的主键?

alter table aaa

drop constraintaaa_key ;

alter table aaa

add constraintaaa_key primary key(a1,b1) ;

 

6、   怎么可以看到数据库有多少个tablespace?

select * fromdba_tablespaces;

 

7、   怎样把“&”放入一条记录中?

insert into avalues (translate ('at{&}t','at{}','at'));

 

8、   怎样查看哪些用户拥有SYSDBA、SYSOPER权限?

SQL>conn sys/change_on_install

SQL>select *from V_$PWFILE_USERS;

 

9、   如何显示当前连接用户?

SHOW USER;

 

10、如何查看数据文件放置的路径 ?

col file_name format a50

SQL> selecttablespace_name,file_id,bytes/1024/1024,file_name from dba_data_files order byfile_id;

 

11、如何查看现有回滚段及其状态 ?

SQL> col segment format a30

SQL>SEGMENT_NAME,OWNER,TABLESPACE_NAME,SEGMENT_ID,FILE_ID,STATUSFROM  DBA_ROLLBACK_SEGS

 

12、内连接INNER JOIN?

Select a.* frombsempms a,bsdptms b where a.dpt_no=b.dpt_no;

 

13、如何外连接?

Select a.* from bsempms a,bsdptms b where a.dpt_no=b.dpt_no(+);

Select a.* frombsempms a,bsdptms b wherea.dpt_no(+)=b.dpt_no;

 

14、如何执行脚本SQL文件?

SQL>@$PATH/filename.sql;

 

15、如何快速清空一个大表?

SQL>truncatetable table_name;

 

16、如何查有多少个数据库实例?

SQL>SELECT *FROM V$INSTANCE;

 

17、如何查询数据库有多少表?

SQL>select *from all_tables;

 

18、如何测试SQL语句执行所用的时间?

SQL>set timing on ;

SQL>select *from tablename;

 

19、CHR()的反函数是?

ASCII()

SELECT CHR(65) FROM DUAL;

SELECT ASCII('A')FROM DUAL;

 

20、字符串的连接

SELECT CONCAT(COL1,COL2) FROM TABLE ;

或者

SELECT COL1||COL2FROM TABLE ;

 

21、怎么把select出来的结果导到一个文本文件中?

SQL>SPOOL C:\ABCD.TXT;

SQL>select * from table;

SQL >spool off;

 

22、如何在sqlplus下改变字段大小?

alter tabletable_name modify (field_name varchar2(100));

改大行,改小不行(除非都是空的)。

 

23、如何查询某天的数据?

select * fromtable_name where trunc(日期字段)=to_date('2003-05-02','yyyy-mm- dd');

 

24、sql 语句如何插入全年日期?

create table BSYEAR (d date);

insert into BSYEAR

selectto_date('20030101','yyyymmdd')+rownum-1 from all_objects where rownum <=to_char(to_date('20031231','yyyymmdd'),'ddd');

 

25、如果修改表名?

alter tableold_table_name rename to new_table_name;

 

26、如何知道用户拥有的权限?

SELECT * FROMdba_sys_privs ;

 

27、oracle如何区分 64-bit/32bit 版本???

$ sqlplus '/ ASSYSDBA'

 

28、用什么语句查询字段呢?

desc table_name 可以查询表的结构

select field_name,... from ... 可以查询字段的值

select * from all_tables where table_name like '%'

select * fromall_tab_columns where table_name='?'

 

29、如何查看最大会话数?

SELECT * FROMV$PARAMETER WHERE NAME LIKE 'proc%';

 

30、怎么获取有哪些用户在使用数据库?

select usernamefrom v$session;

 

31、在ORACLE TABLE中如何抓取MEMO类型栏位为空的资料记录?

select remark fromoms_flowrec where trim(' ' from remark) is not null ;

 

32、如何用BBB表的资料去更新AAA表的资料(有关联的字段)?

UPDATE AAA SETBNS_SNM=(SELECT BNS_SNM FROM BBB WHERE AAA.DPT_NO=BBB.DPT_NO) WHERE BBB.DPT_NOIS NOT NULL;

 

33、如何将表移动表空间?

ALTER TABLETABLE_NAME MOVE TABLESPACE_NAME;

 

34、如何将索引移动表空间?

ALTER INDEXINDEX_NAME REBUILD TABLESPACE TABLESPACE_NAME;

 

35、ORACLE产生随机函数是?

SELECT DBMS_RANDOM.RANDOM FROM DUAL;

 

36、查询当前用户对像?

SELECT * FROM USER_OBJECTS;

或者

SELECT * FROMDBA_SEGMENTS;

 

37、如何获取错误信息?

SELECT * FROMUSER_ERRORS;

 

 

 

二、常用函数

1.        ASCII(n) 返回字符串的ASCII码 例如:SELECT ASCII(‘A’) FROM DUAL;

2.        CHR(n) 返回对应的ASCII码得字符(n为数字类型) 例如:SELECT CHR(64) FROM DUAL;

3.        CONCAT(n,m) 连接n和m两字符串,作用和”||”一样 例如SELECT CONCAT(‘A’,’B’) FROM DUAL;

4.        INITCAP(n) 返回首字符大写的单词字符串。例如 SELECT INITCAP(‘my word’) FROM DUAL;

5.        INSTR(CHAR1,CHAR2,[n[,m]]) 返回查找到字符的位置 例如:SELECT INSTR(‘ABCDSDS’,’D’,-1,1) FROM DUAL;    (备注:CHAR1表示被查找的字符串,CHAR2表示查找的字符串,n为负数是从后开始查找,为正数就是从n开始查找;m表示出现的次数)

6.        LENGTH(N) 返回字符串的长度,如果为Null,则返回为空 例如: SELECT LENGTH(‘ABCD’) FROM DUAL;

7.        LOWER(N) 返回将N转换为小写

8.        LPAD(CHAR1, N[,M]) 返回长度为N的字符串char1,不足用M来填充,M默认为空格 例如: SELECT LPAD(‘SDFSSD’, 4, ‘xh’) FROM DUAL;

原创粉丝点击