欢迎来到Heck's Blog,专业承接拿站、企业建站、仿站、网上商城架构、门户网站搭建、空间域名注册、软件定制等项目。关注网络安全,因为专注,所以专业,懂得放弃,才能收获。有事请发邮件至i@heckjj.com,请记住本站网址:http://www.heckjj.com,多谢。
3月4
1、判断数据库是否存在

if exists (select * from sys.databases where name = '数据库名')  
 drop database [数据库名]  

2、判断表是否存在

if exists (select * from sysobjects where id = object_id(N'[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)  
   drop table [表名]  

3、判断存储过程是否存在

if exists (select * from sysobjects where id = object_id(N'[存储过程名]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)  
   drop procedure [存储过程名]  

4、判断临时表是否存在

if object_id('tempdb..#临时表名') is not null    
   drop table #临时表名  
Tags:
8月31
在MS-SQLServer中,如何在不同的数据库之间复制表?
当表目标表存在时:
insert into 目的数据库..表(字段1...字段n) select  段1...字段n  from 源数据库..表

当目标表不存在时:
select 段1...字段n  into 目的数据库..表 from 源数据库..表
--如果在不同的SQL之间:
insert into openrowset('sqloledb','目的服务器名';'sa';'',目的数据库.dbo.表)
select * from 源数据库..表

除了上面的方法之外或者还可以用链接服务器:
10月24
         记得前段时间,好几次面试都有问到我这个问题,也就是怎么查询数据库中重复的数据呢,并且还需要把重复数据据替换掉,现在做个笔记方便自己以后复习和查找,也给大家分享供大家参考下。
一、在一张表中某个字段下面有重复记录,有很多方法,但是有一个方法,是比较高效的,如下语句:
select data_guid from adam_entity_datas a where a.rowid > (select min(b.rowid) from adam_entity_datas b where b.data_guid = a.data_guid)
如果表中有大量数据,但是重复数据比较少,那么可以用下面的语句提高效率
select data_guid from adam_entity_datas where data_guid in (select data_guid from adam_entity_datas group by data_guid having count(*) > 1)
此方法查询出所有重复记录了,也就是说,只要是重复的就选出来,下面的语句也许更高效
select data_guid from adam_entity_datas where rowid in (select rid from (select rowid rid,row_number()over(partition by data_guid order by rowid) m from adam_entity_datas) where m <> 1)
目前只知道这三种比较有效的方法。

第一种方法比较好理解,但是最慢,第二种方法最快,但是选出来的记录是所有重复的记录,而不是一个重复记录的列表,第三种方法,我认为最好。
10月15
一、建议的连接池配置方法:

Tomcat 6 配置 Oracle XE数据库连接池
搞了我差不多6个小时,终于把连接池配起来了。快点写下来,免得以后忘了,呵呵。其实也就3步而已。

1、把相关的jar文件复制到tomcat/lib目录中。
主要就是jdbc/lib下的jar包,还有LIB下的jar包。

2、修改工程目录的WebRoot/WEB-INF/web.xml文件,加入下面的配置:

10月15
数据库服务器字符集更改步骤
问题描述:
在客户端插入字符“咪咪”,从数据库中查询显示时出现乱码

处理步骤:
1.对数据库做全库导出,备份全库数据,以防故障发生
首先设定客户端的字符集,必须以ZHS16GBK的字符集导出,然后才能在更改失败后顺利倒入新建的库。
#setenv NLS_LANG "SIMPLIFIED CHINESE_CHINA.ZHS16GBK";
#stty -istrip -parity cs8;
#setenv LANG zh
拟在/sybdata(磁盘阵列)下建立一个目录orabak,用于存放dmp文件。
#mkdir /sybdata/orabak
#chown oracle:oinstall /sybdata/orabak
#su – oracle
#cd /sybdata/orabak
%exp system/manager@hnsdh file=hnsdh_2010-8-17 log=hnsdh_exp_2010-8-17 full=y
(此处命名为示例,以实施当日日期为准)
察看日志结尾,以判定导出是否成功。
#cat hnsdh_2010-8-17.dmp | od -x | head
看第二和第三个字节组成的十六进制数是多少可判断导出文件的字符集。
9月26
      以前有写过一篇关于access安全的文章,但总觉得有不足,经过测试研究后,重新写出来,欢迎大家进行讨论。 smile
首先我们知道常见的傻瓜式入侵ASP网站下载默认数据库是其中一个方法,挖掘机挖掘大量的网站,寻找网站中存在的默认数据库。数据库作为一个动态网站最重要的核心,里面记录了大量信息。作为一名入侵者,拿到数据库就等于拿到网站的权限了,轻则泄露数据,重则影响网站乃至整个服务器的安全。

ASP ACCESS的网站结构是网上最流行的架构方式之一,几乎的站长使用的都是别人的网站系统,很多人都忽略了修改默认数据库,从而导致入侵者有入侵的机会。

在入侵ASP ACCESS网站系统中,直接下载数据库、使用一句话木马是最常见的方法,其中直接下载数据库包括了通过暴库和直接下载默认数据库来得到数据库路径,插入一句话木马是针对得到数据库地址,并且是ASP或者ASA为扩展名的数据库。

所以网上流传的修改数据库扩展名为ASP和ASA不是一个最安全的方法,反而被入侵者知道路径后,是一个致命的错。而将数据库名加上#也并非安全的做法。
9月21
        尽早缓存;经常缓存 您应该在应用程序的每一层都实现缓存。向数据层、业务逻辑层、UI 或输出层添加缓存支持。内存现在非常便宜 — 因此,通过以智能的方式在整个应用程序中实现缓存,可以获得很大的性能提高。 缓存可以掩盖许多过失  缓存是一种无需大量时间和分析就可以获得“足够良好的”性能的方法。这里再次强调,内存现在非常便宜,因此,如果您能通过将输出缓存 30 秒,而不是花上一整天甚至一周的时间尝试优化代码或数据库就可以获得所需的性能,您肯定会选择缓存解决方案(假设可以接受 30 秒的旧数据)。缓存正是那些利用 20% 付出获得 80% 回报的特性之一,因此,要提高性能,应该首先想到缓存。不过,如果设计很糟糕,最终却有可能带来不良的后果,因此,您当然也应该尽量正确地设计应用程序。但如果您只是需要立即获得足够高的性能,缓存就是您的最佳选择,您可以在以后有时间的时候再尽快重新设计应用程序。 页面级输出缓存 作为最简单的缓存形式,输出缓存只是在内存中保留为响应请求而发送的 HTML 的副本。其后再有请求时将提供缓存的输出,直到缓存到期,这样,性能有可能得到很大的提高(取决于需要多少开销来创建原始页面输出 - 发送缓存的输出总是很快,并且比较稳定)。 实现 要实现页面输出缓存,只要将一条 OutputCache 指令添加到页面即可。

<%@ OutputCache Duration="60" VaryByParam="*" %>

如同其他页面指令一样,该指令应该出现在 ASPX 页面的顶部,即在任何输出之前。它支持五个属性(或参数),其中两个是必需的。  Duration 必需属性。页面应该被缓存的时间,以秒为单位。必须是正整数。  Location 指定应该对输出进行缓存的位置。如果要指定该参数,则必须是下列选项之一:Any、Client、Downstream、None、Server 或 ServerAndClient。  VaryByParam 必需属性。Request 中变量的名称,这些变量名应该产生单独的缓存条目。"none" 表示没有变动。"*" 可用于为每个不同的变量数组创建新的缓存条目。变量之间用 ";" 进行分隔。 VaryByHeader 基于指定的标头中的变动改变缓存条目。
9月8

超简洁PHP写入MySQL数据

13:01编程杂谈  From: 本站原创
        PHP向MySQL数据库中写入数据有三个步骤28

1.PHP和MySQL建立连接关系

2.打开MySQL数据库

3.接受页面数据,PHP录入到指定的表中

1、2两步可直接使用一个数据库链接文件即可:

conn.php
8月26

用PHP连接SQLite3数据库

11:45Web开发  From: 本站原创
Tags: , ,
8月24
       jzan本文首先讨论了基于第三范式的数据库表的基本设计,着重论述了建立主键和索引的策略和方案,然后从数据库表的扩展设计和库表对象的放置等角度概述了数据库管理系统的优化方案81

  1 引言
  数据库优化的目标无非是避免磁盘I/O瓶颈、减少CPU利用率和减少资源竞争。为了便于读者阅读和理解,笔者参阅了Sybase、Informix和Oracle等大型数据库系统参考资料,基于多年的工程实践经验,从基本表设计、扩展设计和数据库表对象放置等角度进行讨论,着重讨论了如何避免磁盘I/O瓶颈和减少资源竞争,相信读者会一目了然。

  2 基于第三范式的基本表设计

  在基于表驱动的信息管理系统(MIS)中,基本表的设计规范是第三范式(3NF)。第三范式的基本特征是非主键属性只依赖于主键属性。基于第三范式的数据库表设计具有很多优点:一是消除了冗余数据,节省了磁盘存储空间;二是有良好的数据完整性限制,即基于主外键的参照完整限制和基于主键的实体完整性限制,这使得数据容易维护,也容易移植和更新;三是数据的可逆性好,在做连接(Join)查询或者合并表时不遗漏、也不重复;四是因消除了冗余数据(冗余列), 在查询(Select)时每个数据页存的数据行就多,这样就有效地减少了逻辑I/O,每个Cash存的页面就多,也减少物理I/O;五是对大多数事务(Transaction)而言,运行性能好;六是物理设计(Physical Design)的机动性较大,能满足日益增长的用户需求。
分页: 1/2 第一页 1 2 下页 最后页 [ 显示模式: 摘要 | 列表 ]