SQL Server SELECT17 Mar 2025 | 5 分钟阅读 SQL Server 中的 SELECT 语句用于显示表中的所有或特定记录。 该语句允许我们根据需要提取记录,或检索表的所有记录。 SELECT 语句的需求数据库可以包含一个或多个表,每个表都以顺序方式存储我们的数据。 表中的数据以行和列的形式组织,类似于电子表格。 每行代表唯一的记录,每列代表表中的字段。 SQL Server 使用模式以逻辑方式排列表。 当我们从表中提取或获取所需数据时,我们使用以 SQL 语言编写的查询。 用于此类操作的最基本语句是 SELECT 语句。 语法以下语句说明了 SELECT 语句的最基本用法,用于从表中获取记录 如果我们想从表中获取所有列,我们使用以下语句 在此语法中,我们看到了以下参数 Column 或 *: 它指示我们要在结果集中获取的表的字段名称。 当需要获取所有列时,我们使用星号 (*)。 Table: 它指示我们要从中检索数据的表的名称。 我们可以列出多个表。 WHERE: 这是一个可选子句,用于根据给定条件过滤记录。 GROUP BY: 这是一个可选子句,用于根据单个或多个列对记录进行分组。 HAVING: 这是一个与 GROUP BY 子句一起使用的可选子句,仅返回条件为 TRUE 的那些行。 ORDER BY: 这是一个可选子句,用于按升序或降序排列表记录。 注意事项
SELECT 语句示例让我们通过几个示例来了解 SELECT 查询如何在 SQL Server 中工作。 假设我们有一个名为 "employee_info" 的表,其中包含以下数据 ![]() 示例 1: 假设我们只想从表中按排序方式获取一列(名称)。 我们可以使用以下语句获取此数据 执行该语句将获得以下只有一列的输出 ![]() 示例 2: 假设我们想要从表中以员工姓名排序的方式获取多个列。 我们可以使用以下语句获取此数据 执行该语句将获得以下输出,我们可以在其中看到员工的姓名、职业和薪水 ![]() 示例 3: 假设我们想要检索表的所有列数据。 在这种情况下,我们需要使用 select 语句编写所有列的名称,或者使用一个星号 (*) 符号代替列名。 指定所有列名称对用户来说不方便,因此我们通常使用星号 (*) 来检索所有列数据,并节省一些打字时间。 还可以用来检查我们不熟悉的表的列和数据。 这是查询 执行查询将显示以下输出,我们可以在其中看到表的所有列 ![]() 示例 4: 此示例将说明带有 WHERE 子句的 SELECT 语句。 WHERE 子句用于根据一个或多个列过滤数据。 以下查询将返回所有工作时间大于 10 的员工信息 执行该语句会显示以下输出 ![]() 示例 5: 此示例说明了带有 GROUP BY 子句的 SELECT 语句,该子句用于根据单个或多个列将行分组到组中。 以下语句显示了每种职业中的职业和员工人数,然后按升序对其进行排序 执行该语句将显示预期的结果 ![]() 示例 6: 此示例说明了带有 HAVING 子句的 SELECT 语句。 我们使用 HAVING 子句通过使用单个或多个列来过滤组。 需要注意的是,WHERE 子句过滤记录,而 HAVING 子句过滤组。 以下语句显示了每种职业中的职业和员工人数,该职业的员工人数超过一名,然后按升序对其进行排序 执行该语句将显示预期的结果 ![]() 示例 7: 此示例说明了带有 TOP 子句的 SELECT 语句。 TOP 子句显示表中有限数量的记录。 需要注意的是,我们必须指定 TOP 子句中返回多少行。 假设我们想要获取表的前三条记录。 为了获取此详细信息,我们使用如下查询 执行此查询将仅返回前三条记录,如下所示 ![]() 示例 8: 此示例说明了带有 JOIN 子句的 SELECT 语句。 我们使用 JOIN 子句从两个以上的表中获取数据。 我们将使用两个名为 "Student" 和 "Fee" 的表来演示此示例。 下图显示了两个表的数据 ![]() 假设我们想要获取已支付课程费用的学生信息。 在这种情况下,我们使用公共列 "admission_no" 作为连接条件,以从两个表中获取数据。 让我们执行以下语句以从两个表中获取所需的数据 执行命令将显示预期的结果 ![]() 结论本文将帮助我们详细了解 SELECT 语句,了解我们为什么使用它,以及如何在 SQL Server 中使用它来查询来自单个表以及多个表的数据。 |
我们请求您订阅我们的新闻通讯以获取最新更新。