SQL查询技巧详解:从基础到高级

5星 · 超过95%的资源 需积分: 10 32 下载量 125 浏览量 更新于2024-09-17 收藏 113KB PDF 举报
"SQL语句学习指南,涵盖了SQL语句的基本操作,包括显示列名、精确查找、时间类型处理、集合函数以及分组查询等核心知识点。这份指南旨在帮助学习者掌握SQL查询的实用技巧。" 在SQL语句的学习中,首先会接触到如何在查询结果中显示列名。有两种方式:一是使用`AS`关键字,例如`SELECT name AS '姓名' FROM students ORDER BY age`,这将把`name`列重命名为"姓名";二是直接表示,如`SELECT name '姓名' FROM students ORDER BY age`,效果相同,但不推荐,因为标准SQL并不支持这种方式。 精确查找是SQL查询的基础,包括使用`IN`、`BETWEEN AND`、`=`、`LIKE`和匹配检查符。`IN`用于限定范围,如`SELECT * FROM students WHERE native IN ('湖南', '四川')`,这将返回籍贯为湖南或四川的学生。`BETWEEN AND`用于指定范围,如`SELECT * FROM students WHERE age BETWEEN 20 AND 30`,可获取年龄在20到30之间的学生。`=`用于等于比较,如`SELECT * FROM students WHERE name = '李山'`,将找到名字为"李山"的学生。`LIKE`用于部分匹配,如`SELECT * FROM students WHERE name LIKE '李%'`,将查找名字以"李"开头的所有学生。匹配检查符`LIKE`也可以配合通配符`[]`,如`SELECT * FROM courses WHERE cno NOT LIKE '[AC]%'`,表示不以"A"或"C"开头的课程。 处理时间类型变量时,例如`smalldatetime`类型,可以直接按字符串处理,如`SELECT * FROM students WHERE birth >= '1980-1-1' AND birth <= '1980-12-31'`,此查询将找出1980年出生的学生。 SQL集合函数用于对数据进行统计计算,如`COUNT`用于求和,`SELECT COUNT(*) FROM students`可得到学生总数。`AVG(column)`用于求平均值,如`SELECT AVG(mark) FROM grades WHERE cno = 'B2'`,将计算课程"B2"的平均分数。`MAX(column)`和`MIN(column)`分别用于求最大值和最小值。 最后,`GROUP BY`用于分组查询,例如`SELECT gender, COUNT(sno) FROM students GROUP BY gender`,这将显示每个性别的学生人数。如果需要多重分组,只需列出所有分组规则,如`SELECT year, major, gender, COUNT(sno) FROM students GROUP BY year, major, gender`,可以查询每届每个专业每个性别的学生人数。 通过这些基本操作,你可以有效地查询和分析数据库中的数据,为数据分析和业务决策提供支持。在实际应用中,还需要结合具体数据库系统(如MySQL, SQL Server, Oracle等)的特性,灵活运用这些SQL语句。