读《SQL必知必会》所得 TWO

第7章 创建计算字段

这章主要介绍字段的拼接,将多个字段组合或变换成你想要的形式。

1.一般而言,在DBMS中做这种变换和拼接远比客户机应用程序中做的要快。
2.拼接可以使用关联符号,但是关联符号各个DBMS全不一样。Access,SqlServer,Sybase用+号;DB2,PostgreSql,Oracle,Sysbase用||,而Mysql使用concat方法.一般而言,||是首选语法。
3.使用别名也叫导出列,一般通过AS子句指定,Oracle有些不一样。
4.执行算数运算,Sql中有通用的4则运算,即 +  -  *  /

第8章 使用数据处理函数

本章介绍Sql的函数,这应该不陌生。

1.每个DBMS的函数不尽相同,使用函数肯定会一定程度上造成SQL语句可移植性降低。
2.每个DBMS不一样,用到那个查那个的使用手册是最佳办法。

第9章 数据汇总

这章介绍Sql中的聚集函数

1.聚集函数:运行在行组上,计算和返回单个值的函数.
2.常见有下面5个,AVG(),COUNT(),MAX(),MIN(),SUM(),意义不用多说了。要注意的有几点:一般而言,聚焦函数是忽略列中的空行(Null值)的,但是Count(*)时不忽略空行。
3.通过ALL和DISTINCT来聚集不同值。ALL为默认,对所有行执行计算;DISTINCT,对不同的值进行计算。所以DISTINCT就不能和Count(*)配合使用。
4.有些DBMS还提供了其他的聚集参数,如Top 和Top Percent。

第10章 分组计算

上一章内容的延续,找出汇总表内容子集的方法。主要是Group by子句和Having子句。

Group By子句

1.Group By子句限制超多,该子句一般在按组计算聚合时使用。
2.Group By子句可以包含任意数目的列,这些列进行使得分组进行嵌套,而数据将在最后确定的分组上面汇总。
3.Group By子句中的每个列必须是检索列或是有效表达式,而且一般不能是长度可变的数据类型(如文本或备注型字段);如果使用有效表达式,则必须在Group By子句中采用相同的表达式,不能使用别名.
4.除聚集计算语句外,Select语句中的每一个列都必须包含在Select语句中。
5.如果分组列中具有Null值,则Null值将作为一个分组返回.
6.Group By子句应该于Order By子句配合使用来控制最终的输出顺序.

Having子句

1.Having子句作用和Where子句类似,完成某种形式的过滤。Having子句可以支持所有的Where操作符。
2.Having子句与Where子句的不同:Having子句是针对分组聚集值来过滤的,而不是针对某个特定的行值过滤的。
3.Having子句与Where子句的不同:Having子句是在分组后过滤的,而Wher子句实在分组前过滤的.

第11章 子查询

这章介绍子查询,也算是老朋友了。

1.子查询一般用在Where子句和In子句中充当过滤条件的一部分,另外子查询还可以用来填充计算列(这个偶用的少)。
2.子查询只能查询一个列,如果查询多列会出错
3.子查询用的不好对DBMS性能下降比较大,选择子查询要慎重。(这点偶是受害者,我的一个子查询的Sql执行了15分钟,幸好只是个测试,要是上了项目,那就成笑话了)

就到这里了,下次继续.

154278.html

彭俊 2007-10-19 17:12 发表评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值