6. DB
文章平均质量分 77
uniquepine
这个作者很懒,什么都没留下…
展开
-
数据库索引及优化
数据库索引什么是索引数据库索引好比是一本书前面的目录,能加快数据库的查询速度。例如这样一个查询:select * from table1 where id=44。如果没有索引,必须遍历整个表,直到ID等于44的这一行被找到为止;有了索引之后(必须是在ID这一列上建立的索引),直接在索引里面找44(也就是在ID这一列找),就可以得知这一行的位置,也就是找到了这一行。可见,索引是用来定位的转载 2012-03-06 10:38:01 · 713 阅读 · 2 评论 -
oracle 内置函数总结
高频面试oracle函数1.数值截取函数.语法: TRUNC(x[,y])功能: 计算截尾到y位小数的x值. y缺省为0,结果变为一个整数值.如果y是一个负数,那么就截尾到小数点左边对应的位上. 只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。select trunc(3.1478,1) from dual 输出:3.1select trunc(31.1原创 2012-02-20 17:58:04 · 2452 阅读 · 0 评论 -
hibernate VS ibatis
1. iBatis 易于掌握。拿来文档看半天到两天就可以掌握了。 Hibernate 可能需要 3 倍以上的时间来掌握。 2. iBatis 更容易进行 sql 的 优化。 这个应该大家都有共识了。另外 Hibernate 生成的 sql 也实在是太难看了。鉴 于有的朋友提到了 sql 不太重要。我想在这里强调一下我的经验,一般系统性能 的转载 2012-03-26 17:29:07 · 469 阅读 · 0 评论 -
聚簇
为了提高某个属性(或属性组)的查询速度,把这个或这些属性(称为聚簇码)上具有相同值的元组集中存放在连续的物理块称为聚簇。聚簇功能 聚簇功能可以大大提高按聚簇码进行查询的效率。例如要查询信息系的所有学生名单,设信息系有500名学生,在极端情况下,这500名学生所对应的数据元组分布在500个不同的物理块上。尽管对学生关系已按所在系建有索引,由索引很快找到了信息系学生的元组标识,避免了转载 2012-03-26 15:47:21 · 1394 阅读 · 0 评论 -
数据库行列互换
1:SQL Server : case group 2:oracle decode group假设用到的sql语句为:SELECT [姓名],[时代],[金钱] FROM [test].[dbo].[people] 想要等到如下的结果:姓名年轻中年老年张三10005000800李四1200转载 2012-03-12 14:29:20 · 658 阅读 · 0 评论 -
聚簇索引(cluster index) 和非聚簇索引(nonCluster index)
假设你已经通过本书的索引找到了一个句子所在的页码。一旦已经知道了页码后,你很可能漫无目的翻寻这本书,直至找到正确的页码。通过随机的翻寻,你最终可以到达正确的页码。但是,有一种找到页码的更有效的方法。首先,把书翻到大概一半的地方,如果要找的页码比半本书处的页码小,就书翻到四分之一处,否则,就把书翻到四分之三的地方。通过这种方法,你可以继续把书分成更小的部分,直至找到正确的页码附近。这是找到书页的转载 2012-03-12 09:58:57 · 3419 阅读 · 0 评论 -
Oracle分析函数/聚合函数使用总结 .
总结: group by rollup(field1,field2); group by cube(field1,field2); group by grouping sets(field1,field2); 生成测试脚本:[c-sharp:nogutter:collapse:showcolumns] view plaincopyprint转载 2012-03-12 15:19:00 · 611 阅读 · 0 评论 -
事务隔离级别
事务的四个属性:原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)。1.原子性(Atomic) 最重要的原则,也是最容易理解的原则。被事务管理的所有方法,要么一起被提交,要么一起回滚。2.一致性(Consistency) 事务在系统完整性中实施一致性,如果事务成功地完成,那么系统中所有变化将正确地原创 2012-02-27 15:08:42 · 329 阅读 · 0 评论 -
oracle 统计分析函数之lead和lag
无需添加内联结构便可以是实现访问当前行附近行的字段的值lead :向后 lag: 向前. 语法结构: lag(value_expr [,offset][,default]) over([query_partition_clause] order by Order_by_clause) lead(value_expr [,offset][,default]) over(转载 2012-03-16 13:42:29 · 660 阅读 · 0 评论 -
关于分组(group by;having,over partition by)语法的基本应用
over partition by与group by 的区别 group by 只能得到分组后的统计数据,over partition by 不仅可以得到分组后的统计数据,还可以同时显示明细数据。 group by 是在where子句之后;over partition by 是from子句之前。 下面是关于分组(group by;having)语法的基本应用:其基本的执行顺序是:原创 2012-03-06 10:15:33 · 2570 阅读 · 0 评论 -
oracle 练习题目.
1、表:table1(FId,Fclass,Fscore),用最高效最简单的SQL列出各班成绩最高的列表,显示班级,成绩两个字段。select fclass,max(fscore) from table1 group by fclass,fid2、有一个表table1有两个字段FID,Fno,字都非空,写一个SQL语句列出该表中一个FID对应多个不同的Fno的纪录。类如: 101a原创 2012-03-16 15:54:35 · 658 阅读 · 0 评论 -
PL/SQL 游标的使用
Oracle笔记 九、PL/SQL 游标的使用小结:游标:用来临时保存数据查询的结果.可以分为隐式游标(系统自动声明,打开,关闭游标无需人为参与游标管理),显示游标(但查询结果大于一个时就要用到显式游标).显示游标一般使用步骤:(使用一般的loop(exit when(cursorName%notfound) ) 或是while(cursonName% found) loo原创 2012-02-26 20:31:16 · 405 阅读 · 0 评论 -
oracle 执行计划
1,什么是执行计划所谓执行计划,顾名思义,就是对一个查询任务,做出一份怎样去完成任务的详细方案。举个生活中的例子,我从珠海要去英国,我可以选择先去香港然后转机,也可以先去北京转机,或者去广州也可以。但是到底怎样去英国划算,也就是我的费用最少,这是一件值得考究的事情。同样对于查询而言,我们提交的SQL仅仅是描述出了我们的目的地是英国,但至于怎么去,通常我们的SQL中是没有给出提示信息转载 2012-03-23 15:24:21 · 470 阅读 · 0 评论 -
oracle 避免重复插入数据
using keyword :merge INTO-----------------------merge into t1 using(select 1 a,3 b from dual) t2 on (t1.a = t2.a) when matched then update set t1.b = t1.b+t2.b when not matched原创 2012-06-14 10:32:15 · 2776 阅读 · 0 评论 -
wmsys.wm_concat的几个用法 .
wmsys.wm_concat这个有趣有用的函数,它的作用是以','链接字符。例子如下:SQL> create table idtable (id number,name varchar2(30));Table createdSQL> insert into idtable values(10,'ab');1 row insertedSQL> insert into idt转载 2013-04-23 16:40:25 · 875 阅读 · 0 评论 -
mongoDB 入门指南、示例
、准备工作1、 下载mongoDB下载地址:http://www.mongodb.org/downloads选择合适你的版本相关文档:http://www.mongodb.org/display/DOCS/Tutorial2、 安装mongoDBA、 不解压模式:将下载下来的mongoDB-xxx.zip打开,找到bin目录,运行mongod转载 2012-02-26 20:45:46 · 413 阅读 · 0 评论 -
SQL 分页限制结果集行数
1。mySQL: 语法为“LIMIT 首行行号,要返回的结果集的最大数目”。 eg:SELECT * FROM T_Employee ORDER BY FSalary DESC LIMIT 2,5 返回从第二行开始的5行记录2。Sql server : Top 关键字 或是窗口函数ROW_NUMBER OVER(排序规则) eg: SELECT top 3原创 2012-02-28 16:15:38 · 1437 阅读 · 0 评论 -
Oracle primary key和unique key的区别与联系
primarykey与uniquekey都是唯一性约束,用来限制相同字段的值插入。但二者有很大的区别:1.作为primarykey的1个或多个列必须为NOTNULL,如果建表时此列设为NULL,在增加PRIMARYKEY时,列自动更改为NOTNULL。而uniquekey约束的列可以为null,这是primarykey与uniquekey最大的区别。2.一个表只能有一个primar原创 2012-02-27 14:20:29 · 987 阅读 · 0 评论 -
Hibernate过滤器使用窍门
Hibernate过滤器(filter)是全局有效的、具有名字、可以带参数的过滤器,对于某个特定的Hibernate session您可以选择是否启用(或禁用)某个过滤器。AD: 本文向大家介绍Hibernate过滤器,可能好多人还不了转载 2011-08-04 13:56:49 · 631 阅读 · 0 评论 -
SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
SELECT INTO和 INSERT INTO SELECT两种表复制语句 Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种原创 2011-09-09 14:07:29 · 350 阅读 · 0 评论 -
oracle sql 方法
oracle FAQ :http://orafaq.com/wiki/Case_%28SQL%29 ;http://orafaq.com/wiki/SQL_FAQ#What_are_the_difference_between_DDL.2C_DML_and_DCL_co原创 2011-09-21 17:29:09 · 382 阅读 · 0 评论 -
sql server 2005中的分区函数用法(partition by 字段)
partition by关键字是分析性函数的一部分,它和聚合函数不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,partition by用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组 create database转载 2011-09-29 16:51:02 · 356 阅读 · 0 评论 -
Oracle树查询
Oracle树查询的最重要的就是select...start with... connect by ...prior语法了。依托于该语法,我们可以将一个表形结构的中以树的顺序列出来。在下面列述了Oracle中树型查询的常用查询方式以及经常使用的与树查询相关的Oracle特性函数等转载 2011-10-13 10:52:59 · 376 阅读 · 0 评论 -
in和exist的区别
1.EXISTS的执行流程 select * from t1 where exists ( select null from t2 where y = x )可以理解为:for x in ( select * from t1 )loop if ( exists ( select null from t2 where y = x.x ) then原创 2012-02-20 20:49:09 · 666 阅读 · 0 评论 -
JDBC - executeQuery、executeUpdate 和 execute
Statement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。使用哪一个方法由 SQL 语句所产生的内容决定。★方法executeQuery --单个结果集(常用) 用于产生单个结果集的语句,例如 SELECT 语句。 ★方法executeUpdate --(非select语句) --用于执行不是Sel转载 2012-02-22 15:22:22 · 737 阅读 · 0 评论 -
JDBC连接数据库过程
JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1、加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String className)实现。 例如: tr原创 2012-02-22 16:47:40 · 559 阅读 · 0 评论 -
PL/SQL跳转/判断/循环语句块
--goto跳转语句--在goto 后,跳转到相应的语句,然后执行该语句和后面所有语句begin dbms_output.put_line('goto开始了'); goto c; --不被执行 dbms_output.put_line('goto'); dbms_output.put_line('go原创 2012-02-26 20:26:20 · 969 阅读 · 0 评论 -
PL/SQL 面向对象oop编程
--创建地址类型,一定要加as object,还可以在类型中加过程或方法create or replace type address as object ( province varchar2(10), --省份属性 city varchar2(10) --市属性) not final; --not final表示该类型可以有子类型 --定义一个子类转载 2012-02-26 20:37:07 · 2290 阅读 · 0 评论 -
PL/SQL存储过程
--create or replace 创建或替换,如果存在就替换,不存在就创建create or replace procedure pis cursor c is select * from dept2 for update;begin for row_record in c loop if (row_record.deptno = 30) the转载 2012-02-26 20:34:07 · 328 阅读 · 0 评论 -
PL/SQL函数和触发器
--创建函数create or replace function add_sal(sSal number) return numberisbegin if (sSal > 5000) then return sSal + 51; elsif (sSal > 3000) then return sSal + 111; else转载 2012-02-26 20:35:27 · 329 阅读 · 0 评论 -
PreparedStatement 和 Statement
PreparedStatement效率为什么高/为什么要使用PreparedStatement代替Statement在JDBC应用中,如果你已经是稍有水平开发者,你就应该始终以PreparedStatement代替Statement.也就是说,在任何时候都不要使用Statement.基于以下的原因:一.代码的可读性和可维护性.虽然用PreparedStateme转载 2012-02-26 18:29:50 · 461 阅读 · 0 评论 -
PL/SQL 异常处理
--异常处理declare sNum number := 0;begin sNum := 5 / sNum; dbms_output.put_line(sNum);exception when others then dbms_output.put_line('is Error!');end; --自定义异常declare原创 2012-02-26 20:31:52 · 373 阅读 · 0 评论 -
PL/SQL面向对象之package
--将方法和过程用包定义create or replace package pkg_empas --输入员工编号查询出员工信息 procedure pro_findInfo( in_empno emp2.empno%type, out_name out emp2.ename%type, out_sa转载 2012-02-26 20:37:50 · 392 阅读 · 0 评论 -
批量SQL之 BULK COLLECT 子句 .
BULK COLLECT 子句会批量检索结果,即一次性将结果集绑定到一个集合变量中,并从SQL引擎发送到PL/SQL引擎。通常可以在SELECT INTO、FETCH INTO以及RETURNING INTO子句中使用BULK COLLECT。本文将逐一描述BULK COLLECT在这几种情形下的用法。 有关FORALL语句的用法请参考:批量SQL之 FORALL 语句 一、转载 2013-04-23 17:58:40 · 612 阅读 · 0 评论