oracle语录怎么查 oracle常用语句大全

Oracle的查询语句怎么写

1.create user username identified by password;//建用户名和密码oracle ,oracle

创新互联是一家集网站建设,新和企业网站建设,新和品牌网站建设,网站定制,新和网站建设报价,网络营销,网络优化,新和网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

2.grant connect,resource,dba to username;//授权 grant connect,resource,dba,sysdba to username;

3.connect username/password//进入。

4.select table_name,column_name from user_tab_columns where table_name='TABLE_NAME';//查询表中的表名,字段名等等。 最后的table_name要大写。

5. 如何执行脚本SQL文件? SQL@PATH/filename.sql;

7.查询用户下的所有表 select distinct table_name from user_tab_columns; ===仅显示一列表名。

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

select * from tablename where rownumn;--足矣。(--是注释用的标记)

9.查找用户下的所有表:select * from tab; --查询该用户下的所有表及视图(显示表名tname, 类型tabname和clusterid)

2、显示当前连接用户

SQL show user –不能用在sql窗口 只能用在command命令窗口。

3、查看系统拥有哪些用户

SQL select * from all_users;

4、新建用户并授权

SQL create user a identified by a;(默认建在SYSTEM表空间下)

SQL grant connect,resource to a;

5、连接到新用户

SQL conn a/a –或者是connect a/a

6、查询当前用户下所有对象

SQL select * from tab; --table或是view

7、建立第一个表

SQL create table a(a number);

8、查询表结构

SQL desc a

9、插入新记录

SQL insert into a values(1);

10、查询记录

SQL select * from a;

11、更改记录

SQL update a set a=2;

12、删除记录

SQL delete from a;

13、回滚

SQL roll;

SQL rollback;

14、提交

SQL commit;

select * from

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

where rank = 2;

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

select 'Welcome to visit'||chr(10)||'' from dual ; --‘||chr(10)||’作为换行符

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

select rownum COL from table; --主要就是oracle中引入了rownum

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

select tablespace_name from user_tables where table_name='TEST'; --table_name名称要大写。

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

select * from dba_segments where …;

55. 怎么可以快速做一个和原表一样的备份表?

create table new_table as (select * from old_table);

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

alter table aaa drop constraint aaa_key ;

alter table aaa add constraint aaa_key primary key(a1,b1) ;

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

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

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

61. 怎样查看ORACLE中有哪些程序在运行之中?

查看v$session表

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

select * from dba_tablespaces;

如何使用oracle数据库查询语句

-- 查询你 当前用户下,有哪些表

SELECT * FROM user_tables

-- 查询你 当前用户下, 可以访问哪些表 [也就是访问自己 和 其他用户的]

SELECT * FROM all_tables

-- 查询当前数据库所有的表, 需要你有 DBA 的权限

SELECT * FROM dba_tables

oracle怎么通过索引查询数据语句

oracle对于数据库中的表信息,存储在系统表中。查询已创建好的表索引,可通过相应的sql语句到相应的表中进行快捷的查询:\x0d\x0a1. 根据表名,查询一张表的索引\x0d\x0a\x0d\x0aselect * from user_indexes where table_name=upper('表名');\x0d\x0a\x0d\x0a2. 根据索引号,查询表索引字段\x0d\x0a\x0d\x0aselect * from user_ind_columns where index_name=('索引名');\x0d\x0a\x0d\x0a3.根据索引名,查询创建索引的语句\x0d\x0a\x0d\x0aselect dbms_metadata.get_ddl('INDEX','索引名', ['用户名']) from dual ; --['用户名']可省,默认为登录用户\x0d\x0a\x0d\x0aPS:dbms_metadata.get_ddl还可以得到建表语句,如:\x0d\x0a\x0d\x0aSELECT DBMS_METADATA.GET_DDL('TABLE','表名', ['用户名']) FROM DUAL ; //取单个表的建表语句,['用户名']可不输入,默认为登录用户\x0d\x0aSELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name) FROM USER_TABLES u; //取用户下所有表的建表语句\x0d\x0a\x0d\x0a当然,也可以用pl/sql developer工具来查看相关的表的各种信息。

如何查看oracle数据库中执行了哪些sql语句

一、通过PL/SQL Dev工具

1、直接File-New-Explain Plan Window,在窗口中执行sql可以查看计划结果。其中,Cost表示cpu的消耗,单位为n%,Cardinality表示执行的行数,等价Rows。

