where条件表达式–统计函数 代码如下:Select count(1) from student;–like模糊查询–统计班上姓张的人数 代码如下:select count(*) from student where realName like ‘张%’;–统计班上张姓两个字的人数 代码如下:select count(*) from student where realName like ‘张_’;–统计班上杭州籍的学生人数 代码如下:select count(*) from student where home like ‘%杭州%’;–查询班上每位学生的年龄 代码如下:select re
在SQL中,数据查询语句是数据库操作的核心,主要用于从数据表中检索所需的信息。以下是一些关于SQL查询的关键知识点:
1. **WHERE条件表达式**:WHERE子句用于筛选满足特定条件的记录。例如,`SELECT count(1) FROM student` 统计了表student中的记录总数。
2. **统计函数**:SQL提供了如COUNT(), AVG(), SUM(), MAX(), MIN()等统计函数。`SELECT count(*) FROM student WHERE realName LIKE '张%'` 将返回姓张的学生数量。
3. **LIKE模糊查询**:LIKE关键字用于进行模式匹配。`LIKE '张_'` 匹配名字为两个字且第一个字是"张"的学生,而`LIKE '%杭州%'` 查找籍贯包含"杭州"的学生。
4. **年龄计算**:通过计算当前年份(YEAR(NOW()))与生日年份(YEAR(birthday))的差值,可以得到学生的年龄,如`SELECT realName, YEAR(NOW()) - YEAR(birthday) AS age FROM student`。
5. **BETWEEN运算符**:用于指定一个范围,`SELECT realName FROM student WHERE year(birthday) BETWEEN '1987' AND '1990'` 查询1987年至1990年间出生的学生。
6. **IN子句**:用于检查列值是否在指定的列表中,例如`SELECT realName, blood FROM student WHERE blood IN('B', 'O')` 查找B或O型血的学生。
7. **子查询**:子查询可以在主查询内部,返回单行或多行结果。单行子查询如`(SELECT sal FROM emp WHERE ename='ALLEN' OR ename='KING')`,多行子查询可以使用ANY, ALL或SOME操作符。
8. **连接语句(JOIN)**:
- **INNER JOIN**:只返回两个表中匹配的记录,例如`SELECT a.realname, c.courseName, b.score FROM stu_student AS a INNER JOIN stu_score AS b ON a.sid = b.sid INNER JOIN stu_course AS c ON b.cid = c.cid`。
- **LEFT OUTER JOIN**:返回左表的所有记录以及右表匹配的记录,如`SELECT a.realname, b.score FROM stu_student AS a LEFT OUTER JOIN stu_score AS b ON a.sid = b.sid`。
- **RIGHT OUTER JOIN**:与LEFT JOIN相反,返回右表的所有记录以及左表匹配的记录。
9. **GROUP BY和聚合函数**:用于按一个或多个列对结果集进行分组,常与聚合函数一起使用,如`SELECT sex, COUNT(*) FROM student GROUP BY sex` 计算男女生人数。
10. **ORDER BY**:用于对查询结果进行排序,如`SELECT * FROM student ORDER BY birthday DESC` 按生日降序排列。
这些基本的SQL查询语句是数据查询的基础,熟练掌握它们可以帮助你在处理数据库时更加高效。在实际应用中,你可能需要结合实际需求,灵活运用这些语句进行更复杂的查询。例如,你可以使用JOIN来合并多个表的数据,使用子查询来解决复杂的问题,或者使用聚合函数和GROUP BY进行数据分析。了解并熟练掌握这些概念,将有助于提升你在IT领域的专业能力。