当前位置:首页 > 日记 > 正文

45个非常有用的Oracle查询语句

45个非常有用的Oracle查询语句
日期/时间相关查询

1。得到当前月的第一天

运行此命令可以快速返回到当前月的第一天。你可以使用任何日期值代替SYSDATE指定日期的查询。

复制代码代码如下所示:
选择trunc(SYSDATE,'month ')的第一天,本月
从双;
2。得到当前月的最后一天

这个查询是类似上面的声明,并充分照顾闰年,所以当有一个29号在二月,它将返回到29 / 2.你能够使用任何日期值代替SYSDATE指定日期的查询。

复制代码代码如下所示:
选择trunc(last_day(SYSDATE)本月的最后一天)
从双;
三.获得本年度第一天
这一年的第一天是1月1日,这可以使用查询存储过程中,需要对目前的一年的第一天做一些计算。你可以使用任何日期值代替SYSDATE指定日期的查询。

复制代码代码如下所示:
选择trunc(SYSDATE,'year ')年的第一天,双;
4。得到本年度的最后一天

类似上面的查询语句,您可以使用任何日期值代替SYSDATE指定日期的查询。

复制代码如下:选择add_months(trunc(SYSDATE,'year '),12)1年的最后一天双

5。获取当前月份的天数

这句话是非常有用的,可以计算在当月的天数。你可以使用任何日期值代替SYSDATE指定日期的查询。

复制代码代码如下所示:
选择演员(to_char(last_day(SYSDATE),'dd)为int)number_of_days双;
6。获取当前月份的剩余天数
下面的语句是用来计算当月剩下的日子。你可以使用任何日期值代替SYSDATE指定日期的查询。

复制代码代码如下所示:
选择sysdate,
last_day(SYSDATE)去年
last_day(SYSDATE)- SYSDATE天左
从双;
7。获取两个日期之间的天数
使用这个语句可以得到两个不同日期的天数来检查自己。

复制代码代码如下所示:
选择圆((months_between('01-feb-2014 ','01-mar-2012 ')* 30),0)num_of_days双;

选择trunc(SYSDATE)- trunc(e.hire_date)员工;
如果您需要查询特定日期的天数,可以使用第二个查询语句。

8。显示当前一年结束到上个月的开始和结束的日期。

这是一个非常聪明的查询,用于显示本年开始日期和月底日期。你可以用这个来做计算若干种。你可以使用任何日期值代替SYSDATE指定日期的查询。

复制代码代码如下所示:
选择add_months(trunc(SYSDATE,'month),我start_date),
trunc(last_day(add_months(SYSDATE,我end_date)))
从(XMLTable
我在0美元以XS:int(D)返回的我
通过(xmlelement
D,
(地板
(MONTHS_BETWEEN
add_months(trunc(SYSDATE,'year)- 1, 12)。
系统日期))))
列i整数路径);
9。让过去的秒数(从00:00)直到现在。

复制代码如下:选择(SYSDATE - TRUNC(SYSDATE))* 24 * 60 * 60 num_of_sec_since_morning双;

10。今天把剩余的秒(直到23:59:59结束)

复制代码如下:选择(trunc(SYSDATE + 1)- SYSDATE)* 24 * 60 * 60 num_of_sec_left双;

数据字典查询

11。检查当前数据库模式中是否有指定的表。

这是一个简单的查询,用于检查当前要创建表的数据库,允许您运行此脚本来创建一个表,还可以检查当前用户是否已经创建了指定的表(根据运行此查询在什么情况下查询)。

复制代码代码如下所示:
选择table_name
从user_tables
在table_name = 'table_name;
12。检查当前表中是否有指定的列。

这是一个简单的查询语句,用于检查表中是否有指定的列。当您尝试使用变更表将新列添加到表中时,它非常有用。它会告诉你是否已经有了这个列。

复制代码代码如下所示:
选择column_name发现
从user_tab_cols
在table_name = 'table_name'and column_name = 'column_name;
13。显示表的结构

这个查询语句显示任何表的DDL状态信息。请注意,我们提出桌子作为第一消息。这个查询也可以用来获取任何数据库对象的DDL状态信息。例如,你只需要替换第一个参数视图,第二可以被改变的视图的名称,你可以查询视图的DDL信息。

复制代码代码如下所示:
选择dbms_metadata.get_ddl(}},'table_name ','user_name)从双;
14。获取当前模式
这是另一个查询,可以获得当前模式的名称。

复制代码代码如下所示:
选择sys_context('userenv ','current_schema)从双;
15。修改当前模式
这是另一个可以修改当前模式的查询语句。这是非常有用的,当你想要你的脚本运行在指定的用户,这是一个非常安全的方式。

复制代码代码如下所示:
改变会话设置current_schema = new_schema;
数据库管理查询

16。数据库版本信息

返回Oracle数据库版本

复制代码代码如下所示:
从V $版本中选择*;
17。数据库的默认信息

返回一些系统默认信息

复制代码代码如下所示:
选择用户名,
简介,
default_tablespace,
temporary_tablespace
从dba_users;
18。数据库字符设置信息
显示数据库的字符设置信息。

复制代码代码如下所示:
SELECT * FROM nls_database_parameters;
19。获取Oracle版本

复制代码代码如下所示:
选择值
从V system_parameter美元
name = 'compatible;
20。存储案例和案例数据,但索引不区分大小写。

有时您可能希望查询数据库中的独立数据,可能会使用大写(..)=上(..)用于不区分大小写的查询,因此我们希望使索引不区分大小写,不占用这么多空间,这个语句可以解决您的需要。

复制代码代码如下所示:
表(col1 VARCHAR2(10));
创建索引IDX1
在标签(上(2));
分析表;
21。调整不添加数据文件的表空间。

另一个DDL查询调整表空间的大小

复制代码代码如下所示:
使数据文件/ / / / star02d oradata startst dbf'resize 2000m;
22。自动查表空间扩展开关

查询是否在给定的表空间中打开自动扩展开关。

复制代码代码如下所示:
选择substr(file_name,1, 50),autoextensible从dba_data_files;
(或)
选择tablespace_name,autoextensible从dba_data_files;
23。在表空间中添加数据文件

向表空间添加数据文件

复制代码代码如下所示:
改变表空间添加数据的 /工作/ oradata / / startst DBF的立。
大小1000m自动关闭;
24。增加数据文件的大小

增加指定表空间的大小。

复制代码代码如下所示:
使数据文件 / / / test_data_01 U01 APP。dbf'resize 2g;
25。查询数据库的实际大小

给出一个基于GB的数据库的实际大小。

复制代码代码如下所示:
选择的总和(字节)/ 1024 / 1024 / 1024 GB的dba_data_files;
26。查询数据库中数据的大小或数据库使用的详细信息。
给出数据库中数据所占用的空间大小。

复制代码代码如下所示:
选择的总和(字节)/ 1024 / 1024 / 1024 GB的dba_segments;
27。查询模式或用户的大小
用户空间的大小为MB

复制代码代码如下所示:
选择和(字节 1024 1024)大小
从dba_segments
那里的老板= 'owner;
28。查询数据库中每个用户使用的最后一个SQL查询。
这个查询语句显示了当前数据库中每个用户最后使用的SQL语句。

复制代码代码如下所示:
选择s.username | | '(' s.sid| | | |)- | | s.osuser uname,
S.program | | - | | s.terminal | |(机| | | | '程序'),
S.sid | || | s.serial #希德,
s.status地位
P.spid,
sql_text sqltext
sqltext_with_newlines美元从V T,V $ SESSION,v$进程P
在t.address = s.sql_address
和p.addr = s.paddr(+)
和t.hash_value = s.sql_hash_value
为了s.sid,t.piece;
性能相关的查询
29。查询用户CPU使用情况

该语句用于显示每个用户的CPU使用情况,并帮助用户了解数据库负载情况。

复制代码代码如下所示:
选择ss.username,se.sid,价值/ cpu_usage_seconds 100
从V $ SESSION SS,V V statname美元美元sesstat硒、锡
其中SE。统计# = Sn。统计#
和类似于% % CPU的名称
和se.sid = ss.sid
和ss.status =活动
和ss.username不空
通过价值倒序;
30。查询长查询数据库的进展
在运行中显示长查询的进度

复制代码代码如下所示:
选择A.sid,
a.serial #,
B.username,
opname操作,
目标对象,
trunc(elapsed_seconds,5)和(S)
to_char(start_time,'hh24:MI:SS)start_time,
圆(((到目前为止 /总工作量)×100, 2)完成(%)
session_longops美元从V,V $ SESSION B
在a.sid = b.sid
和b.username不('sys '系统')
和总工作量> 0
为了elapsed_seconds;
31。获取当前会话ID、进程ID、客户端ID等
这是特别提供给那些想要使用进程ID和会话ID来做一些巫术魔法的用户。

复制代码代码如下所示:
选择B.sid,
b.serial #,
A.spid ProcessId,
B.过程clientpid
从v $过程A,V $会话B
在a.addr = b.paddr和b.audsid = Userenv('sessionid);
V和V session.sid美元$ SESSION。串行#是数据库的进程ID
V process.spid美元是数据库服务器进程ID
V session.process美元在Windows客户端进程ID,它是第一个在#客户端和第二个是分离的进程ID线程ID。

32。查询在特定模式或表中执行的最后一条SQL语句。

复制代码代码如下所示:
选择创建时间戳,last_ddl_time
从all_objects
那里的老板= 'myschema
和object_type = }}
和object_name = 'employee_table;
33。查询每个执行读取的前十个SQL

复制代码代码如下所示:
*选择
从(行号,
substr(a.sql_text,1, 200)sql_text,
(TRUNC
a.disk_reads /解码(a.executions,0, 1,a.executions))
reads_per_execution,
a.buffer_gets,
a.disk_reads,
a.executions,
a.sorts,
a.address
从V sqlarea一美元
3倒序)
在rownum < 10;
34。查询并显示视图中实际的Oracle连接

复制代码代码如下所示:
选择的OSUser,
用户名,
机,
程序
从V $会话
以OSUser;
35。通过打开连接程序来查询并显示打开连接的组。

复制代码代码如下所示:
选择应用程序(程序)numero_sesiones计数
从V $会话
由项目组
通过numero_sesiones倒序;
36。查询并显示连接到Oracle的用户和用户会话的数目。

复制代码代码如下所示:
选择用户名usuario_oracle计数(用户名)numero_sesiones
从V $会话
集团通过用户名
通过numero_sesiones倒序;
37。获取所有者的对象的数量

复制代码代码如下所示:
选择所有者(业主)number_of_objects计数
从dba_objects
集团的老板
通过number_of_objects倒序;
38。将数值转换为文本
可以看到更多的信息:Oracle中的数字转换成单词

复制代码代码如下所示:
选择to_char(to_date(1526,J'),'jsp)从双;
输出:

复制代码代码如下所示:
一千五百二十六
39。查询包源代码中的字符串。

该查询将搜索foo_something对所有软件包的源代码,它可以帮助用户找到特定的存储过程或函数的源代码中的调用。

复制代码代码如下所示:
搜索字符串foo_something在包的源代码
*选择
从dba_source
上(文本)是foo_something %
业主= 'user_name;
40。将逗号分隔的数据插入表中。

当你要插入一个逗号分隔的字符串到一个表,你可以使用其他的查询语句,如在或不在。这里我们将AA、BB、CC、DD、EE、ff'into AA、BB、CC等作为一个表的行,所以你可以很容易地将这些字符串转换为其他表,并做一些相关的操作快。

复制代码代码如下所示:
CSV
作为(select'aa、BB、CC、DD、EE、FF')
作为csvdata
从双)
选择regexp_substr(CSV。csvdata,{ } ^,+,1,水平pivot_char)
从双,CSV
通过regexp_substr(CSV。csvdata,{ } ^,+,1,级)不为空;
41的最后一张唱片。查询表

这个查询非常直接。在表中没有主键,或者如果用户不能确定最大主键是否是最新的主键,我们可以使用此语句查询表中的最后一条记录。

复制代码代码如下所示:
*选择
从员工
其中rowid在(选择最大的员工(rowid));

(或)

从雇员中选择*

*选择
员工
在行号(选择<计数(*)员工);
42。在oracle中进行行数据乘法

这个查询语句使用一些复杂的数学函数来完成每行的数值乘法。

复制代码代码如下所示:
与任务型教学
如(从双选择- 2个数字)
联盟
从双选择- 3个数字
联盟
从双选择- 4个数字,
sign_val
作为选择(mod(*),2)当0,然后1其他- 1结束瓦尔
从任务型教学
编号0)
选择出口(求和(ABS(努姆)))
从TBL,sign_val
瓦迩集团;
43。oracle中随机数据的生成

每个开发人员都希望轻松地生成一堆随机数据来测试数据库。这个查询语句可以满足你。它可以在oracle中生成随机数据,插入到表中,在oracle中随机数据中可以看到详细的信息。

复制代码代码如下所示:
选择水平empl_id,
MOD(行号,50000)dept_id,
trunc(dbms_random.value(1000, 500000),2)工资,
解码(圆(dbms_random.value(1, 2)),1,现在,2,F)性别,
(to_date
圆(dbms_random.value(1, 28))
| |'
| |圆(dbms_random.value(1, 12))
| |'
| |圆(dbms_random.value(1900, 2010)),
DD-MM-YYYY)
出生日期,
dbms_random.string(x,dbms_random.value(20, 50))地址
从双
按级别连接< 10000;
44。oracle中随机数的生成

这是一个常见的Oracle老随机数字发生器,可以产生一个随机数的范围内,如果你想设置的数值范围,然后改变乘数。

复制代码代码如下所示:
——在0到100之间生成随机数
选择圆(dbms_random。值)(* 100)+ 1 random_num双;
45。是否有任何数据包含在清单中

可以用多种方式编写。您可以使用计数(*)来检查表中的行数,但是这个查询效率高,速度快,我们只想知道表中是否有数据。

复制代码代码如下所示:
选择1
从table_name
在rownum = 1;
如果您知道一些非常好的查询语句,可以减少Oracle开发人员的负担,请在注释中共享:

相关文章

win7系统具有高内存占用/更多的内

win7系统具有高内存占用/更多的内

内存,系统,溶液,更多,电脑软件,问题: 我的宏碁笔记本电脑,采用酷睿i5处理器,配置2GB内存,Windows7 64位系统的预安装。结果发现,即使不打开任何程序,内存占用率也将达到50%。如果再打开两次游戏,内存占用率将达到80%,但CPU占用率很低,只有7%,开始认…

对userint32.exe-过程userint32是

对userint32.exe-过程userint32是

过程,电脑软件,exe,综述:介绍了userint32.exe - userint32过程 进程文件:userint32或userint32.exe 进程名称:W32 / oscabot-c蜗杆组件 过程类别:安全风险的过程 英文描述: userint32.exe是一个过程,是由W32 / oscabot-c蠕虫添加。它使用IRC获…

对PHPset_time_limit实施分析(0)长连

对PHPset_time_limit实施分析(0)长连

长连接,电脑软件,PHPset_time_limit,每一个PHP脚本的执行时间限制的,所以我们需要建立一个脚本执行时间set_time_limit到无限长,然后用冲洗()和()ob_flush清除服务器缓冲区和输出返回值的脚本在任何时间。 例如,以下脚本: 复制代码代码如下所示: …

在awhost32过程awhost32.exe过程的

在awhost32过程awhost32.exe过程的

作用,过程,电脑软件,exe,点评:awhost32.exe是赛门铁克pcAnywhere远程控制相关产品的设置程序。 进程文件:awhost32或awhost32.exe 进程名称:Symantec pcAnywhere 过程类别:安全风险的过程 英文描述: awhost32.exe属于远程控制产品Symantec pcA…

如何使用虚拟光驱(VD)win7win8.1双系

如何使用虚拟光驱(VD)win7win8.1双系

虚拟光驱,双系统,魔方,如何使用,电脑软件,点评:有很多奇怪的用户有疑问,请问虚拟光驱在魔方大师中有什么用途以下是本文的引言,与大家分享 首先,我们需要知道什么是虚拟光驱。 根据百度百科的词条,虚拟光驱是一种模拟(CD或DVD)的工作工具,CD图像生…

如何在Word2007文档加密

如何在Word2007文档加密

加密,文档,如何在,电脑软件,办公室基本是从以前的格式完全不同,无论是在界面和操作。在文档加密的情况下,有两种途径来实现Word2007,以下将告诉你如何在Word2007文档加密。 方法1 1、打开文档,点击office按钮,选择准备;选择在弹出菜单中;加密文件…

linuxDHCP协议的实现

linuxDHCP协议的实现

协议,电脑软件,linuxDHCP,注释:我特别喜欢Linux启动时屏幕上的行和行提示,它告诉我们系统正在做的一切。与Windows不同,它在完成时给我们一个进度条,后面的内容不让我们知道。 DHCP协议的实现部分如下所示 (1):DHCP服务器被动地打开UDP端口67,等待…

如何禁用/关闭米饭退出时的消息提

如何禁用/关闭米饭退出时的消息提

消息提示,退出,米饭,解决方案,电脑软件,问题: 用过饭后聊天,有留言要退出,不想让它提示,怎么关机 答案uff1a 禁止大米退出时的报文提示方法: 打开M聊天,点击菜单按钮,选择退出,退出;在没有收到消息后,M聊天;;。 (答案来源:小米官网整理:米粉) 小米手机…

在保持模式下判断HTTP请求结束的实

在保持模式下判断HTTP请求结束的实

请求,结束,代码,模式下,电脑软件,因此,请求的结束可以基于EOF判断,而下面的代码(PHP)是非常常见的: 复制代码代码如下所示: / / $ FP由fsockopen(手柄) 而(!Feof($ FP)){ 回声fgets($ FP); } (注意:短连接模式用连接标记在头上:关闭,长连接标记为连接:保持生存…

PHPstristr()函数(不区分大小写的字符

PHPstristr()函数(不区分大小写的字符

函数,字符串查找,不区分大小写,电脑软件,PHPstristr,如果查找成功,则返回字符串的其余部分(从匹配点),如果找不到字符串,则返回false。 版本支持:PHP 3 + Grammar: Stristr(字符串,找到) 解释uff1a 字符串是必需的。指定搜索的字符串。 查找是必需…

KHALMNPR.exe的作用是什么该khalmn

KHALMNPR.exe的作用是什么该khalmn

查询,作用,过程,功能,电脑软件,评论:详细的介绍了khalmnpr.exe - khalmnpr过程 进程文件:khalmnpr或KHALMNPR.exe 过程名称:罗技鼠标实用程序 过程类别:安全风险的过程 英文描述: KHALMNPR.exe是一个过程与罗技只允许安装的多媒体产品系列高级…

smoutlookpack.exe-smoutlookpack

smoutlookpack.exe-smoutlookpack

文件,过程,电脑软件,smoutlookpack,exe,点评:smoutlookpack.exe是PC-cillin杀毒软件包相关的产品,这个过程是用来监测病毒在Outlook 进程文件:smoutlookpack或smoutlookpack.exe 进程名称:PC-cillin防毒邮件扫描器 过程类别:安全风险的过程 英…