SQL语句学习精要:查询与分组操作

需积分: 10 1 下载量 167 浏览量 更新于2024-09-13 收藏 113KB PDF 举报
"SQL语句学习指南提供了基础到进阶的SQL知识,适合初学者掌握数据库查询技能。本文将详细解析SQL语句中的关键概念和操作,包括显示列名、精确查找、时间类型变量处理、集函数以及分组查询等核心功能。" 在SQL语句中,显示列名可以通过两种方式实现。第一种是使用`AS`关键字,如`SELECT name AS '姓名' FROM students ORDER BY age`,这将把`name`列重命名为"姓名"。第二种方法是直接在查询中指定别名,如`SELECT name '姓名' FROM students ORDER BY age`,效果与第一种相同。 精确查找是SQL查询中的基本操作。`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`可以配合通配符`%`和`_`,如`'%李%'`表示查找任何包含"李"的名称,`'_李%'`表示第二字符为"李"的名称。 处理时间类型变量时,SQL使用日期和时间函数。例如,`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`,将返回各年级、各专业和性别的学生人数。注意,`GROUP BY`后的列必须与聚合函数(如`COUNT`)配合使用,确保结果的正确性。