今天我们主要学习如何使用 SQL 检索数据。如果你已经有了一定的 SQL 基础,这节课可以跳过,也可以把它当做是个快速的复习。
SELECT 可以说是 SQL 中最常用的语句了。你可以把 SQL 语句看作是英语语句,SELECT 就是 SQL 中的关键字之一,除了 SELECT 之外,还有 INSERT、DELETE、UPDATE 等关键字,这些关键字是 SQL 的保留字,这样可以很方便地帮助我们分析理解 SQL 语句。我们在定义数据库表名、字段名和变量名时,要尽量避免使用这些保留字。
SELECT 的作用是从一个表或多个表中检索出想要的数据行。今天我主要讲解 SELECT 的基础查询,后面我会讲解如何通过多个表的连接操作进行复杂的查询。
在这篇文章中,你需要重点掌握以下几方面的内容:
SELECT 查询的基础语法;
如何排序检索数据;
什么情况下用SELECT*,如何提升 SELECT 查询效率?
SELECT 查询的基础语法
SELECT 可以帮助我们从一个表或多个表中进行数据查询。我们知道一个数据表是由列(字段名)和行(数据行)组成的,我们要返回满足条件的数据行,就需要在 SELECT 后面加上我们想要查询的列名,可以是一列,也可以是多个列。如果你不知道所有列名都有什么,也可以检索所有列。
我创建了一个王者荣耀英雄数据表,这张表里一共有 69 个英雄,23 个属性值(不包括英雄名 name)。
数据表中这 24 个字段(除了 id 以外),分别代表的含义见下图。
查询列
如果我们想要对数据表中的某一列进行检索,在 SELECT 后面加上这个列的字段名即可。比如我们想要检索数据表中都有哪些英雄。
SQL:SELECT name FROM heros
运行结果(69 条记录)见下图,你可以看到这样就等于单独输出了 name 这一列。
我们也可以对多个列进行检索,在列名之间用逗号 (,) 分割即可。比如我们想要检索有哪些英雄,他们的最大生命、最大法力、最大物攻和最大物防分别是多少。
SQL:SELECT name, hp_max, mp_max, attack_max, defense_max FROM heros
运行结果(69 条记录):
这个表中一共有 25 个字段,除了 id 和英雄名 name 以外,还存在 23 个属性值,如果我们记不住所有的字段名称,可以使用 SELECT * 帮我们检索出所有的列:
SQL:SELECT * FROM heros
运行结果(69 条记录):
我们在做数据探索的时候,SELECT *