我发誓:每一道题目都不超过如下知识点,你不需要去其他地方搜索零散的知识点。
如果超过了,就让凤姐和乔碧萝殿下蹂躏我一百次直至摇摇欲坠。
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