2、先执行 EXPLAIN PLAN FOR select * from tableA where paraA=1,再 select * from table(DBMS_XPLAN.DISPLAY)便可以看到oracle的执行计划了,看到的结果和1中的一样,所以使用工具的时候推荐使用1方法。

注意:PL/SQL Dev工具的Command window中不支持set autotrance on的命令。还有使用工具方法查看计划看到的信息不全,有些时候我们需要sqlplus的支持。

二、通过sqlplus

1.最简单的办法

Sql set autotrace on

Sql select * from dual;

执行完语句后,会显示explain plan 与 统计信息。

这个语句的优点就是它的缺点,这样在用该方法查看执行时间较长的sql语句时,需要等待该语句执行成功后,才返回执行计划,使优化的周期大大增长。如果不想执行语句而只是想得到执行计划可以采用:

Sql set autotrace traceonly

这样,就只会列出执行计划,而不会真正的执行语句,大大减少了优化时间。虽然也列出了统计信息,但是因为没有执行语句,所以该统计信息没有用处,如果执行该语句时遇到错误,解决方法为:

(1)在要分析的用户下:

Sqlplus @ ?

dbmsadminutlxplan.sql

(2) 用sys用户登陆

Sqlplus @ ?sqlplusadminplustrce.sql

Sqlplus grant plustrace to user_name;

- - user_name是上面所说的分析用户

 2.用explain plan命令

(1) sqlplus explain plan for select * from testdb.myuser

(2) sqlplus select * from table(dbms_xplan.display);

上面这2种方法只能为在本会话中正在运行的语句产生执行计划,即我们需要已经知道了哪条语句运行的效率很差,我们是有目的只对这条SQL语句去优化。其实,在很多情况下,我们只会听一个客户抱怨说现在系统运行很慢,而我们不知道是哪个SQL引起的。此时有许多现成的语句可以找出耗费资源比较多的语句,如:

SELECT ADDRESS, substr(SQL_TEXT,1,20) Text, buffer_gets, executions,

buffer_gets/executions AVG FROM v$sqlarea

WHERE executions0 AND buffer_gets 100000 ORDER BY 5;

ADDRESS TEXT BUFFER_GETS EXECUTIONS AVG

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

