2024-11 小猿搜题 入门

我发誓:每一道题目都不超过如下知识点,你不需要去其他地方搜索零散的知识点。

如果超过了,就让凤姐和乔碧萝殿下蹂躏我一百次直至摇摇欲坠。

SQL跟初中数学一样,记忆概念、用法是没卵用的。

能灵活应用才是王道。

====================================================================================================

任务:找出所有第一学历为北京大学或清华大学的班主任教师的信息,包括教师的姓名、科目、班级代码和职称,并按教师姓名升序排列。

====================================================================================================

单张表条件过滤知识点

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的学生。

经典-学生表课程表 Week8打卡 or and in null

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
任伊乐 语文 C220C221C222C223C224 Senior
吕敏 数学 C220C221C222 Senior
宋慧乔 英语 C220C221C222 Class1
李招建 英语 C218C219C223C224C217 Class1
李敏 数学 C218C219C217 Senior
李麦克 地理 C221C222C223C224 null
赵娇娇 语文 C218C219C217 Senior
陈佳蔬 数学 C223C224 null

ID190 条件过滤-没有职称的老教师
入门 and null < 经典-学生表课程表 小猿搜题
ID240 中字头上市企业  
简单 or and like count in 字符串处理 聚合函数 股市浅探 中金财富
ID278 性别已知的听歌用户
草履虫 or and >= <= Week2打卡 QQ音乐
ID287 找出三个班级的女生
入门 or in = 经典-学生表课程表 小猿搜题
ID349 不经过第二象限的所有函数
草履虫 or and >= <= = Week9打卡 初中数学常识 作业帮

 点击下方空白区域即可查看参考答案

MySQL 8.0

00:00