SQL ALIAS的用法
接下来,我们讨论 alias (别名) 在 SQL 上的用处。最常用到的别名有两种: 栏位别名及表格别名。
简单地来说,栏位别名的目的是为了让 SQL 产生的结果易读。在之前的例子中, 每当我们有营业额总合时,栏位名都是 SUM(sales)。 虽然在这个情况下没有什么问题,可是如果这个栏位不是一个简单的总合,而是一个复杂的计算, 那栏位名就没有这么易懂了。若我们用栏位别名的话,就可以确认结果中的栏位名是简单易懂的。
第二种别名是表格别名。要给一个表格取一个别名,只要在 from 子句 中的表格名后空一格,然后再列出要用的表格别名就可以了。这在我们要用 SQL 由数个不同的表格中 获取资料时是很方便的。这一点我们在之后谈到连接 (join) 时会看到。
我们先来看一下栏位别名和表格别名的语法:
SELECT "表格别名"."栏位1" "栏位别名"
from "表格名" "表格别名"
基本上,这两种别名都是放在它们要替代的物件后面,而它们中间由一个空白分开。我们 继续使用 Store_Information这个表格来做例子:
Store_Information 表格
store_name
Sales
Date
Los Angeles
$1500
Jan-05-1999
San Diego
$250
Jan-07-1999
Los Angeles
$300
Jan-08-1999
Boston
$700
Jan-08-1999
我们用跟 SQL GROUP BY 那一页 一样的例子。这里的不同处是我们加上了栏位别名以及表格别名:
SELECT A1.store_name Store, SUM(A1.Sales) "Total Sales"
from Store_Information A1
GROUP BY A1.store_name
结果:
Store
Total Sales
Los Angeles
$1800
San Diego
$250
Boston
$700
在结果中,资料本身没有不同。不同的是栏位的标题。这是运用栏位别名的结果。在第二个栏位上,原本我们的标题是 "Sum(Sales)",而现在我们有一个很清楚的 "Total Sales"。很明显地,"Total Sales" 能够比 "Sum(Sales)" 更精确地阐述这个栏位的含意。用表格别名的好处在这里并没有显现出来,不过这在下一页 (SQL Join) 就会很清楚了。
相关文档:
假设如下应用:
两张表——用户表TDefUser(userid,address,phone)和消费表TAccConsume(userid,time,amount),需要查消费超过5000的用户记录。
用exists:
select * from TDefUser
where exists (select 1 from TAccConsume where TDefUser.userid=TAccConsume.userid and TAccConsume.amount>5000)
用i ......
SQL语句优化技术分析
最近几周一直在进行数据库培训,老师精湛的技术和生动的讲解使我受益匪浅。为了让更多的新手受益,我抽空把SQL语句优化部分进行了整理,希望大家一起进步。
一、操作符优化
1、IN 操作符
用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格。但是用IN的SQL性能总是比较 ......
到目前为止,我们已学到如何藉由 SELECT 及 WHERE这两个指令将资料由表格中抓出。不过我们尚未提到这些资料要如何排列。这其实是一个很重要的问题。事实上,我们经常需要能够将抓出的资料做一个有系统的显示。这可能是由小往大 (ascending) 或是由大往小(descending)。在这种情况下,我们就可以运用 ORDER BY这个指令来达到 ......
我们现在回到函数上。记得我们用 SUM 这个指令来算出所有的 Sales (营业额)吧!如果我们的需求变成是要算出每一间店 (store_name) 的营业额 (sales),那怎么办呢?在这个情况下,我们要做到两件事:第一,我们对于 store_name 及 Sales 这两个栏位都要选出。第二,我们需要确认所有的 sales 都要依照各个 store_name 来分开 ......