Sql Hacks 阅读感悟——联机应用

    技术2025-10-18  13

    SQL基础:《SQL HACKS》第6章——联机应用,总共列举了8tips,将WEB页面复制到表中、使用SVG图像化地展示数据和将导航特性添加到Web应用上等,下述为我对这8tips的评析。

    #41 web页面复制到表中

    场景描述及解决方案:作者利用xslt技术将特定格式的web页面提取到数据表中。

    评析:个人认为,现在从web页面提取内容没必要搞的那么复杂,借助excel通用工具,简单的复制、粘贴web页面到excel表单,继续加工处理,可以满足绝大多数数据提取需求。当然高级用户还可以直连用excelweb页面作为数据源进行提取。

     

    #42 使用SVG图像化地展示数据

    场景描述:给定表格数据如下,要求饼图输出。

    Id

    Color

    v

    l

    h

    Conservative

    Blue

    40

    0

    40

    Labour

    Red

    30

    40

    70

    Lib-Dem

    Yellow

    20

    70

    90

    Other

    white

    10

    90

    100

    评析:就本tip本身使用svg图像化地展示数据,个人并不推荐这个做法。但是,其中涉及到的根据已给的v,求low-high区间倒是在实际应用中挺有用处,如表格的黄色标注部分。

    test=# select id, coalesce((select sum(v) from t42 where id<x.id), 0) as s,

    test-# (select sum(v) from t42 where id<=x.id) as e

    test-# from t42 x order by id;

     

    #43 将导航特性添加到Web应用上

    场景描述:给定一张联系人信息表,关键字段是full name,要求对联系人从A-Z进行分组,并统计A开头的有几个?

    解决方案:截取联系人full name的首个字母,并进行分组及分组计数。

    test=# select substring(name,1,1) as ltr,

    test-# min(name) as fst,

    test-# max(name) as lst,

    test-# count(*) as cnt

    test-# from t43 group by substring(name,1,1)

    test-# order by 1;

     

    评析:该tip在很多场景中都有应用,比如去医院体检,报上你的姓名,然后医务人员就会在开头字母的抽屉中找到你的体检项目表等。核心就是字符串的截取和分组统计功能的使用。

     

    #44 Microsoft Access中隧道访问Mysql

    评析:熟悉powerbuilder的朋友,请建议使用powerbuilder的数据管道功能,可以轻松操作其他数据源。

     

    #45 处理Web服务器日志

    评析:由于现在都有成熟的日志分析工具,现在此处不展开。

     

    #46 在数据库中存储图像

    评析:本tip只要注意不同的数据库其存储图像的字段类型不同,有blobimage类型,postgresql则是bytea类型。另外,在数据库中存储图像通常有2种处理方式:

    1)  存储byte流;

    2)  存储图像路径,图像实体在其它存储介质上。

    选用何种方式视具体情况而定。

     

    #47 利用sql注入漏洞

    #48 防止sql注入攻击

    评析:sql注入通常发生在用户登陆的时候,如转义字符的处理,--注释的使用等。由于目前j2ee应用jdbc操作基本上基于预处理,因此sql注入相对来说已经危害不大。按照作者的说法不要低估SQL注入攻击的威力,也不应高估它。我们需注意常用的防止sql注入攻击手段:

    1)  preparestament使用;

    2)  转义字符的特殊处理,如单引号的处理。

    最新回复(0)