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

来源:互联网 发布:247143nx 4010淘宝价格 编辑:程序博客网 时间:2024/06/05 17:54

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)  转义字符的特殊处理,如单引号的处理。

原创粉丝点击