问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

oracle数据库初学者的问题

发布网友 发布时间:2022-04-30 02:56

我来回答

4个回答

懂视网 时间:2022-04-30 07:17

100问

1. Oracle安装完成后的初始口令?  

   internal/oracle  

  sys/change_on_install  

  system/manager  

  scott/tiger  

  sysman/oem_temp  

2. oracle中的裸设备指的是什么?  

裸设备就是绕过文件系统直接访问的储存空间。 

3. 请问如何分辨某个用户是从哪台机器登陆ORACLE的?  

SELECT machine , terminal FROM V$SESSION; 

4. 用什么语句查询字段呢?  

desc table_name 可以查询表的结构  

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

select * from all_tables where table_name like ‘%‘  

select * from all_tab_columns where table_name=‘??‘  

5. 怎样得到触发器、过程、函数的创建脚本?  

desc user_source  

user_triggers  

6. 怎样计算一个表占用的空间的大小?  

select owner,table_name,  

NUM_ROWS,  

BLOCKS*AAA/1024/1024 "Size M",  

EMPTY_BLOCKS,  

LAST_ANALYZED  

from dba_tables  

where table_name=‘XXX‘; 

Here: AAA is the value of db_block_size ;  

XXX is the table name you want to check  

7. 如何查看最大会话数?  

SELECT * FROM V$PARAMETER WHERE NAME LIKE ‘proc%‘;  

SQL>  

SQL> show parameter processes  

NAME TYPE VALUE  

------------------------------------ ------- ------------------------------  

aq_tm_processes integer 1  

db_writer_processes integer 1  

job_queue_processes integer 4  

log_archive_max_processes integer 1  

processes integer 200  

这里为200个用户。  

select * from v$license;  

其中sessions_highwater纪录曾经到达的最大会话数。  

8. 如何查看系统被锁的事务时间?  

select * from v$locked_object ;  

9. 如何以archivelog的方式运行oracle?  

init.ora  

log_archive_start = true  

RESTART DATABASE  

10. 怎么获取有哪些用户在使用数据库?  

select username from v$session;  

11. 数据表中的字段最大数是多少?  

表或视图中的最大列数为 1000。  

12. 怎样查得数据库的SID ?  

select name from v$database;  

也可以直接查看 init.ora文件。  

13. 如何在Oracle服务器上通过SQLPLUS查看本机IP地址 ?  

select sys_context(‘userenv‘,‘ip_address‘) from dual;  

如果是登陆本机数据库,只能返回127.0.0.1。  

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

select remark from oms_flowrec where trim(‘ ‘ from remark) is not null ;  

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

UPDATE AAA SET BNS_SNM=(SELECT BNS_SNM FROM BBB 

WHERE AAA.DPT_NO=BBB.DPT_NO) W  

HERE BBB.DPT_NO IS NOT NULL;  

16. 何查询每个用户的权限?  

SELECT * FROM DBA_SYS_PRIVS;  

17. 如何将表移动表空间?  

ALTER TABLE TABLE_NAME MOVE TABLESPACE_NAME;  

18. 如何将索引移动表空间?  

ALTER INDEX INDEX_NAME REBUILD TABLESPACE TABLESPACE_NAME;  

19. 查询锁的状况的对象有?  

V$LOCK, V$LOCKED_OBJECT, V$SESSION, V$SQLARE

A, V$PROCESS ;  

20. 如何解锁?  

ALTER SYSTEM KILL SESSION ‘SID,SERIR#’;  

21. SQLPLUS下如何修改编辑器?  

DEFINE _EDITOR="<编辑器的完整路经>" -- 必须加上双引号  

来定义新的编辑器,也可以把这个写在$ORACLE_HOME/sqlplus/admin/glogin.sql里面使它永久有效。  

22. ORACLE产生随机函数是?  

DBMS_RANDOM.RANDOM  

23. 查询当前用户对像?  

SELECT * FROM USER_OBJECTS;  