66D83D64 select t.name, (sel 421531 60104 7.01336017

66D9E8AC select t.schema, t.n 1141739 2732 417.913250

66B82BCC select s.synonym_nam 441261 6 73543.5

从而对找出的语句进行进一步优化。当然我们还可以为一个正在运行的会话中运行的所有SQL语句生成执行计划,这需要对该会话进行跟踪,产生trace文件,然后对该文件用tkprof程序格式化一下,这种得到执行计划的方式很有用,因为它包含其它额外信息,如SQL语句执行的每个阶段(如Parse、Execute、Fetch)分别耗费的各个资源情况(如CPU、DISK、elapsed等)。

3、启用SQL_TRACE跟踪所有后台进程活动:

全局参数设置: .OracleHome/admin/SID/pfile中指定: SQL_TRACE = true (10g)

当前session中设置:

SQL alter session set SQL_TRACE=true;

SQL select * from dual;

SQL alter session set SQL_TRACE=false;

对其他用户进行跟踪设置:

SQL select sid,serial#,username from v$session where username='XXX';

SID SERIAL# USERNAME

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

127 31923 A

128 54521 B

开启跟踪:SQL exec dbms_system.set_SQL_TRACE_in_session(127,31923,true);

关闭跟踪:SQL exec dbms_system.set_SQL_TRACE_in_session(127,31923,false);

然后使用oracle自带的tkprof命令行工具格式化跟踪文件。

4、使用10046事件进行查询:

10046事件级别:

Lv1 - 启用标准的SQL_TRACE功能,等价于SQL_TRACE

Lv4 - Level 1 + 绑定值(bind values)

Lv8 - Level 1 + 等待事件跟踪

Lv12 - Level 1 + Level 4 + Level 8

全局设定:

OracleHome/admin/SID/pfile中指定: EVENT="10046 trace name context forever,level 12"

当前session设定:

开启:SQL alter session set events '10046 trace name context forever, level 8';

关闭:SQL alter session set events '10046 trace name context off';

对其他用户进行设置:

SQL select sid,serial#,username from v$session where username='XXX';

SID SERIAL# USERNAME

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

127 31923 A

SQL exec dbms_system.set_ev(127,31923,10046,8,'A');

5、使用tkprof格式化跟踪文件: (根据下面SQL语句得到的文件都不存在该目录下,郁闷啊,懵懂啊...)

一般,一次跟踪可以分为以下几步:

1、界定需要跟踪的目标范围,并使用适当的命令启用所需跟踪。

2、经过一段时间后,停止跟踪。此时应该产生了一个跟踪结果文件。

3、找到跟踪文件,并对其进行格式化,然后阅读或分析。

--使用一下SQL找到当前session的跟踪文件:

SELECT d.value|| '/' ||lower(rtrim(i.instance, chr( 0 )))|| '_ora_' ||p.spid|| '.trc' trace_file_namefrom( select p.spid from v$mystat m,v$session s, v$process pwhere m.statistic# = 1 and s.sid = m.sid and p.addr = s.paddr) p,( select t.instance from v$thread t,v$parameter vwhere v.name = 'thread' and (v.value = 0 or t.thread# = to_number(v.value))) i,( select value from v$parameter where name = 'user_dump_dest' ) d;-- 其它用户的 session SELECT d.value|| '/' ||lower(rtrim(i.instance, chr( 0 )))|| '_ora_' ||p.spid|| '.trc' trace_file_name from ( select p.spid from v$session s, v$process p where s.sid= '27' and s. SERIAL#= '30' and p.addr = s.paddr) p, ( select t.instance from v$thread t,v$parameter v where v.name = 'thread' and (v.value = 0 or t.thread# = to_number(v.value))) i, ( select value from v$parameter where name = 'user_dump_dest' ) d;

--查找后使用tkprof命令,将TRACE文件格式为到D盘的explain_format.txt文件中

SQL $tkprof d:/oracle/admin/FZLGFM/udump/fzlgfm_ora_3468.trc d:/explain_format.txt

文件内容大致如下(看不太懂....懵懂啊.....天啊....神啊.....过几时就懂了/////////////)

TKPROF: Release 9.2.0.1.0 - Production on 星期二 4月 20 13:59:20 2010

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

Trace file: d:/oracle/admin/FZLGFM/udump/fzlgfm_ora_3468.trc

Sort options: default

********************************************************************************

count = number of times OCI procedure was executed

cpu = cpu time in seconds executing

elapsed = elapsed time in seconds executing

disk = number of physical reads of buffers from disk

query = number of buffers gotten for consistent read

current = number of buffers gotten in current mode (usually for update)

rows = number of rows processed by the fetch or execute call********************************************************************************

alter session set events '10046 trace name context forever, level 8'

call count cpu elapsed disk query current rows

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

Parse 0 0.00 0.00 0 0 0 0

Execute 1 0.00 0.00 0 0 0 0

Fetch 0 0.00 0.00 0 0 0 0

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

total 1 0.00 0.00 0 0 0 0

Misses in library cache during parse: 0

Misses in library cache during execute: 1

Optimizer goal: CHOOSE

Parsing user id: SYS

如何使用sql语句,查询oracle的表注释等信息?

使用sql语句,查询oracle的表注释等信息方法如下:

一、Oracle 下读取表/字段的备注信息,Oracle 通过COMMENT ON TABLE  /  COMMENT ON COLUMN 追加表/字段的备注。

COMMENT ON TABLE ,MR_DEPT,IS 。

COMMENT ON COLUMN ,MR_DEPTDEPT_ID,IS。

COMMENT ON COLUMN ,MR_DEPT"PARENT_ID,IS。

COMMENT ON COLUMN ,MR_DEPT"DEPT_NAME,IS 。

COMMENT ON COLUMN ,MR_DEPT"STATUS,IS 。

二、查询表的备注信息

SELECT。

TABLE_NAME。

TABLE_TYPE。

COMMENTS。

FROM。

USER_TAB_COMMENTS。

WHERE-TABLE_NAME -MR_DEPT。

三、查询字段的备注信息

TABLE_NAME。

COLUMN_NAME。

COMMENTS

FROM。

USER_COL_COMMENTS。

WHERE-TABLE_NAME - 'MR_DEPT。

怎样用oracle查建表语句

dbms_metadata.get_ddl('TABLE','表名','用户名')

不过这个函数需要权限(这是一个函数,函数怎么用它就怎么用,只是后面的表是虚表dual即可),相关数据字典视图的查询权限。

一般认为select any dictionary权限就可以,有时需要授权 select_catalog_role权限才行。

另外在plsql dev中也有能查询相关建表语句的选项,不过该软件更新比较频繁,现在具体怎么操作要自己仔细找找才可以。


分享标题:oracle语录怎么查 oracle常用语句大全
本文网址:http://scyanting.com/article/hhohgi.html