暂无 |

2 查询叙述

在执行资料库的操作中,查询算是最常见也是最复杂的工作,所以一个查询叙述所使用到的子句也最多,下列是查询叙述的基本语法:
这一章会讨论「SELECT」、「FROM」、「WHERE」、「ORDER BY」和「LIMIT」五个子句组合起来的查询叙述。其它的子句会在下一章继续讨论。在你使用「SELECT」搭配各种子句来查询资料时,要特别注意子句使用的顺序:

就算你每一个子句的写法都没有出错,如果顺序不对了:

2.1 指定使用中的资料库

一个资料库伺服器可以建立许多需要的资料库,所以在你执行任何资料库的操作前,通常要先指定使用的资料库。下列是指定资料库的指令:

如果你使用「MySQL Workbench」这类的工具软体,画面上看起来会像这样:

2.2 只有SELECT

一个SQL查询叙述一定要以「SELECT」子句开始,再搭配其它的子句完成查询资料的工作。你可以单独使用「SELECT」子句,只不过这样的用法跟资料库一点关系都没有,它只不过把你输入的内容显示出来而已:

例如下列的查询叙述,只是简单的显示字串和计算结果,并不会查询资料库中的资料:

SELECT 'My name is Simon Johnson', 35 * 12

2.3 指定栏位与表格

一般所谓的查询叙述,通常是查询资料库中的资料,所以「SELECT」子句会搭配「FROM」子句来使用,而「SELECT」后面可以指定「*」表示要查询指定表格的所有栏位:

如果目前使用中的资料库为「world」,下列的叙述可以查询「world」资料库中,「city」表格的所有资料:

SELECT * FROM city

一个资料库伺服器可以建立许多需要的资料库,所以在你执行任何资料库的操作前,都要使用「USE」叙述指定一个使用中的资料库。不过你也可以在SQL叙述中使用下列的语法来指定资料库:

如果目前使用中的资料库是「world」,你不用先使用「USE cmdev」叙述切换使用中的资料库,可以使用下列的语法查询「cmdev」资料库中的「emp」表格:

SELECT * FROM cmdev.emp

2.4 指定需要的栏位

有时候你并不需要查询一个表格中所有的栏位,所以你可以在「SELECT」子句后面自己指定需要的栏位:

如果你在「SELECT」后面使用「*」的话:

你可以依照自己的需要决定要查询哪些栏位和顺序:

2.5 数学运算

除了查询表格中的栏位外,你可以加入任何需要的运算,这里先讨论一般常见的数学运算。下列是很常用来执行数学运算的运算子:

优先顺序 运算子 说明 范例 运算结果
1 % 余数 7 % 3 1
1 MOD 余数 7 MOD 3 1
1 * 7 * 3 21
1 / 7 / 3 2.333
1 DIV 除(整数) 7 DIV 3 2
2 + 7 + 3 10
2 - 7 – 3 4

注:优先顺序的数字从1开始,1表示优先权比较高,2比较低,以此类推。就跟一般数学运算的先乘除后加减一样:在一个运算式中,优先权高的先算完,再换低优先权继续算;同样优先权的就由左到右计算。你也可以在运算式中使用左右括号,括号中的运算会先执行。

以「cmdev」资料库中的员工表格(emp)来说,想要计算员工的年薪,就可以使用这些运算子来完成你的查询工作:

2.6 别名

你可以另外为「SELECT」后面查询的资料取一个自己想要的名称,这个作法称为「别名(alias
name)」:

取栏位别名会让执行查询后的结果,使用你自己取的名称为栏位名称:

注:帮一般栏位取一个栏位别名是比较没有必要的,如果是运算式的话,通常就要帮它取一个栏位别名来取代原来一大串的运算式。

在取栏位别名的时候要特别注意下列的状况:

另外如果你「坚持」要使用SQL语法中的保留字来当作栏位别名的话:

如果违反上列两个规定,执行叙述以后会发生错误。

java教程
php教程
php+mysql教程
ThinkPHP教程
MySQL
C语言
css
javascript
Django教程

发表评论

    评价:
    验证码: 点击我更换图片
    最新评论