SELECT * FROM DBA_SEGMENTS;  

24. 如何获取错误信息?  

SELECT * FROM USER_ERRORS;  

25. 如何获取链接状况?  

SELECT * FROM DBA_DB_LINKS;  

26. 查看数据库字符状况?  

SELECT * FROM NLS_DATABASE_PARAMETERS;  

SELECT * FROM V$NLS_PARAMETERS;  

27.. 如何给表、列加注释?  

SQL>comment on table 表 is ‘表注释‘;  

注释已创建。  

SQL>comment on column 表.列 is ‘列注释‘;  

注释已创建。  

SQL> select * from user_tab_comments where comments is not null;  

28. 如何查看各个表空间占用磁盘情况?  

SQL> col tablespace format a20  

SQL> select  

b.file_id 文件ID号,  

b.tablespace_name 表空间名,  

b.bytes 字节数,  

(b.bytes-sum(nvl(a.bytes,0))) 已使用,  

sum(nvl(a.bytes,0)) 剩余空间,  

sum(nvl(a.bytes,0))/(b.bytes)*100 剩余百分比  

from dba_free_space a,dba_data_files b  

where a.file_id=b.file_id  

group by b.tablespace_name,b.file_id,b.bytes  

order by b.file_id  

29. 如何才能得知系统当前的SCN号 ?  

select max(ktuxescnw * power(2, 32) + ktuxescnb) from x$ktuxe;  

30. 如何在字符串里加回车?  

select ‘Welcome to visit‘||chr(10)||‘www.CSDN.NET‘ from dual ;  

31. 如何改变WIN中SQL*Plus启动选项?  

SQL*PLUS自身的选项设置,可以在$ORACLE_HOME/sqlplus/admin/glogin.sql中设置。  

32. 怎样修改oracel数据库的默认日期?  

alter session set nls_date_format=‘yyyymmddhh24miss‘;  

OR  

可以在init.ora中加上一行  

nls_date_format=‘yyyymmddhh24miss‘  

33. 如何使select语句使查询结果自动生成序号? 

select rownum,COL from table; 

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

select tablespace_name from user_tables where table_name=‘TEST‘; 

select * from user_tables中有个字段TABLESPACE_NAME,(oracle); 

select * from dba_segments where …; 

35. 怎么在sqlplus下修改procedure? 

select line,trim(text) t from user_source where name =’A’ order by line; 

36.. 请问如何修改一张表的主键? 

alter table aaa 

drop constraint aaa_key ; 

alter table aaa 

add constraint aaa_key primary key(a1,b1) ; 

37. 改变数据文件的大小? 

用 ALTER DATABASE .... DATAFILE .... ; 

手工改变数据文件的大小,对于原来的 数据文件有没有损害。 

[NextPage]   

38. 怎么可以看到数据库有多少个tablespace? 

select * from dba_tablespaces; 

39. 如何修改oracle数据库的用户连接数? 

修改initSID.ora,将process加大,重启数据库。 

40. 怎样把“&”放入一条记录中? 

insert into a values (translate (‘at{&}t‘,‘at{}‘,‘at‘)); 

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

SQL>conn sys/change_on_install 

SQL>select * from V_$PWFILE_USERS; 

42. 如何单独备份一个或多个表? 

exp 用户/密码 tables=(表1,…,表2) 

43. 如何单独备份一个或多个用户? 

exp system/manager owner=(用户1,用户2,…,用户n) file=导出文件 

44. 如何对CLOB字段进行全文检索? 

SELECT * FROM A WHERE dbms_lob.instr(a.a,‘K‘,1,1)>0; 

45. 如何显示当前连接用户? 

SHOW USER 

46. 如何查看数据文件放置的路径 ? 

col file_name format a50 

SQL> select tablespace_name,file_id,bytes/1024/1024,file_name from dba_data_fi 

les order by file_id; 

47. 如何查看现有回滚段及其状态 ? 

SQL> col segment format a30 

SQL> SELECT SEGMENT_NAME,OWNER,TABLESPACE_NAME,SEGMENT_ID,FILE_ID,STATUS FROM 

DBA_ROLLBACK_SEGS 

48. 如何改变一个字段初始定义的Check范围? 

SQL> alter table xxx drop constraint constraint_name; 

之后再创建新约束: 

SQL> alter table xxx add constraint constraint_name check(); 

49. Oracle常用系统文件有哪些? 

通过以下视图显示这些文件信息:

v$database,v$datafile,v$logfile v$controlfile v$ parameter;   

50. 什么是内连接INNER JOIN? 

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

51. 如何外连接? 

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

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

52. 如何执行脚本SQL文件? 

SQL>@$PATH/filename.sql; 

53. 如何快速清空一个大表? 

SQL>truncate table table_name; 

54. 如何查有多少个数据库实例? 

SQL>SELECT * FROM V$INSTANCE; 

55. 如何查询数据库有多少表? 

SQL>select * from all_tables; 

56. 如何测试SQL语句执行所用的时间? 

SQL>set timing on ; 

SQL>select * from tablename; 

57. CHR()的反函数是? 

ASCII() 

SELECT CHAR(65) FROM DUAL; 

SELECT ASCII(‘A‘) FROM DUAL; 

58. 如何实现字符串的连接 

SELECT CONCAT(COL1,COL2) FROM TABLE ; 

SELECT COL1||COL2 FROM TABLE ; 

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

SQL>SPOOL C:ABCD.TXT; 

SQL>select * from table; 

SQL >spool off;  

60. 怎样估算SQL执行的I/O数? 

SQL>SET AUTOTRACE ON ; 

SQL>SELECT * FROM TABLE; 

OR 

SQL>SELECT * FROM v$filestat ; 

可以查看IO数。 

61. 如何在sqlplus下改变字段大小? 

alter table table_name modify (field_name varchar2(100)); 

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

62. 如何查询某天的数据? 

select * from table_name where trunc(日期字段)=to_date(‘2003-05-02‘,‘yyyy-mm- 

dd‘); 

63. sql 语句如何插入全年日期? 

create table BSYEAR (d date); 

insert into BSYEAR 

select to_date(‘20030101‘,‘yyyymmdd‘)+rownum-1 

from all_objects 

where rownum <= to_char(to_date(‘20031231‘,‘yyyymmdd‘),‘ddd‘); 

65. 如果修改表名? 

alter table old_table_name rename to new_table_name; 

66. 如何取得命令的返回状态值? 

sqlcode=0 

67. 如何知道用户拥有的权限? 

SELECT * FROM dba_sys_privs ; 

68. 如何搜索出前N条记录?

Select * FROM empLOYEE Where ROWNUM < n

orDER BY empno;

69. 如何知道机器上的Oracle支持多少并发用户数?

SQL>conn internal ;

SQL>show parameter processes ;

70. 如何统计两个表的记录总数?

select (select count(id) from aa)+(select count(id) from bb) 总数 from dual;

71. 怎样用Sql语句实现查找一列中第N大值?

select * from

(select t.*,dense_rank() over (order by sal) rank from employee)

where rank = N;

