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

  • 2009年03月26日 20:06
  • 1.97MB
  • 下载

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

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

学习java的感悟和总结

学习java也有两年的时间了,刚接触java,首先学习java的基本语法、常见API、java IO和多线程,后来在实际写项目的时候发现java本是很简单的一门语言,但是还要熟悉其他的知识。接着在盲目...
  • Bamboo_Dong
  • Bamboo_Dong
  • 2015年07月26日 11:40
  • 2338

SQL SERVER 基础篇(一):知识点、SQL语句学习及详细总结

SQL SERVER 基础篇,详细总结学习sql语句和知识点,适合入门
  • ITermeng
  • ITermeng
  • 2016年12月09日 07:48
  • 2849

一个在**工作十年员工的感悟

一个在华为工作十年员工的感悟      一、“从小事做起,学会吃亏,与他人合作”,这是研究生毕业前最后一堂课,电子电路的老师最后送给我们几句话,虽然我忘了这位老师的名字,但这几句话却至今铭记。在X...
  • yhf19881015
  • yhf19881015
  • 2013年11月10日 21:11
  • 1597

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

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

Sql Hacks 阅读感悟——总纲

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

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

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

SQL_HACKS:100个业界最尖端的技巧和工具(part1)

  • 2012年03月20日 19:53
  • 17.72MB
  • 下载

SQL的详细语法介绍——对于学习数据库最基础知识.doc

  • 2008年08月01日 11:05
  • 238KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Sql Hacks 阅读感悟——SQL基础
举报原因:
原因补充:

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