数据库
文章平均质量分 64
hz_chenwenbiaoTMB
这个作者很懒,什么都没留下…
展开
-
Hibernate 各种数据库的配置(转)
1. MySql连接配置 MySql数据库的hibernate连接设置,在hibernate.cfg.xml文件中[code="xml"] true net.sf.hibernate.dialect.MySQLDialect 50 ...原创 2010-07-22 20:27:43 · 111 阅读 · 0 评论 -
Mysql连接字符串大全(转)
mysql JDBC 驱动常用的有两个,一个是gjt(Giant Java Tree)组织提供的mysql驱动,其JDBC Driver名称(JAVA类名)为:org.gjt.mm.mysql.Driver详情请参见网站:http://www.gjt.org/另一个是mysql官方提供的JDBC Driver,其JAVA类名为:com.mysql.jdbc.Driver驱动下载网址:h...原创 2010-08-15 21:25:38 · 117 阅读 · 0 评论 -
JDBC Class.forName作用(转)
使用JDBC时,我们都会很自然得使用下列语句: Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://127.0.0.1/test?useUnicode=true&characterEncoding=utf-8"; String user = ""; String ...原创 2011-04-13 14:53:20 · 142 阅读 · 0 评论 -
查询优化的必要性(转)
查询优化的最终目的是为了提高数据库系统的性能,但查询为什么在效率上会有差别呢?对于SQL查询,由于相同的表存在不同的存取方法;两个表的连接存在不同的连接方法;多个表的连接也存在不同的连接次序.因此,对于一个给定的查询通常会存在很多等价的执行计划,这些执行计划的输出结果相同,但是执行效率的差别往往很大。下面的例子可以说明不同执行计划在效率上的差别。 假设在一个数据库中...原创 2010-12-19 09:55:18 · 676 阅读 · 0 评论 -
使用PreparedStatement防止SQL注入(转)
一条效率差的sql语句,足以毁掉整个应用.Statement是PreparedStatement的父接口,不进行预编译操作,减少了进行预编译的开销.单次运行PreparedStatement要比Statement要慢一些. PreparedStatement可以实现Statement的所有功能,但是之所以叫它预编译指令,是因为在创建它的一个对象时可以给定具有一定格式的SQL字符串,然后用它...原创 2011-04-18 14:58:08 · 117 阅读 · 0 评论 -
SQL Group by Having 学习(转)
在select 语句中可以使用group by 子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。group by 子句可以将查询结果分组,并返回行的汇总信息Oracle 按照group by 子句中指定的表达式的值分组查询结果。 在带有group by 子句的查询语句中,在select 列表中指定的列要么是group by ...原创 2011-04-19 10:33:03 · 119 阅读 · 0 评论 -
SQL查询前10条记录(SqlServer/mysql/oracle/sybase)[语法分析] (转)
这篇文章主要是分析下,四种数据库(SqlServer/Oracle/Mysql/Sybase)查询前N条数据,或者查询中间N条数据的方法。对四种数据库的语法进行一下简单的分析。属于初级教程,高手请自动跳过。以后也会写一些连贯性的渐渐深入的东西。例如,下一篇就会和这篇有关。会写些常用的分页SQL写法,里面就会使用到今天写的,查询前N条或者中间N条的方法。之后再深入到分页存储。接下来也会写一些,异构数...原创 2011-04-22 00:45:41 · 645 阅读 · 0 评论 -
mysql中limit的用法详解[数据分页常用] (转)
在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能。SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offsetLIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整...原创 2011-01-08 16:44:01 · 118 阅读 · 0 评论 -
数据库范式(转)
当前我们使用的主流数据库是关系型数据库,所以我是记录在关系型数据库中对范式的一些理解和看法。数据库库范式分为六种(其实还有有一个BCNF),分别为从第一范式到第六范式。高级一层是建立在所有低层的基础上的,如第2范式是建立在第一范式的基础上的,依次类推。下面分别举例讲解各种范式:第一范式(1NF) 第一范式的核心描述为:数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值。该范...原创 2011-03-23 01:18:24 · 121 阅读 · 0 评论 -
用SQL语句去掉重复的记录(转)
海量数据(百万以上),其中有些全部字段都相同,有些部分字段相同,怎样高效去除重复?如果要删除手机(mobilePhone),电话(officePhone),邮件(email)同时都相同的数据,以前一直使用这条语句进行去重:delete from 表 where id not in (select max(id) from 表 group by mobilePhone,office...原创 2011-03-23 01:25:57 · 1317 阅读 · 0 评论 -
漫谈数据库索引(转)
一、引言对数据库索引的关注从未淡出我的们的讨论,那么数据库索引是什么样的?聚集索引与非聚集索引有什么不同?希望本文对各位同仁有一定的帮助。有不少存疑的地方,诚心希望各位不吝赐教指正,共同进步。[最近首页之争沸沸扬扬,也不知道这个放在这合适么,苦劳?功劳?……] 二、B-Tree我们常见的数据库系统,其索引使用的数据结构多是B-Tree或者B+Tree。例如,MsSql...原创 2011-03-23 10:00:49 · 77 阅读 · 0 评论 -
浅谈数据库索引(转)
数据库索引是为了增加查询速度而对表字段附加的一种标识。见过很多人机械的理解索引的概念,认为增加索引只有好处没有坏处。这里想把之前的索引学习笔记总结一下: 首先明白为什么索引会增加速度,DB在执行一条Sql语句的时候,默认的方式是根据搜索条件进行全表扫描,遇到匹配条件的就加入搜索结果集合。如果我们对某一字段增加索引,查询时就会先去索引列表中一次定位到特定值的行数,大大减少遍...原创 2011-03-23 10:10:13 · 84 阅读 · 0 评论 -
PreparedStatement效率为什么高/为什么要使用PreparedStatement代替Statement(转)
在JDBC应用中,如果你已经是稍有水平开发者,你就应该始终以PreparedStatement代替Statement.也就是说,在任何时候都不要使用Statement.基于以下的原因:一.代码的可读性和可维护性.虽然用PreparedStatement来代替Statement会使代码多出几行,但这样的代码无论从可读性还是可维护性上来说.都比直接用Statement的代码高很多档次:...原创 2011-03-25 09:28:28 · 360 阅读 · 0 评论 -
数据库事务隔离级别与锁(转)
一,事务的4个基本特征 Atomic(原子性): 事务中包含的操作被看做一个逻辑单元,这个逻辑单元中的操作要 么全部成功,要么全部失败。 Consistency(一致性): 只有合法的数据可以被写入数据库,否则事务应该将其回滚到最初 状态。 Isolation(隔离性): 事务允许多个用户对同一个数据进行并发访问,而不破坏数据的正 确性和完整性。同时,并行事务的修改必须与其他并行事务的修改 相互独...原创 2011-03-26 18:57:32 · 96 阅读 · 0 评论 -
Mysql的transaction实现(转)
transaction在数据库编程中是一个重要的概念,这样做可以控制对数据库操作的事务提交。但是要想在程序中实现事务,要求数据库本身支持事务。现在的关系型数据库,我们日常使用的mysql,oracle等等都支持事务,有的是安装后直接就支持,有的需要做一些设置。这篇文章是针对mysql的,讲述从数据库安装,设置,一直到sql语句,甚至到java程序中,如何实现transaction。1.安装要想在m...原创 2010-08-15 15:02:49 · 218 阅读 · 0 评论 -
左连接、右连接、全连接及区别(转)
上节我们介绍了表连接,更确切的说是inner joins內连接. 內连接仅选出两张表中互相匹配的记录.因此,这会导致有时我们需要的记录没有包含进来。 为更好的理解这个概念,我们介绍两个表作演示。苏格兰议会中的政党表(party)和议员表(msp)。 party(Code,Name,Leader) Code: 政党代码 Name: 政党名称 Leader: 政党...原创 2010-05-16 15:23:51 · 152 阅读 · 0 评论 -
oracle初次使用
以前都习惯了使用MySQL,一同事叫我帮他导出oracle的数据,自己却折腾了很久才将它导出来。 在orcale客户端plus里使用select * from abc;命令时,竟然出现有列无法在plus显示的错误,后来才知道,在这个表里使用了大字段,所以用select所有信息时,出现无法显示的错误。这个问题可以选择想要看的列(除大字段列外)如:(1) desc abc;--查看一下表结...原创 2010-12-14 13:06:18 · 143 阅读 · 0 评论 -
Oracle导出数据(转)
1.1 exp 使用方法及实例 exp/imp 为一种数据库备份恢复工具也可以作为不同数据库之间传递数据的工具两个数据库所在的操作系统可以不同exp 可以将数据库数据导出为二进制文件,imp 可以将导出的数据文件再导入到相同的数据库或不同的数据库 数据库导出有四种模式full(全库导出), owner(用户导出), table(表导出), ...原创 2010-12-14 15:33:40 · 178 阅读 · 0 评论 -
三种SQL分页法效率分析(转)
表中主键必须为标识列,[ID] int IDENTITY (1,1) 1.分页方案一:(利用Not In和SELECT TOP分页) 语句形式:SELECT TOP 10 * FROM TestTableWHERE(ID NOT IN (SELECT TOP 20 id FROM TestTable ORDER BY id))ORDER BY IDSELECT...原创 2010-05-16 14:55:10 · 83 阅读 · 0 评论 -
数据查询优化之使用索引(转)
一般的信息系统都会存在查询数据库的要求。查询速度的快慢直接影响系统压力测试的结果。通常情况下,为了提高查询速度,系统修改的顺序为:SQL语句优化-〉数据库优化-〉操作系统优化,实际上还有一个方面:系统架构优化。但系统架构优化一般代价比较大,起码要项目经理拍板才能执行,所以在这里就不多说了。 对于一般的开发人员接触到最多的当属SQL语句优化。而SQL语句优化中除了对SQL语句本身的优化以外...原创 2010-05-16 14:56:43 · 84 阅读 · 0 评论 -
数据库查询优化(转)
北工大计算机学院软件工程研究所 程颖目前,几乎所有的应用程序都要和数据库打交道。通过查询数据库可很容易地获得想要的数据。但是,令人不满意的是:某些查询时间长,响应速度慢。究其原因,一是硬件设备(如CPU、磁盘)的存取速度跟不上,内存容量不够大,这需要计算机制造商的努力;另一方面是没有进行查询优化。本文就查询优化问题,谈点实践体会。分解查询这种方法是把查询分解执行,根据付出开销的多少来决定如何分解,...原创 2010-05-16 14:58:50 · 103 阅读 · 0 评论 -
MySQL索引分析和优化解决方案 (转)
一、什么是索引? 索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录...原创 2010-05-16 15:11:06 · 87 阅读 · 0 评论 -
mysql存储过程学习及java调用存储过程(转)
首先在mysql中练习下存储过程的小例子: mysql> delimiter //mysql> create procedure hello() -> begin -> select 'It is not a HelloWorld'; -> end -> //Query OK, 0 rows affected (0.01 se...原创 2010-05-16 15:12:22 · 93 阅读 · 0 评论 -
mysql 5.0存储过程学习总结(转)
一.创建存储过程1.基本语法: create procedure sp_name()begin………end2.参数传递二.调用存储过程1.基本语法:call sp_name()注意:存储过程名称后面必须加括号,哪怕该存储过程没有参数传递三.删除存储过程1.基本语法:drop procedure sp_name//2.注意事项(1)不能在一个存储过程中删除另一个存...原创 2010-05-16 15:13:47 · 77 阅读 · 0 评论 -
SQL语句优化技术分析(转)
一、操作符优化1、IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格。但是用IN的SQL性能总是比较低的,从Oracle执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别:ORACLE试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,再查询外层的表记录,如果转换成功则直接采用多个表的连接方式查询。由此可见用IN的SQL...原创 2010-05-16 15:16:16 · 87 阅读 · 0 评论 -
数据查询优化的方法(转)
1. 用IN来替换OR 下面的查询可以被更有效率的语句替换: 低效: SELECT field1, field1 FROM LOCATION WHERE LOC_ID = 10 OR LOC_ID = 20 OR LOC_ID = 30 高效 SELECT field1, field1 FROM LOCATION WHERE LOC_IN IN (10,20,30) ...原创 2010-05-16 15:18:05 · 80 阅读 · 0 评论 -
海量数据库的查询优化及分页算法方案(精)(转)
一、深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别: 其实,我们的汉语字典的正文本身就是一个聚集索引。比如,我们要查“安”字,就会很自然地...原创 2010-05-16 15:20:17 · 85 阅读 · 0 评论 -
我的面试题总结之三:海量数据查询优化(精)(转)
这是我面试的一家数据维护业务公司的面试题,虽然这个职位并不是我所期望的Java开发的工作,自己还是想把握好每一次机会,最后还是去尝试了一下。 由于平时开发的应用数据量比较小,不太关注性能优化的问题,所以不知如何作答,答得不好,很是郁闷。从网上搜索出海量数据查询优化的两篇文章,转载下来,学习学习。 数据库优化查询计划的方法数据库系统是管理信息系统的核心,基于数据...原创 2010-05-16 15:21:35 · 143 阅读 · 0 评论 -
查询重复记录sql (转)
这是我的一次笔试题,是查询一个表(id,name)中重复的记录:sql语句:select * from 表名 where name in (select name from 表名 having count(name)>1)sql学习文档:http://sql.1keydata.com/cn/ ...原创 2010-05-16 15:23:16 · 100 阅读 · 0 评论 -
关于数据库内连接外连接左连接右连接(转)
内连接:把两个表中数据对应的数据查出来 外连接:以某个表为基础把对应数据查出来全连接是以多个表为基础 student表 no name 1 a 2 b 3 c 4 d grade表 no grade 1 90 2 98 3 95 内连接 inner join(查找条件中对应的数据,no4没有数据不列出来) 语法:select * from student inner join grade on...原创 2011-03-26 19:04:04 · 103 阅读 · 0 评论