5.2 获取想要的行
通过5.1节的介绍,我们已经知道了如何获取我们想要的列,但是通过前面的方法获取的是一整列数据,我们还可以根据需要获取指定的行。
5.2.1 获取全部行
如果只指定了要获取哪些列,对行没有指定,则默认获取的是这些列的全部行。
5.2.2 获取前几行
有时候,我们可能只是想看一下某张表中各个字段的数据都是什么样子的,这个时候我们就不需要获取所有的行,因为每行的数据都差不多,所以我们只需要获取前几行就可以了。
1. Excel实现
只获取前几行,在Excel中实现起来比较简单,直接拖动鼠标选中想要的行即可。
2. SQL实现
在SQL中,我们可以利用limit来对获取的行数进行限制,比如,我们要获取chapter5表中全部列的前5行,可以通过如下代码实现:
select * from demo.chapter5 limit 5
运行上面的代码,就会把chapter5表中的前5行展示出来,具体运行结果如下表所示。
limit除了可以限制前几行,还可以写为limit x,y的形式,表示获取第x行(不包括第x行)以后的y行数据。
select * from demo.chapter5 limit 2,3
运行上面的代码,可以获取第2行(不包括第2行)以后的3行数据,具体运行结果如下表所示。
5.2.3 获取满足单一条件的行
有时候,我们不只是单纯地想要获取前几行,而是想要获取满足特定条件的某些行,比如,获取age列中等于18的所有行。
1. Excel实现
在Excel中,先给所有的列加上筛选框,然后要筛选哪一列就单击那一列的下拉箭头,接着选择“数字筛选”选项,因为age列是数字,所以选择“数字筛选”选项,如果要对文本列进行筛选,则会显示“文本筛选”选项,比如name列和class列。选择“数字筛选”选项以后,选择指定的筛选条件,此处选择“等于”,并勾选“18”复选框。
2. SQL实现
在SQL中,我们可以利用where来指定具体的条件,把具体的条件放在where后面即可。比如,我们要获取chapter5表中age列等于18对应的行,可以通过如下代码实现:
select * from demo.chapter5 where age = 18
运行上面的代码,就可以获取到age列等于18的行,具体运行结果如下表所示。
5.2.4 获取满足多个条件的行
有时候,一个条件可能不能满足我们的需求,需要同时用多个条件来进行限制,比如,我们要获取age列等于18且class列等于一班的所有行。
1. Excel实现
在Excel中,如果我们要对多个列进行筛选,则先筛选一列,然后通过单击其他列的下拉箭头对其他列进行筛选。其实就是将单条件查询重复多遍。
2. SQL实现
在SQL中,我们可以直接在where后面用逻辑符来连接多个条件,比如,我们要获取chapter5表中age列等于18且class列等于一班的所有行,可以通过如下代码实现:
select * from demo.chapter5 where age = 18 and class = "一班"
运行上面的代码,具体运行结果如下表所示。
上面是以两个条件为例的,也可以使用多个条件,多个条件之间还是直接用逻辑符连接即可。逻辑符除了用and,还可以用or,表示两个或者多个条件中只要有一个条件满足即可。比如,我们要获取chapter5表中age列等于18或class列等于一班的所有行,可以通过如下代码实现:
select * from demo.chapter5 where age = 18 or class = "一班"
运行上面的代码,就会把所有age列等于18或class列等于一班的所有行获取出来,具体运行结果如下表所示。
在上面的代码中,关于where后面的比较运算符我们只用了等于,还有更多的比较运算符可以用,比如,大于、小于、介于等,后续章节会详细讲述。