MySQL SELECT 语句

如何编写带有示例的 MySQL SELECT 语句?它用于从数据库中的一个或多个表中检索数据。为了解释 SELECT 语句,我们将使用随安装提供的 world 数据库。

SELECT 语句语法可以写成

-- Syntax
SELECT [ColumnName1], [ColumnName2]....,[ColumnNameN]
FROM Source;
  • 列名:根据需求从表中选择列。可以是一个或多个。
  • 来源:从数据库中选择一个或多个表。JOIN 用于连接多个表。

MySQL SELECT 语句示例

您可以使用 SELECT 语句检索行而不引用。例如,以下语句将返回 2 作为输出。

SELECT 1+1;

在上述情况下,MySQL 允许您使用 DUAL 作为虚拟表名。这只是一个选项。

SELECT  1+1 FROM DUAL;
1 + 1 Query 2

MySQL SELECT * 所有列

在此示例中,我们将使用星号 (*) 选择 country 表中所有存在的列。在 SELECT 语句中,* 是表示源表中所有可用列的快捷方式。请记住,USE world 将把默认数据库更改为 world。

USE world;
SELECT * 
  FROM country;

或者您也可以尝试在表名前使用模式名。

SELECT * FROM world.country;
MySQL SELECT * Statement 3

即使您想检索表中所有列,也请不要在实际情况中使用 SELECT * FROM 语句。

MySQL SELECT * 语句的问题

  • 它从指定的表中检索所有列。大多数情况下,我们并不需要所有列。
  • 它以默认顺序检索列。有时我们可能需要在显示列时更改列的顺序。
  • 如果对底层表进行任何更改(重新排序列、添加或删除列),将不会反映使用 * 创建的视图。

理想的方法是将所有(或所需)列名放在 SELECT 关键字之后。例如,上述语句可以重写为

USE world;
SELECT Code, Name, Continent, Region, 
       SurfaceArea, IndepYear, Population, LifeExpectancy, 
       GNP, GNPOld, LocalName, GovernmentForm, 
       HeadOfState, Capital, Code2       
FROM country;
SELECT Statement With all columns 4

MySQL SELECT 语句选择部分列

在实际中,选择表中所有现有列的情况并不常见。这是因为会有一些列,例如 ID、条形码、修改日期、行 GUID、照片等,这些列可能不需要。

为此,SELECT 语句允许我们从表中选择少量或任何特定列。我们可以通过放置所需的列名,后跟关键字来完成此操作。

USE world;
SELECT Name,
       Continent,
       Region,
       SurfaceArea,
       Population        
FROM country;
SELECT Few Columns Statement 5

注意:如果您忘记在列之间放置逗号,它会将第二列视为第一列的别名。所以,请务必小心。

使用 Workbench GUI 的 MySQL SELECT 语句

如果您不了解语法或不想编写查询,则可以使用 Workbench Intellisense 为您编写 SELECT 语句。

为此,首先导航到所需的数据库(在架构下)并选择所需的表。右键单击表将打开带有不同选项的上下文菜单。请选择“选择行 - 限制 1000”。这里的限制值取自查询窗口

SELECT Statement Rows Limit 1000 option

此选项将为我们生成 SELECT 语句。

Shows all the records in a country table 7

注意:如果您想查看所有记录,请将查询窗口中“限制 1000 行”更改为“不限制”选项。

MySQL Select 语句命令行示例

在此示例中,我们将在命令行中编写一个 select 语句,以从 country 表中选取几列。

SELECT Code, Name, Continent, Region, 
       SurfaceArea, Population, Capital
FROM country;

需要记住的要点

  • 它返回表中所有存在的记录。如果您想限制行,请使用 WHERE 子句。
  • 请避免使用 SELECT * 来选择所有列名。
  • 使用 JOINS 从多个表中操作。