【译】MySQL基础教程-04-使用MySQL SELECT语句查询数据

阿里云-轻量应用服务器

MySQL SELECT语句简介

SELECT语句允许您从表或视图中获取数据。表格包含行和列,如电子表格。通常,您希望查看子集行,列的子集或两者的组合。该SELECT语句的结果称为结果集,它是一个行列表,每个行包含相同数量的列。

请参阅示例数据库中的下employees表。它有八列:员工编号,姓氏,名字,分机,电子邮件,办公室代码,报告,职位和许多行。

MySQL员工表

SELECT语句控制您要查看的列和行。例如,如果您只对所有员工的名字,姓氏和职位感兴趣,或者您只想查看其职位是销售代表的每位员工的信息,则该SELECT语句可帮助您执行此操作。

我们来看看SELECT语句的语法:

SELECT声明由以下列表中解释的若干条款组成:

  • SELECT后跟逗号分隔列或星号(*)列表,表示您要返回所有列。
  • FROM指定要查询数据的表或视图。
  • JOIN根据特定的连接条件从其他表中获取相关数据。
  • WHERE子句过滤结果集中的行。
  • GROUP BY  子句将一组行分组到组中,并在每个组上应用聚合函数
  • HAVING子句根据GROUP BY子句定义的组过滤组。
  • ORDER BY  子句指定用于排序的列的列表。
  • LIMIT约束返回的行数。

声明中要求使用SELECTFROM条款。其他部分是可选的。

您将在后续教程中更详细地了解每个子句。在本教程中,我们将重点关注SELECT语句的基本形式。

MySQL SELECT语句示例

SELECT语句允许您通过在SELECT子句中指定逗号分隔列的列表来查询表的部分数据。例如,如果您只想查看员工的名字,姓氏和职位,则使用以下查询:

试试看

即使  employees表有很多列,该SELECT语句只返回表中所有行的三列数据,如下图所示:

MySQL员工表列

MySQL SELECT列示例

如果要获取表中所有列的数据employees,可以列出SELECT子句中的所有列名。或者您只需使用星号(*)表示您希望从表的所有列获取数据,如下面的查询:

试一试它
返回表中的所有列和行employees

您应该使用星号(*)进行测试。实际上,您应该列出要明确获取数据的列,原因如下:

  • 星号(*)返回您可能不使用的列中的数据。它在MySQL数据库服务器和应用程序之间产生不必要的I / O磁盘和网络流量。
  • 如果明确指定列,则结果集更易于预测且更易于管理。想象一下,当您使用星号(*)并且有人通过添加更多列来更改表时,您将得到与您预期的结果集不同的结果集。
  • 使用星号(*)可能会将敏感信息暴露给未经授权的用户。