我发誓:每一道题目都不超过如下知识点,你不需要去其他地方搜索零散的知识点。
如果超过了,就让凤姐和乔碧萝殿下蹂躏我一百次直至摇摇欲坠。
SQL跟初中数学一样,记忆概念、用法是没卵用的。
能灵活应用才是王道。
====================================================================================================
任务:找出所有教授数学且具有高级职称(senior)的教师的信息,包括教师的姓名、科目、班级代码和职称,并按教师姓名升序排列。
====================================================================================================
单张表条件过滤知识点
1. 多条件筛选
- 使用 AND逻辑运算符- 示例:SELECT * FROM students WHERE gender = 'm' AND birth_date BETWEEN '2000-01-01' AND '2000-12-31';查找2000年出生的男生。
 
- 示例:
- 使用 OR逻辑运算符- 示例:SELECT * FROM students WHERE gender = 'm' OR gender = 'f';查找所有男生和女生。
 
- 示例:
- 使用 IN子句- 示例:SELECT * FROM students WHERE class_code IN ('C101', 'C102', 'C103');查找在 C101, C102, C103 班级的学生。
 
- 示例:
2. 范围筛选
- 使用 BETWEEN关键字- 示例:SELECT * FROM students WHERE birth_date BETWEEN '2000-01-01' AND '2000-12-31';查找2000年出生的学生。
 
- 示例:
- 使用 >=和<=进行范围筛选- 示例:SELECT * FROM students WHERE score >= 80 AND score <= 90;查找成绩在80到90之间的学生。
 
- 示例:
3. 模式匹配
- 使用 LIKE和通配符(%和_)- 示例:SELECT * FROM students WHERE name LIKE 'A%';查找名字以 'A' 开头的学生。
- 示例:SELECT * FROM students WHERE name LIKE '_e%';查找名字第二个字符为 'e' 的学生。
 
- 示例:
- 使用 REGEXP或RLIKE进行正则表达式匹配- 示例:SELECT * FROM students WHERE name REGEXP '^A';查找名字以 'A' 开头的学生。
 
- 示例:
4. 空值处理
- 使用 IS NULL- 示例:SELECT * FROM teachers WHERE qualification IS NULL;查找没有职称的教师。
 
- 示例:
- 使用 IS NOT NULL- 示例:SELECT * FROM teachers WHERE qualification IS NOT NULL;查找有职称的教师。
 
- 示例:
5. 字符串处理
- 使用 UPPER- 示例:SELECT UPPER(name) FROM students;查找所有学生的姓名并转换为大写。
 
- 示例:
- 使用 LOWER- 示例:SELECT LOWER(name) FROM students;查找所有学生的姓名并转换为小写。
 
- 示例:
- 使用 LENGTH- 示例:SELECT LENGTH(name) FROM students;查找所有学生的姓名长度。
 
- 示例:
- 使用 SUBSTRING- 示例:SELECT SUBSTRING(name, 1, 3) FROM students;查找所有学生的姓名前三个字符。
 
- 示例:
- 使用 REPLACE- 示例:SELECT REPLACE(name, 'A', 'B') FROM students;查找所有学生的姓名并将 'A' 替换为 'B'。
 
- 示例:
6. 日期处理
- 使用 YEAR- 示例:SELECT YEAR(birth_date) FROM students;查找所有学生的出生年份。
 
- 示例:
- 使用 MONTH- 示例:SELECT MONTH(birth_date) FROM students;查找所有学生的出生月份。
 
- 示例:
- 使用 DAY- 示例:SELECT DAY(birth_date) FROM students;查找所有学生的出生日。
 
- 示例:
- 使用 DATE_FORMAT- 示例:SELECT DATE_FORMAT(birth_date, '%Y-%m-%d') FROM students;查找所有学生的出生日期并格式化为 'YYYY-MM-DD'。
 
- 示例:
7. 数值比较
- 使用 >- 示例:SELECT * FROM students WHERE score > 80;查找成绩大于80的学生。
 
- 示例:
- 使用 <- 示例:SELECT * FROM students WHERE score < 80;查找成绩小于80的学生。
 
- 示例:
- 使用 >=- 示例:SELECT * FROM students WHERE score >= 80;查找成绩大于等于80的学生。
 
- 示例:
- 使用 <=- 示例:SELECT * FROM students WHERE score <= 80;查找成绩小于等于80的学生。
 
- 示例:
students,学生表
| student_id | name | class_code | grade_code | birth_date | residence | gender | 
|---|---|---|---|---|---|---|
| 100611 | 姜建华 | C219 | S3 | 2009-01-15 | 城镇 | m | 
| 102890 | 韩辉 | C223 | S3 | 2009-10-26 | 农村 | m | 
| 105684 | 李丽丽 | C219 | S3 | 2009-03-28 | 城镇 | m | 
| 110591 | 李华 | C223 | S1 | 2008-05-31 | 农村 | m | 
| 110611 | 王桂珍 | C218 | S3 | 2008-06-04 | 城镇 | m | 
scores,成绩表
分数可能为Null
| student_id | subject | score | exam_date | 
|---|---|---|---|
| 358575 | 生物 | 29 | 2024-06-30 | 
| 735011 | 语文 | 37 | 2024-03-30 | 
| 597305 | 历史 | 67 | 2024-03-30 | 
| 921856 | 数学 | 76 | 2024-04-27 | 
| 455713 | 化学 | 77 | 2024-06-30 | 
teachers,教师表
如第一行,赵娇娇教学C218、C219、C217三个班级的语文,是C217班的班主任
| teacher_id | name | subject | class_code | head_teacher | degree | graduate_date(毕业日期) | enter_date(入校日期) | gender | qualification(职称) | fir_degr(第一学历) | mst_degr(研究生学历) | 
|---|---|---|---|---|---|---|---|---|---|---|---|
| t001 | 赵娇娇 | 语文 | C218C219C217 | C217 | master | 2010-06-30 | 2010-07-30 | f | Senior | 北京大学 | 北京大学 | 
| t002 | 任伊乐 | 语文 | C220C221C222C223C224 | C220 | master | 2010-06-30 | 2010-07-30 | f | Senior | 北京大学 | 清华大学 | 
| t003 | 李敏 | 数学 | C218C219C217 | C218 | master | 1994-06-30 | 1994-07-30 | f | Senior | 北京大学 | 复旦大学 | 
| t004 | 吕敏 | 数学 | C220C221C222 | C221 | phd | 1995-06-30 | 1995-07-30 | f | Senior | 北京大学 | 清华大学 | 
| t005 | 陈佳蔬 | 数学 | C223C224 | C223 | master | 2010-06-30 | 2010-07-30 | f | null | 北京大学 | 北京大学 | 
university,大学信息表
| name | is_985 | times_rnk(泰晤士2024全球排名) | 
|---|---|---|
| King's College London | 0 | 34 | 
| National University of Singapore,NUS | 0 | 24 | 
| Singapore Polytechnic | 0 | null | 
| 上海交通大学 | 1 | 113 | 
| 北京大学 | 1 | 16 | 
| name | subject | class_code | qualification | 
|---|---|---|---|
| 吕敏 | 数学 | C220C221C222 | Senior | 
| 李敏 | 数学 | C218C219C217 | Senior | 
 点击下方空白区域即可查看参考答案
MySQL 8.0