Sql Hacks 阅读感悟——SQL基础

原创 2011年01月14日 21:52:00

SQL基础:《SQL HACKS》第一章,总共列举了6tips,在命令中运行SQL、管道输入SQL等,下述为我对这6tips的评析。

1、在命令中运行SQL

由于现在数据库软件都有强大的客户端管理工具,因此程序员完全可以利用客户端UI快速、方便的处理绝大多数sql操作,如postgresqlpgadmin(俗称大象)。但是在这3种情形下,我认为在命令中运行sql效率更高。

1)操作系统不能运行数据库客户端工具;

2)客户端没有的功能,如sybase数据库的查看对象依赖等;

3)事务并发测试、锁测试等,多个命令框运行sql语句是件很有乐趣的事情。

关于posgtresql,命令运行框,我认为大家只要熟知一个命令即可: /?,通过这个命令可以列举出所有pg的简单命令及使用方法。

 

2、在程序中连接到SQL

对于Java程序员来说,程序员似乎无需关注sql连接,因为开发框架基本上都有数据库连接的管理功能,开发人员只要取连接即可,连接用完之后,框架基本上会自动回收该连接。即使如此,开发人员也需要详细了解JDBC编程。

 

3、执行条件INSERT

Insert是比较常见的一种数据库操作,开发人员只要关注1点:insert表的值可以来自select结果,如下:

1)可以 insert into table1(col1,col2,col3) values (‘v1’, ‘v2’,’v3’)

2)也可以 insert into table1(col1,col2,col3)

                     Select ‘v1’, ‘v2’, ‘v3’

 

4、更新数据库

Update也是很常见的一种数据库操作,开发人员需要注意2点。

1update是基于行的,不是基于列的,因此在sql中想交换2列的值可以写如下sql

Update table1 set col1 = col3, col3=col1 where …,如此满足条件行的col1, col3就相互交换了。

2update操作时,必须注意不能覆盖之前的更新,这就需要我们在where后带额外条件,如原值、或者时间戳等。

 

5、使用sql求解填字游戏

这条Hack,我认为不应该在此列出,使用sql求解填字游戏说白了就是字符串函数的灵活运用。如作者提到的:

在字典中查找具有开头3个字符与结尾3个字符相同单词sql

Select word from words

Where word like ‘%’ || substring(word,1,3)

And length(word)>3

这也侧面说明,熟知sql确实可以让sql可以处理更多的事情。

 

6、不反复执行相同的计算

作者给出的例子:

Select income, overhead,

       (income – income*overhead/100) as residual,

       0.2*(income – income*overhead/100) as est,

       0.1*(income – income*overhead/100) as admin,

       0.05*(income – income*overhead/100) as rsrv

From contract;

       sql一直在重复计算余额(income – income*overhead/100),可以简单写成如下:

       Select income, overhead, residual,

              0.2 * residual as est, 0.1*residual as admin, 0.05*residual as rsrv

From (select income, overhead, (income – income*overhead/100) as residual from contract) subquery;

 

评析:有时候子查询可以当临时变量来用。

相关文章推荐

Sql Hacks 阅读感悟——数值处理

SQL基础:《SQL HACKS》第5章——数值处理,总共列举了17个tips,计算结果集的乘积、计算累加和、包含Join遗忘的行等,下述为我对这17个tips的评析。#24 计算结果集的乘积情景描述...

Sql Hacks 阅读感悟——总纲

《SQL HACKS》100个业界最尖端的技巧和工具是老外写的一本Sql秘笈。个人觉得其100个话题都比较独立、操作性较强并且比较实用,特来与大家分享。本文只是Sql Hacks阅读感悟系列的开篇,命...

Sql Hacks 阅读感悟——连接、联合和视图

SQL基础:《SQL HACKS》第2章——连接、联合和视图,总共列举了8个tips,不破坏现有查询的修改模式、过滤行和列等,下述为我对这8个tips的评析。1、不破坏现有查询修改模式情景描述:要对设...

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

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

oracle基础教程4 数据利器——SQL

  • 2011年06月28日 12:03
  • 861KB
  • 下载

通过sqli-labs学习sql注入——基础挑战之less11-22

上一次就讲了基础挑战之less1-10,都是get型的,包含的种类也是比较多了,这次的是post型注入一般都是登陆绕过,当然也是可以获取数据库的信息,具体看下面的实验吧。 一些基础的知识上一篇基础挑战...

SQL基础总结——20150730

结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取...

PL/SQL1——语言基础

原文转自  一沙弥的世界  的博客 PL/SQL是过程化的SQL语言,是ORACLE对SQL语言的扩展,在普通SQL语句的基础上增加了编程语言的特点。使得该语言不仅具有过程编程语 言的特征,如...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Sql Hacks 阅读感悟——SQL基础
举报原因:
原因补充:

(最多只允许输入30个字)