T-SQL

T-SQL 知识量:16 - 67 - 243

7.1 数据的简单查询><

查询表中的全部数据- 7.1.1 -

要查询表中的全部数据,可以使用T-SQL的SELECT语句。以下是一个示例,演示了如何查询名为Employees表中的全部数据:

SELECT * FROM Employees;

上述语句将返回Employees表中的所有列和行。SELECT语句中的星号(*)表示选择所有列。

查询表中的指定数据- 7.1.2 -

要查询表中的指定数据,可以选择特定的列而不是使用星号(*)来选择所有列。例如:

SELECT FirstName, LastName FROM Employees;

上述语句将只返回Employees表中FirstName和LastName列的数据。

使用TOP关键字查询- 7.1.3 -

T-SQL中的TOP关键字用于限制查询结果返回的行数。它通常与SELECT语句一起使用,以确保只返回指定数量的行。

以下是一个使用TOP关键字进行查询的示例:

SELECT TOP 10 * FROM Employees;

上述语句将返回Employees表中前10行的所有列数据。可以根据需要将10替换为任何其他数字,以指定要返回的行数。

如果只想选择特定的列而不是所有列,可以将星号(*)替换为列名列表,用逗号分隔。例如:

SELECT TOP 10 FirstName, LastName FROM Employees;

上述语句将返回Employees表中前10行的FirstName和LastName列的数据。

查询的列为表达式- 7.1.4 -

在T-SQL中,可以在SELECT语句中使用表达式来选择列。表达式可以是列的算术运算、字符串连接、函数调用等。以下是一个示例,演示了如何在T-SQL查询中使用表达式来选择列:

SELECT FirstName + ' ' + LastName AS FullName, Salary * 12 AS AnnualSalary    
FROM Employees;

上述查询从Employees表中选择FirstName在T和LastName列,并将它们连接起来作为FullName列返回。同时,它还计算Salary列的12倍作为AnnualSalary列返回。

对查询结果排序- 7.1.5 -

在T-SQL中,可以使用ORDER BY子句对查询结果进行排序。ORDER BY子句用于根据一个或多个列对结果集进行排序。

以下是一个使用ORDER BY子句对查询结果进行排序的示例:

SELECT * FROM Employees    
ORDER BY Department ASC;

上述语句将返回Employees表中的所有列数据,并根据Department列进行升序排序。如果想按降序排序,可以使用DESC关键字。

如果想根据多个列进行排序,可以在ORDER BY子句中指定多个列名,列名之间使用逗号分隔。例如:

SELECT * FROM Employees    
ORDER BY Department ASC, Salary DESC;

上述语句将首先根据Department列进行升序排序,然后在每个部门内根据Salary列进行降序排序。

注意:ORDER BY子句应该放在SELECT语句的末尾,以确保在查询结果返回之前进行排序。

对查询结果分组- 7.1.6 -

在T-SQL中,可以使用GROUP BY子句对查询结果进行分组。GROUP BY子句用于将结果集按照一个或多个列进行分组,以便可以对每个组执行聚合操作。

以下是一个使用GROUP BY子句对查询结果进行分组的示例:

SELECT Department, COUNT(*) AS NumberOfEmployees    
FROM Employees    
GROUP BY Department;

上述语句将返回Employees表中的Department列的分组数据,并对每个组计算员工数量。通过GROUP BY子句,将数据按照Department列进行分组,并使用COUNT函数计算每个组中的行数。

除了COUNT函数之外,还可以使用其他聚合函数,如SUM、AVG、MAX和MIN等,来对每个组进行聚合操作。

注意:在使用GROUP BY子句时,SELECT语句中只能包含分组列和聚合函数。如果需要选择其他列,可以使用聚合函数或其他表达式进行处理。

对分组结果过滤查询- 7.1.7 -

在T-SQL中,可以使用HAVING子句对分组结果进行过滤查询。HAVING子句用于对GROUP BY子句生成的分组结果进行过滤。

以下是一个使用HAVING子句对分组结果进行过滤查询的示例:

SELECT Department, COUNT(*) AS NumberOfEmployees    
FROM Employees    
GROUP BY Department    
HAVING COUNT(*) > 5;

上述语句将返回Employees表中Department列的分组数据,并对每个组计算员工数量。然后,HAVING子句使用COUNT函数和比较运算符来过滤出员工数量大于5的部门。

除了COUNT函数之外,还可以在HAVING子句中使用其他聚合函数或其他表达式来进行过滤。

请注意:HAVING子句必须放在GROUP BY子句之后,以确保在过滤分组结果之前先进行分组。