SQL乐园(14):列的别名和SQL语句的格式化

软件世界

  从上期的介绍我们知道,函数的应用可以大大增强SQL语句的表达和计算能力。而在一个语句中,可以使用多个函数,也可以多次使用同一个函数。以我们上期的问题来举例子(题目见文后),我们可以用三条SQL语句依次计算出价格(UnitPrice)的最大值、最小值和平均值,也可以只采用下面的一条语句:SELECT MAX(UnitPrice),MIN(UnitPrice),AVG(UnitPrice) FROM Products。很显然,后面的方法简洁得多。

  列的别名

  在SQL Server 2000的“查询分析器”中执行上面的语句时,我们会碰到另外一个问题,从执行的结果可以看到,除非我们对照原来的语句,不然根本无从得知哪个数据是做什么用的。

  其实我们完全可以给结果加上标志,看下面的语句:SELECT MAX(UnitPrice) AS MAX,MIN(UnitPrice) AS MIN,AVG(UnitPrice) AS AVG FROM Products。查看执行结果,就可以看到每列数据都有了名称,数据的意义一目了然。

  SQL语句的格式化

  很多朋友应该注意到了,在书写一条SQL语句的时候,每个关键字,如SELECT、MAX,之间都必须有至少一个空格,而有些时候,如"Order Details"表,出现在SQL语句当中时必须加""(英文状态下),否则执行就会出错。这就牵扯到SQL语句的格式化问题。

  应该说SQL语句是比较灵活的,关键词之间和语句之间可以用空格间隔,也可以用空行、换行符来间隔,这就使得我们拥有了更大的书写自由,我们可以把一条长的SQL语句书写在几行当中。

  值得一提的是大小写问题,很多语言对大小写敏感,比如C语言。不过在SQL语句中一般没有要求区分大小写,不过从笔者的经验来看,建议朋友们在关键字和数据库名称上最好保持大小写一致,最好跟系统显示或者技术说明书中一致,这样即便于阅读也不容易出错。

  提示:对大小写是否敏感在很多数据库系统中有相应的设置选项。

  预告:下期我们讲讲多表查询。

  上期问题:找出Northwind数据库Products表中价格(UnitPrice)的最大值、最小值和平均值。

  参考答案:SELECT MAX(UnitPrice) AS MAX,MIN(UnitPrice) AS MIN,AVG(UnitPrice) AS AVG FROM Products

  本期问题:找出Northwind数据库Products表中价格(UnitPrice)差值的最大值,并命名为MAXDIF。

  本期的幸运读者是江苏的陆阳,他将获得《我形我塑影像制作全程图解》(含1CD)一本。请朋友们在答题的E-mail中注明通讯地址,以便邮寄奖品。