71. 如何在给现有的日期加上2年?(

select add_months(sysdate,24) from dual;

72. 怎样扩大REDO LOG的大小?

建立一个临时的redolog组,然后切换日志,删除以前的日志,建立新的日志。

73. 如何不同用户间数据导入?

IMP SYSTEM/MANAGER FILE=AA.DMP 

FROMUSER=USER_OLD TOUSER=USER_NEW ROWS=Y INDEXES=Y ;

74. 如何找数据库表的主键字段的名称?

SQL>Select * FROM user_constraints 

Where CONSTRAINT_TYPE=‘P‘ and table_name=‘TABLE_NAME‘;

75. 两个结果集互加的函数?

SQL>Select * FROM BSEMPMS_OLD INTERSECT Select * FROM BSEMPMS_NEW;

SQL>Select * FROM BSEMPMS_OLD UNION Select * FROM BSEMPMS_NEW

SQL>Select * FROM BSEMPMS_OLD UNION ALL Select * FROM BSEMPMS_NEW;

76. 两个结果集互减的函数?

SQL>Select * FROM BSEMPMS_OLD MINUS Select * FROM BSEMPMS_NEW;

77.  将N秒转换为时分秒格式?

set serverout on

declare

N number := 1000000;

ret varchar2(100);

begin

ret := trunc(n/3600) || ‘小时‘ || to_char(to_date(mod(n,3600),‘sssss‘),‘fmmi"分 "ss"秒"‘) ;

dbms_output.put_line(ret);

end;

78 如何查询做比较大的排序的进程?

Select b.tablespace, b.segfile#, b.segblk#, b.blocks, a.sid, a.serial#, a.username, a.osuser, 

a.status

FROM v$session a,v$sort_usage b

Where a.saddr = b.session_addr

orDER BY b.tablespace, b.segfile#, b.segblk#, b.blocks ;

79. 如何查询做比较大的排序的进程的SQL语句?

select /*+ orDERED */ sql_text from v$sqltext a

where a.hash_value = (

select sql_hash_value from v$session b

where b.sid = &sid and b.serial# = &serial)

order by piece asc ;

80. 如何查找重复记录?

Select * FROM TABLE_NAME

Where ROWID!=(Select MAX(ROWID) FROM TABLE_NAME D

Where TABLE_NAME.COL1=D.COL1 AND TABLE_NAME.COL2=D.COL2);

81. 如何删除重复记录?

Delete FROM TABLE_NAME

Where ROWID!=(Select MAX(ROWID) FROM TABLE_NAME D

Where TABLE_NAME.COL1=D.COL1 AND TABLE_NAME.COL2=D.COL2);

82. 如何快速编译所有视图?

SQL >SPOOL VIEW1.SQL

SQL >Select ‘Alter VIEW ‘||TNAME||’

COMPILE;’ FROM TAB;

SQL >SPOOL OFF

然后执行VIEW1.SQL即可。

SQL >@VIEW1.SQL;

83. 如何加密ORACLE的存储过程?

下列存储过程内容放在AA.SQL文件中

create or replace procedure testCCB(i in number) as

begin

dbms_output.put_line(‘输入参数是‘||to_char(i));

end;

SQL>wrap iname=a.sql;

PL/SQL Wrapper: Release 8.1.7.0.0 - Production on Tue Nov 27 22:26:48 2001

Copyright (c) oracle Corporation 1993, 2000. All Rights Reserved。

Processing AA.sql to AA.plb

运行AA.plb

SQL> @AA.plb ;

84. 如何监控事例的等待?

select event,sum(decode(wait_Time,0,0,1)) "Prev",

sum(decode(wait_Time,0,1,0)) "Curr",count(*) "Tot"

from v$session_Wait

group by event order by 4;

85. 如何回滚段的争用情况?

select name, waits, gets, waits/gets "Ratio"

from v$rollstat C, v$rollname D

where C.usn = D.usn;

86. 如何监控表空间的 I/O 比例?

select B.tablespace_name name, B.file_name "file", A.phyrds pyr, 

A.phyblkrd pbr, A.phywrts pyw, A.phyblkwrt pbw

from v$filestat A, dba_data_files B

where A.file# = B.file_id

order by B.tablespace_name;

87. 如何监控文件系统的 I/O 比例?

select substr(C.file#,1,2) "#", substr(C.name,1,30) "Name", C.status, C.bytes, D.phyrds, 

D.phywrts

from v$datafile C, v$filestat D

where C.file# = D.file#;

88. 如何在某个用户下找所有的索引?

select user_indexes.table_name, user_indexes.index_name,uniqueness, column_name

from user_ind_columns, user_indexes

where user_ind_columns.index_name = user_indexes.index_name

and user_ind_columns.table_name = user_indexes.table_name

order by user_indexes.table_type, user_indexes.table_name,

user_indexes.index_name, column_position;

89. 如何监控 SGA 的命中率?

select a.value + b.value "logical_reads", c.value "phys_reads",

round(100 * ((a.value+b.value)-c.value) / (a.value+b.value)) "BUFFER HIT RATIO"

from v$sysstat a, v$sysstat b, v$sysstat c

where a.statistic# = 38 and b.statistic# = 39

and c.statistic# = 40;

90. 如何监控 SGA 中字典缓冲区的命中率?

select parameter, gets,Getmisses , getmisses/(gets+getmisses)*100 "miss ratio",

(1-(sum(getmisses)/ (sum(gets)+sum(getmisses))))*100 "Hit ratio"

from v$rowcache

where gets+getmisses <>0

group by parameter, gets, getmisses;

91. 如何监控 SGA 中共享缓存区的命中率,应该小于1% ?

select sum(pins) "Total Pins", sum(reloads) "Total Reloads",

sum(reloads)/sum(pins) *100 libcache

from v$librarycache;

select sum(pinhits-reloads)/sum(pins) "hit radio",sum(reloads)/sum(pins) "reload percent"

from v$librarycache;

92. 如何显示所有数据库对象的类别和大小?

select count(name) num_instances ,type ,sum(source_size) source_size ,

sum(parsed_size) parsed_size ,sum(code_size) code_size ,sum(error_size) error_size,

sum(source_size) +sum(parsed_size) +sum(code_size) +sum(error_size) size_required

from dba_object_size

group by type order by 2;

93. 监控 SGA 中重做日志缓存区的命中率,应该小于1%

Select name, gets, misses, immediate_gets, immediate_misses,

Decode(gets,0,0,misses/gets*100) ratio1,

Decode(immediate_gets+immediate_misses,0,0,

immediate_misses/(immediate_gets+immediate_misses)*100) ratio2

FROM v$latch Where name IN (‘redo allocation‘, ‘redo copy‘);

94. 监控内存和硬盘的排序比率,最好使它小于 .10,增加 sort_area_size

Select name, value FROM v$sysstat Where name IN (‘sorts (memory)‘, ‘sorts(disk)‘);

156. 如何监控当前数据库谁在运行什么SQL语句?

Select osuser, username, sql_text from v$session a, v$sqltext b

where a.sql_address =b.address order by address, piece;

95. 如何监控字典缓冲区?

Select (SUM(PINS - RELOADS)) / SUM(PINS) "LIB CACHE" FROM V$LIBRARYCACHE;

Select (SUM(GETS - GETMISSES - USAGE - FIXED)) / SUM(GETS) "ROW CACHE" FROM V$ROWCACHE;

Select SUM(PINS) "EXECUTIONS", SUM(RELOADS) "CACHE MISSES WHILE EXECUTING" FROM V$LIBRARYCACHE;

后者除以前者,此比率小于1%,接近0%为好。

Select SUM(GETS) "DICTIONARY GETS",SUM(GETMISSES) "DICTIONARY CACHE GET MISSES"

FROM V$ROWCACHE

96. 如何知道当前用户的ID号?

SQL>SHOW USER;

或 SQL>select user from dual;

97. 如何查看碎片程度高的表?

Select segment_name table_name , COUNT(*) extents

FROM dba_segments Where owner NOT IN (‘SYS‘, ‘SYSTEM‘) GROUP BY segment_name

HAVING COUNT(*) = (Select MAX( COUNT(*) ) FROM dba_segments GROUP BY segment_name);

98. 如何知道表在表空间中的存储情况?

select segment_name,sum(bytes),count(*) ext_quan from dba_extents where

tablespace_name=‘&tablespace_name‘ and segment_type=‘TABLE‘ group by tablespace_name,segment_name ;

99. 如何知道索引在表空间中的存储情况?

select segment_name,count(*) from dba_extents 

where segment_type=‘INDEX‘ and owner=‘&owner‘

group by segment_name;

100. 如何获取时间点的秒的写法?

Select TO_CHAR(SYSDATE,‘SS‘) FROM DUAL;

版权声明:欢迎转载,希望在你转载的同时,添加

热心网友 时间:2022-04-30 04:25

想学Oracle,首先装上Oracle,这个是必要的,不管你怎么看书,不动手都是没用的。
其次,先学好SQL语句,这个随便找本书就能看到基本的语法,上手很快。看懂它的基本用法后开始大量的练习,直到你看到数据库问题就能马上知道这个语句是怎么写的了。这个阶段还可以了解一下在Oracle下编程和SQLServer下编程的区别。
然后是了解数据库设计,比如说范式,如果有兴趣,可以去考考数据库设计师,这个不仅对你的数据库方面有用,而且对于你以后能力的提升有极大的好处,以考促学,以学促考,相辅相成。
最后才是了解Oracle的管理,比如说Oracle系统构成,文件管理,备份恢复,安全性之类的内容。
最后一点也可以不用了解。

有个人知道肯定会好点,这个想都不用想~~

热心网友 时间:2022-04-30 05:43

最好有点开发基础,不过上来就想做oracle dba的话还是很难的。
比较难上手,如果师傅带的话,会非常好。

如果想学,最少也要1年以上。

先买本基础的书来好好看吧。然后看看官方文档。

热心网友 时间:2022-04-30 07:18

有C语言的基础,可以了,你要学oracle,先从sql语言学起,再学起pl/sql编程,然后再去看看oracle体系结构
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 我的电脑插上U盘就自动弹出包含照片的文件夹,怎么不让它弹出啊?? AS3中,保存图片时,怎样才能不弹出对话框就保存到指定文件夹? 怎样在电脑上保存图片而不显示在桌面 1KB=好多字节? 1MB=好多KB? 一个字节中有好个多二进制位? 四个字节应由多少个二进制位表示? 字母在二进制文件里面怎么表示? 谁跟我说一下字、位、字节,这三个是怎么转换的啊?单位是什么啊? 十六进制数2B.C的二进制数为 十六进制2b转八进制数 二进制怎么也有字母 1B=8bit=8个二进位,2B=16bit=16个二进位,那1024B呢?等于多少个二进位啊? 2B为什么表示16位二进制位 小米随身wifi 链接无网络访问怎么办? 用了小米随身wifi后,电脑打不开网页是怎么回事? 无网络小米随身wifi怎么解决 windows10 c盘刚清理又满了 请问小米随身wifi在电脑没网的情况下发射出去的信号可以上网吗? 小米wifi插上电脑后 电脑也没有了网络 小米随身wifi连上手机能用但是电脑不能上网,宽带是校园网 win10c盘清理软件哪个好 你好 我是win10系统 链接win7系统共享打印机 无权访问是怎么回事啊? Win10(64位)无法访问Win7(64位)加密的共享文件夹,请高手支招。 怎样查询自己的优抚信息? 退役军人优待证如何查办理结果 退役军人优待证能不能查询申请进度 深圳市优抚对象优待证如何查询真假 退役军人优待证会去派出所查吗 山西省怎么查优待证进度 如何在手机上查询办理退役军人优待证时填报的资料? 优待证怎么查询 优待证申请网站开始了吗 残疾军人证编号怎么查询? 新版残疾军人优抚证啥样 军人的残疾证怎么查询? 退伍军人优待证在哪里领? 残疾军人证编号查询 军人残疾证查询系统 微信有个锁的代表是不是有两个微信? 手机微信后台怎么关不了是怎么回事?还有就是那后台那微信图标上面有一个锁的标志是怎么回事啊? 现在有开端电视剧百度云吗?