SQL语句用于查询数据是数据库操作中最常见且重要的一部分。以下是一些查询数据的SQL语句示例,涵盖了不同的查询场景和技巧。
示例 1: 基本选择查询
查询Employees
表中的所有列和所有行。
SELECT * FROM Employees;
示例 2: 选择特定列
查询Employees
表中的EmployeeID
、FirstName
和LastName
列。
SELECT EmployeeID, FirstName, LastName FROM Employees;
示例 3: 使用WHERE子句进行条件筛选
查询Employees
表中DepartmentID
为5的所有员工的FirstName
和LastName
。
SELECT FirstName, LastName FROM Employees WHERE DepartmentID = 5;
示例 4: 使用ORDER BY对结果进行排序
查询Employees
表中所有员工的LastName
和FirstName
,并按LastName
升序排序。
SELECT LastName, FirstName FROM Employees ORDER BY LastName ASC;
如果想要按LastName
降序排序,可以使用DESC
关键字。
SELECT LastName, FirstName FROM Employees ORDER BY LastName DESC;
示例 5: 使用DISTINCT去除重复行
查询Employees
表中所有独特的DepartmentID
。
SELECT DISTINCT DepartmentID FROM Employees;
示例 6: 使用LIKE进行模糊查询
查询Employees
表中FirstName
以"J"开头的所有员工。
SELECT * FROM Employees WHERE FirstName LIKE 'J%';
其中%
是一个通配符,代表任意数量的字符。
示例 7: 使用AND、OR、NOT进行组合条件查询
查询Employees
表中DepartmentID
为5且Salary
大于50000的所有员工。
SELECT * FROM Employees WHERE DepartmentID = 5 AND Salary > 50000;
查询Employees
表中DepartmentID
为5或Salary
大于50000的所有员工。
SELECT * FROM Employees WHERE DepartmentID = 5 OR Salary > 50000;
查询Employees
表中DepartmentID
不为5的所有员工。
SELECT * FROM Employees WHERE NOT DepartmentID = 5;
示例 8: 使用聚合函数
查询每个部门的员工数量。
SELECT DepartmentID, COUNT(*) AS NumberOfEmployees FROM Employees GROUP BY DepartmentID;
这里,COUNT(*)
是一个聚合函数,用于计算每个分组中的行数,而GROUP BY
子句则根据DepartmentID
列的值将结果集分组。
示例 9: 使用子查询
查询薪资高于公司平均薪资的所有员工。
SELECT * FROM Employees
WHERE Salary > (
SELECT AVG(Salary) FROM Employees
);
在这个例子中,子查询(SELECT AVG(Salary) FROM Employees)
计算了公司所有员工的平均薪资,然后外部查询选择了薪资高于这个平均值的所有员工。