上篇文章讲述了检索数据最基本的方法,这篇将会讲到对检索结果的一些处理
检索不同的值
一般情况下,SELECT语句会返回所有匹配的行,但不是所有情况下都需要返回所有的结果。比如检索Products表中所有产品供应商的ID:
SELECT vend_id FROM Products;```
将会输出以下结果:
![SELECT vend_id FROM Products.png](https://img.haomeiwen.com/i2773041/18fabff01644ab82.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
SELECT语句返回了全部的9行结果,但是实际上不同的vend_id只有3个,如果我们只需要看到不同的值要怎么做呢?
方法是使用DISTINCT关键字,这个关键字会指示数据库只返回不同的值。
输入:
SELECT DISTINCT vend_id FROM Products;```
结果如下:
可以看到检索结果只有不同的值,这一操作也叫去重。
需要注意的是,DISTINCT关键字作用于所有的列,不仅仅是跟在其后的那一列。
限制结果
SELECT语句会返回所有匹配的行,但是有些时候我们只需要返回特定的行数,这时可以使用LIMIT子句来限制输出的结果。例如:
SELECT prod_name FROM Products LIMIT 5;```
输出结果:
![SELECT prod_name FROM Products LIMIT 5.png](https://img.haomeiwen.com/i2773041/df4d4d4e3c07a6a5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
在这个操作的基础上,我们还可以指定从哪儿开始以及检索的行数,比如输入:
SELECT prod_name FROM Products LIMIT 5 OFFSET 5;```
输出结果:
SELECT prod_name FROM Products LIMIT 5 OFFSET 5.png
LIMIT 5 OFFSET 5 指示数据库返回从第五行起的五行数据。因为Products表中只有9行数据,所以这条语句只返回了4行数据。
需要注意的是:
- 第一个被检索的是第一行,所以LIMIT 0 OFFSET 1 会检索第二行。
- MySQL 支持简化版的LIMIT x OFFSET x语句,可以简化成LIMIT x,x,比如LIMIT 4 OFFSET 3 可以简化成LIMIT3,4。
使用注释
像其他编程语言一样,SQL也提供了注释的语法。
注释的功能十分强大,例如在文件的开头可以使用注释说明一些程序的描述或者项目的信息,或者是测试一个长SQL语句的一部分,就可以注释掉其他的部分。
注释的有多种形式,首先来看行内注释。
SELECT prod_name --这是一条注释
FROM Products;
行内注释使用--
(两个连字符)嵌在行内,--
之后的文本就是注释。
也可以使用#
进行行内注释,比如
#这是一条注释
SELECT prod_name
FROM Products;
在一行的开始使用#
,这一行都会被作为注释。
还有一种多行注释的形式,注释可以在脚本的任何位置停止和开始。
/* SELECT prod_name, vend_id
FROM Products; */
注释从/*
开始,到*/
结束,这两个语句之间的内容都是注释,这种方式通常是用来给代码增加注释。
网友评论