可以用rownum来查询一条记录. 如emp表中有如下数据. 要求查询deptno为20的,但只取一条记录,可用如下语句: select * from emp where deptno=20 and rownum<=1; 查询结果: http://zhidao.baidu.com/link?url=9Vd1VkPzunq5Rb3ApltIU1ZXBWgrHJwOgmfMMH7T4m9wwWRSfkd8Hxz0je4RmRM_Vo6Dj0Gcz2LXkdn_zgQX__…
转自:http://bbs.csdn.net/topics/370033478 对于Oracle中分页排序查询语句执行效率的比较分析 作者:lzgame 在工作中我们经常遇到需要在Oracle中进行分页.排序.查询的组合SQL语句,举例来说,通常我们会这样写:(假定表test中id是主键,并且id从1开始没有间断顺序排列) 1. SELECT * FROM (       SELECT id,a1,a2,a3,a4,a5,a6,a7,a8,a9, ROWNUM AS rn FROM test  …
TOP-N查询(TOP-N分析):就是获取某一数据集合中的前N条记录,实际应用中经常用到. Oracle中不支持SELECT TOP语句(MySQL中也没用此语句),需要借助ROWNUM伪列来实现TOP-N查询. ROWNUM伪列:是Oracle数据库对查询结果自动添加的一个伪列,编号从1开始.ROWNUM在物理上(查询目标表中)并不存在,是每一次查询过程中动态生成的,所以称为“伪列”.因此,不允许以任何查询基表的名称做为前缀,连接查询中涉及多个物理表,但也只动态生成一个伪列. 1.非排序查询T…
转至:http://www.th7.cn/db/Oracle/201501/86125.shtml oracle 通过 nvl( )函数sql 查询时为 空值 赋默认值 oracle 函数介绍之nvl 函数声明:nvl(col,val) 说明:当col为空时取val作为返回值,当col不为空时取col值. 用处:最主要的是格式化数据,比如计算金额时,不想出现空数据,可以使用nvl(JINE,0)来得到0.由于null+(或-,*,/)数字等于 null,所以在表达式中对可能为空的值要使用nvl由…
连接查询: 连接查询是指基于多张表或视图的查询.使用连接查询时,应指定有效的查询条件,不然可能会导致生成笛卡尔积.如现有部门表dept,员工表emp,以下查询因查询条件无效,而产生笛卡尔积:   (各语句中字段不做解释,主要显示逻辑关系) select dept.dname,emp.ename from dept,emp where dept.name = 'sales'; 有效查询条件应该指定dept表与emp表之间的连接关系.表之间连接关系多如下: 1.相等连接(=) 相等连接主要用于查询主…
1 语法格式 select [level], column, expr... from table [where condition] start with condition connect by [prior column1= column2 | column1 = prior column2]; 2 语法解释 层次查询是通过start with和connect by子句标识的: 1.其中level关键字是可选的,表示等级,1表示root,2表示root的child,其他相同的规则. 2.F…
一.思路:首先判断这个查询的是emp表,需要接收值,声明一个rowtype类型接收数据即可,第二是,存在exception,需要处理,exception中有两种异常,分别处理即可,分别输出即可. 二.在增删改之后加上commit提交事物. 三.具体实现 declare -- 声明rowtype类型接收数据即可 v_emp emp%rowtype; begin -- 查询员工中姓为“SMITH” select * into v_emp from emp where ename='SMITH'; d…
查询条件: 1)LIKE:模糊查询,需要借助两个通配符,%:表示0到多个字符:_:标识单个字符. 2)IN(list):用来取出符合列表范围中的数据. 3)NOT IN(list): 取出不符合此列表中的数据记录. 4)BETWEEN…AND…:用来查询符合某个值域范围条件的数据,最常见的是使用在数字类型的数据范围上,但对字符类型和日期类型数据也同样适用.for example: SELECT ename, sal FROM emp WHERE sal BETWEEN 1500 AND 3000…
sqlplus / as sysdbaSQL>select status from v$instance;1.查看最大连接数show parameter processes;2.查询oracle的连接数select count(*) from v$session;2.查询oracle的并发连接数select count(*) from v$session where status='ACTIVE';3.查看不同用户的连接数select username,count(username) from…
Oracle 10g新增 BINARY_DOUBLE 数据类型,而.NET暂不支持这个类型,查询时需要转换为 NUMBER. eg: "SELECT RAWTOHEX(OID) AS OID,RAWTOHEX(FLAVOROID) AS FLAVOROID,BISMATRIX," +            "CAST(SERVERTOCLIENT0  AS NUMBER(38,15)) AS SERVERTOCLIENT0," +            "…
1. 查询连接的session select sid,serial#,username,program,machine,status from v$session 查询的结果如下,可以根据机器和登录的账号定位: 2. 杀死存在的session --这里的sid,serial根据查询的结果修改为对应的值 alter system kill session 'sid, serial#'…
-------------------- -- 这里是查询 数字型字段值 /*declare CURSOR cur_query IS select table_name, column_name, data_type from user_tab_columns; a number; sql_hard varchar2(2000); vv number; begin for rec1 in cur_query loop a:=0; if rec1.data_type ='NUMBER' THEN…
普通查询:select * from t; 去除重复值:select distinct f1,f2 from t; between用法:select * from t where f1 not/between 1and 2; like用法:select * from t where f1 not/like '_MDB%'; in用法:select * from t where f1 not/in (n1,n2..); 显示前5行:select * from t where rownum<=5;…
一.表名为t的表中数据如下: select * from t; FPHM KSHM ---------- ---------- 实现代码如下: select b.fphm,min(b.kshm),max(b.kshm) from ( select a.*,to_number(a.kshm-rownum) cc from ( select * from t order by fphm,kshm ) a ) b group by b.fphm,b.cc 结果如下: FPHM MIN(B.KSHM)…
select st_area(shape) from XAG2011430200000M_DLTB t where objectid=330…
Oracle中的一些查询语句及其执行顺序 原文地址:https://www.cnblogs.com/likeju/p/5039115.html 查询条件: 1)LIKE:模糊查询,需要借助两个通配符,%:表示0到多个字符:_:标识单个字符. 2)IN(list):用来取出符合列表范围中的数据. 3)NOT IN(list): 取出不符合此列表中的数据记录. 4)BETWEEN…AND…:用来查询符合某个值域范围条件的数据,最常见的是使用在数字类型的数据范围上,但对字符类型和日期类型数据也同样适用…
含义解释: 问:什么是NULL? 答:在我们不知道具体有什么数据的时候,也即未知,可以用NULL,我们称它为空,ORACLE中,含有空值的表列长度为零. ORACLE允许任何一种数据类型的字段为空,除了以下两种情况: 1.主键字段(primary key), 2.定义时已经加了NOT NULL限制条件的字段 说明: 1.等价于没有任何值.是未知数. 2.NULL与0.空字符串.空格都不同. 3.对空值做加.减.乘.除等运算操作,结果仍为空. 4.NULL的处理使用NVL函数. 5.比较时使用关键…
Oracle中造成一些表被死锁或者会话异常退出,如执行了更新记录操作后,既没有commit也没有rollback,网络就断开了,也会造表或记录被锁住,待到超时后才会被解开,那样都会造成应用操作被阻塞. 可以以Oralce管理员权限用户登录Oracle数据,查询到被锁的对象,然后杀除指定的会话. 用下面的语句查询被锁的对象,可以带上更多约束条件,如schemaname等更精确的匹配. SELECT  a.object_id, a.session_id, b.object_name, c.* FRO…
HQL:完全面向对象查询 SQL的执行顺序: 1.From 2.Where 过滤基础数据 where与having的区别:1.顺序不同 2.where过滤基础数据 3. 过滤聚合函数 3.Group by 4.Select 5.Having 6.Order by   使用Hibernate查询时,使用hibernate的一个接口query Hql是面向对象的查询语句,所以跟的是类名 Query query = session.createQuery("select id,name,stu.cla…
遇到问题:多表关联查询,有一个要求是,同一保单号,对应多个投资产品Code.以及投资比例,每一个保单号有一个总的投资金额.要求同一保单号那一行,只有第一个总金额有值,剩下的code对应的总金额置空. 简述问题:如果本行记录和上一行记录,某字段值相同,则怎么处理,另外一列的值. 样例SQL如下. select rownum 序号 , ld.comcode 分公司, 'B2B' 来源, ed.tranno 银行交易号, (select bb.newcontno from b2b_contno bb…
oracle中的层级操作非常方便,在使用之后爱不释手,以前要实现该种数据查询操作,需要非常复杂的实现过程.在oracle中通过connect by可以实现前面的目的,通常情况下层级查询基本都能实现递归查询目的.下面是connect by的使用语法: select [level], column, expr... from table [where condition] start with condition connect by [prior nodeCode1 = nodeCode2 | n…
平时工作中可能会遇到当试图对库表中的某一列或几列创建唯一索引时,系统提示 ORA-01452 :不能创建唯一索引,发现重复记录. 下面总结一下几种查找和删除重复记录的方法(以表CZ为例): 表CZ的结构如下: SQL> desc cz Name Null? Type ------------------------------------------------------------------- C1 ) C10 ) C20 ) 删除重复记录的方法原理: (1).在Oracle中,每一条记录…
含义解释:问:什么是NULL?答:在我们不知道具体有什么数据的时候,也即未知,可以用NULL,我们称它为空,ORACLE中,含有空值的表列长度为零.ORACLE允许任何一种数据类型的字段为空,除了以下两种情况:1.主键字段(primary key),2.定义时已经加了NOT NULL限制条件的字段说明:1.等价于没有任何值.是未知数.2.NULL与0.空字符串.空格都不同.3.对空值做加.减.乘.除等运算操作,结果仍为空.4.NULL的处理使用NVL函数.5.比较时使用关键字用"is null&…
1.Oracle Package的作用: 可以简化应用设计.提高应用性能.实现信息隐藏.子程序重载 2.ORACLE中的function   .package.package   bodies.procedure的区别和相同: function有返回值,有参数:procedure无返回值,有参数:package.package   body是同时存在的,就像.h和.cpp文件,如果要外部调用的,就在package里声明一下,包内调用的,只要在body里写就行了.package可包括functio…
--Oracle中的复合查询 复合查询:包含集合运算(操作)的查询 常见的集合操作有: union: 两个查询的并集(无重复行.按第一个查询的第一列升序排序) union all:两个查询的并集(有重复行) intersect:两个查询的交集(无重复行.按第一个查询的第一列升序排序) minus: 两个查询的差集(无重复行.按第一个查询的第一列升序排序),取第一张表有而第二张表没有的所有记录 由于union.intersect.minus存在排序,故而对sql性能的影响很大,建议少用. --测试…
1.对返回的行无任何限定条件,即没有where子句 2.未对数据表与任何索引主列相对应的行限定条件例如:在City-State-Zip列创建了三列复合索引,那么仅对State列限定条件不能使用这个索引,因为State不是索引的主列. 3.对索引的主列有限定条件,但是在条件表达式里使用以下表达式则会使索引失效,造成全表扫描:(1)where子句中对字段进行函数.表达式操作,这将导致引擎放弃使用索引而进行全表扫描,Demo:where upper(city)='TokYo' 或 City || 'X…
本次预计讲解的知识点 1. 多表查询的操作.限制.笛卡尔积的问题: 2. 统计函数及分组统计的操作: 3. 子查询的操作,并且结合限定查询.数据排序.多表查询.统计查询一起完成各个复杂查询的操作: 一.多表查询的基本概念 在之前所使用的查询操作之中,都是从一张表之中查询出所需要的内容,那么如果现在一个查询语句需要显示多张表的数据,则就必须应用到多表查询的操作,而多表查询的语法如下: SELECT [DISTINCT] * | 字段 [别名] [,字段 [别名] ,-] FROM 表名称 [别名]…
这两天老大让我再oracle中把要替换的表被其他对象引用之处找出来,整理一份表,接到这个任务,我是一脸懵逼,怎么找?大海捞针么?问同事.查资料,自己研究,最后整理一下仅供大家参考,同时以备将来回顾.本篇只涉及表被其他数据库对象引用,不涉及外键,想寻找外键的,自己查看下面附有的链接. 首先有下列几种方式: 1.plsql工具 : 点击工具,找到 查找数据库对象 最后进入到查找页面 最后根据页面把要查找的 表对象或者关键词填入 文本查找   里,再在对象条件里 选择自己要筛选的条件即可筛选.但是此方…
Oracle中关于处理小数点位数的几个函数,取小数位数,Oracle查询函数 关于处理小数点位数的几个oracle函数()1. 取四舍五入的几位小数select round(1.2345, 3) from dual;结果:1.2352. 保留两位小数,只舍select trunc(1.2345, 2) from dual;结果:1.23 select trunc(1.2399, 2) from dual; 结果:1.233.取整数返回大于或等于x的最大整数: SQL> select ceil(2…
原因:在oracle中,执行了update或者insert语句后,都会要求commit,如果不commit却强制关闭连接,oracle就会将这条提交的记录锁住.下次就不能执行增删操作. 解决:1.查询锁 SELECT s.sid, s.serial# FROM v$locked_object lo, dba_objects ao, v$session s WHERE ao.object_id = lo.object_id AND lo.session_id = s.sid; 2.删除锁(要有ro…