我们可以在一个 SQL 语句中放入另一个 SQL 语句。当我们在 WHERE 子句或 WHERE 子句或 HAVING子句中插入另一个
SQL 语句时,我们就有一个 subquery 的架构。 Subquery 的作用是什么呢?第一,它可以被用来连接表格。另外,有的时候
subquery 是唯一能够连接两个表格的方式。
Subquery 的语法如下:
在数据库目录中的文章:
数据库
SQL入门教程(15) 外部连接
之前我们看到的左连接 (left join) ,又称内部连接 (inner
join)。在这个情况下,要两个表格内都有同样的值,那一笔资料才会被选出。那如果我们想要列出一个表格中每一笔的资料,无论它的值在另一个表格中有没
有出现,那该怎么办呢?在这个时候,我们就需要用到 SQL OUTER JOIN (外部连接) 的指令。
SQL入门教程(14) 连接
现在我们介绍连接(join)的概念。要了解连接,我们需要用到许多我们之前已介绍过的指令。我们先假设我们有以下的两个表格
SQL入门教程(13) ALIAS
接下来,我们讨论 alias ( 别名) 在 SQL 上的用处。最常用到的别名有两种:
栏位别名及表格别名。简单地来说,栏位别名的目的是为了让 SQL 产生的结果易读。在之前的例子中, 每当我们有营业额总合时,栏位名都是
SUM(sales)。虽然在这个情况下没有什么问题,可是如果这个栏位不是一个简单的总合,而是一个复杂的计算,那栏位名就没有这么易懂了。若我们用栏
位别名的话,就可以确认结果中的栏位名是简单易懂的。
第二种别名是表格别名。要给一个表格取一个别名,只要在 FROM 子句中的表格名后空一格,然后再列出要用的表格别名就可以了。这在我们要用 SQL 由数个不同的表格中获取资料时是很方便的。这一点我们在之后谈到连接 (join) 时会看到。
我们先来看一下栏位别名和表格别名的语法:
SQL入门教程(12) HAVING
那我们如何对函数产生的值来设定条件呢?举例来说,我们可能只需要知道哪些店的营业额有超
过$1,500。在这个情况下,我们不能使用 WHERE 的指令。那要怎么办呢?很幸运地,SQL 有提供一个HAVING
的指令,而我们就可以用这个指令来达到这个目标。 HAVING 子句通常是在一个 SQL 句子的最后。一个含有 HAVING 子句的
SQL 并不一定要包含 GROUP BY 子句。
HAVING 的语法如下:
SQL入门教程(11) Group By
我们现在回到函数上。记得我们用 SUM 这个指令来算出所有的 Sales (营业额)吧!如果我们的需求变成是要算出每一间店
(store_name) 的营业额 (sales),那怎么办呢?在这个情况下,我们要做到两件事:第一,我们对于 store_name 及
Sales 这两个栏位都要选出。第二,我们需要确认所有的 sales 都要依照各个 store_name 来分开算。这个语法为:
Windows/Linux MySQL忘记密码重置密码教程
MySQL的root用户密码往往容易被遗忘,它本身就有一个跳过权限检查启动的机制用来处理权限错误问题。本文分别对Windows环境与Linux环境下介绍MySQL忘记密码/重置密码的方法,希望帮助初学者解决丢失密码的烦恼。
MySQL for Windows重置密码
一般来说,Windows下的MySQL是安装成服务运行的。本文将以Windows 2003为例。
1、首先在 控制面板 – 管理工具 – 服务 中将MySQL服务停止。
SQL入门教程(10) COUNT
在上一页有提到,COUNT 是函数之一。由于它的使用广泛,我们在这里特别提出来讨论。基本上,COUNT让我们能够数出在表格中有多少笔资料被选出来。
它的语法是:
SQL入门教程(09) 函数
既然数据库中有许多资料都是已数字的型态存在,一个很重要的用途就是要能够对这些数字做一些运算,例如将它们总合起来,或是找出它们的平均值。SQL 有提供一些这一类的函数。它们是:
AVG (平均)
COUNT ( 计数)
MAX (最大值)
MIN (最小值)
SUM ( 总合)
运用函数的语法是:
SQL入门教程(08) ORDER BY
到目前为止,我们已学到如何藉由 SELECT 及
WHERE这两个指令将资料由表格中抓出。不过我们尚未提到这些资料要如何排列。这其实是一个很重要的问题。事实上,我们经常需要能够将抓出的资料做一个
有系统的显示。这可能是由小往大 (ascending) 或是由大往小(descending) 。在这种情况下,我们就可以运用 ORDER
BY 这个指令来达到我们的目的。
ORDER BY 的语法如下: