SQL

SQL 知识量:22 - 44 - 129

4.1 where子句><

使用where子句- 4.1.1 -

在数据库中查询数据通常根据特定条件进行,很少需要查询表中所有行。如果只查询所需数据就需要指定查询条件,查询条件也称为过滤条件。在select语句中,通过where子句来指定过滤条件。

例如:查询年龄为10的学生信息。

select * from student where age=10;

查询结果:

+----+-------+-----+--------+
| id | name  | age | sex    |
+----+-------+-----+--------+
|  4 | Robot |  10 | male   |
|  6 | Toney |  10 | male   |
|  8 | Alice |  10 | female |
+----+-------+-----+--------+

以上查询语句中,age=10指定了学生的年龄必须等于10。

where子句的位置- 4.1.2 -

在select语句中,where子句必须位于from子句之后。如果同时使用order by子句进行排序,那么必须让order by子句位于where子句之后。

例如:查询年龄为10的学生信息,按姓名升序排序。

select * from student where age=10 order by name;

查询结果:

+----+-------+-----+--------+
| id | name  | age | sex    |
+----+-------+-----+--------+
|  8 | Alice |  10 | female |
|  4 | Robot |  10 | male   |
|  6 | Toney |  10 | male   |
+----+-------+-----+--------+

SQL过滤与应用过滤- 4.1.3 -

除了在SQL语句中使用where子句对数据进行过滤以外,也可以先查询出超出所需要的数据(例如:全部数据),然后在应用中(例如:客户端程序)对查询出的数据进行加工,过滤出真正需要的数据。在SQL中过滤数据称为SQL过滤,在应用中过滤数据就是应用过滤。

通常不推荐使用应用过滤,因为DBMS本来就被设计为善于进行数据处理,当然包括过滤数据,SQL过滤的效率是非常高的,而使用应用过滤会极大的影响应用的性能,针对特定查询结果编程也没有可伸缩性,同时需要网络传输多余数据,无疑是非常不明智的。