随笔分类 -  数据库sql

摘要:题目:查询各科成绩最高分、最低分和平均分: 以如下形式显示:课程 ID,课程 name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率 及格为>=60,中等为:70-80,优良为:80-90,优秀为:>=90 要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列 分 阅读全文
posted @ 2019-08-13 18:55 初学者,方圆几里 阅读(16635) 评论(2) 推荐(0) 编辑
摘要:题目:按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩 分析:第一步应该是拿到平均分 拿到平均分后 再怎么拿学生 课程 和成绩呢? left join 一下吧 sql: 如下: SELECT student_score.*, a FROM student_score LEFT JOIN ( 阅读全文
posted @ 2019-08-12 16:01 初学者,方圆几里 阅读(8226) 评论(0) 推荐(0) 编辑
摘要:题目:检索" 01 "课程分数小于 60,按分数降序排列的学生信息 分析:按分数降序排列 应该是要用 order by 关键字 降序: desc 升序:asc 我以前的写的想法是: 先查处01 "课程分数小于 60 然后 order by 分数 desc 再去关联student 表 SELECT s 阅读全文
posted @ 2019-08-12 14:33 初学者,方圆几里 阅读(3997) 评论(1) 推荐(0) 编辑
摘要:题目:查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩 分析:这个我想了半天,我的局限思维是一直在学生分数表 student_score 表中直接 分组 group by ,再去筛选分数 可以先筛选分数再 分组 并having count sql 于下: select student.id, 阅读全文
posted @ 2019-08-09 17:45 初学者,方圆几里 阅读(11549) 评论(0) 推荐(1) 编辑
摘要:报错日志: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘sss.month_id’ which is not functionally dependent on c 阅读全文
posted @ 2019-08-09 17:12 初学者,方圆几里 阅读(1159) 评论(0) 推荐(0) 编辑
摘要:题目:查询没学过"张三"老师讲授的任一门课程的学生姓名 分析:这个题目跟之前的题目很相似,思路是先查出 学过"张三"老师讲授的任一门课程的学生姓名,然后再反向查 学过"张三"老师讲授的任一门课程的学生姓名? 先找"张三"老师 的teacher id 通过 teacher id 找到对应的课程,然后在 阅读全文
posted @ 2019-08-09 15:48 初学者,方圆几里 阅读(8079) 评论(0) 推荐(0) 编辑
摘要:题目:查询至少有一门课与学号为" 01 "的同学所学相同的同学的信息 分析:我们可以先在student_score 表中 查找学号为01 的学生的学习记录,然后再查所有记录的course in 里面 就得到一个具有学生id的结果集,在查学生信息表,拿到学生信息 于是sql 有: SELECT * F 阅读全文
posted @ 2019-08-09 14:56 初学者,方圆几里 阅读(8407) 评论(0) 推荐(1) 编辑
摘要:题目:查询没有学全所有课程的同学的信息 分析:没有学全? 意思是我是不是可以这样想:student_score 我以用户id 进行分组,然后拿到每个用户的课程id count < 课程 student_course 的count 总数 就算是 没有学全,于是sql来了 SELECT student. 阅读全文
posted @ 2019-08-09 14:07 初学者,方圆几里 阅读(7986) 评论(1) 推荐(0) 编辑
摘要:题目:查询学过「张三」老师授课的同学的信息 分析:根据表的存储结构,我们应该是这样来拿到用户信息的:先查teacher 表 拿到 【张三】老师的teacher_id, 然后在student_course 表中 根据teacher_id 拿到「张三」老师 教的是哪门课程,拿到course_id,然后再 阅读全文
posted @ 2019-08-09 11:35 初学者,方圆几里 阅读(9599) 评论(2) 推荐(0) 编辑
摘要:题目:查询「李」姓老师的数量 分析:查询 【李】姓老师 要用到关键字 like,关键字 like 上篇已经讲过,然后求数量,直接count 阅读全文
posted @ 2019-08-09 10:45 初学者,方圆几里 阅读(6078) 评论(0) 推荐(0) 编辑
摘要:like: like一般用在 where 表达式中,已搜索匹配子弹中的指定内容 like 通常与通配符 % 一起使用,%表示通配pattern中出现的内容,而不加通配符%的LIKE语法,表示精确匹配,其实际效果等同于 = 等于运算符 举例:查询姓李的老师,这是使用了通配符 不使用通配符,表示精准查找 阅读全文
posted @ 2019-08-09 10:38 初学者,方圆几里 阅读(1517) 评论(0) 推荐(0) 编辑
摘要:题目:查询所有同学的学生编号、学生姓名、选课总数、所有课程的成绩总和 分析:看到总数 应该是要用count(course) ,成绩总和 应该是sum(score) 这些聚合函数,因为要知道每个人的 因此要以人分组 group by studentid 因为要知道学生的详细信息,因此要join on 阅读全文
posted @ 2019-08-08 19:11 初学者,方圆几里 阅读(13474) 评论(0) 推荐(0) 编辑
摘要:题目:查询在 SC 表存在成绩的学生信息 分析:查询在 SC 表存在成绩的学生? 是值在 SC 表有记录的学生id 都算吗? 我这里理解的是在 SC 表中分数不为0 的学生id 方法一:比较直接的想法 在 SC 表中查到分数不为0 的学生 去重,然后再join 下student 表 SELECT a 阅读全文
posted @ 2019-08-08 18:47 初学者,方圆几里 阅读(7203) 评论(0) 推荐(0) 编辑
摘要:题目:查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩 这里提到平均分 ,要用到avg 按照学生分组,再求平均分,这里应该是考察group by 与聚合函数的使用 大于60分应该是按照分组后筛选的结果要用having group by 与聚合函数 having 的使用 上篇博客已经 阅读全文
posted @ 2019-08-08 18:04 初学者,方圆几里 阅读(21400) 评论(4) 推荐(0) 编辑
摘要:一、分组概念:它将一组行记录按列或表达式的值分组成摘要行记录 二、使用语法: GROUP BY 子句必须在 FROM 和 WHERE 子句后出现 三、经常再聚合函数中使用:如:SUM, AVG, MAX, MIN, 和 COUNT 四、要筛选由 GROUP BY 子句返回分组行,要使用: HAVIN 阅读全文
posted @ 2019-08-08 17:44 初学者,方圆几里 阅读(805) 评论(0) 推荐(0) 编辑
摘要:1、准备了50道 练习sql的题目,今天就开始练习了 : 首先 我们介绍所有表的结构,后面练习就已这些表开展 学生 student 表: create table Student(id varchar(10),stdentname varchar(10),age datetime, sex varc 阅读全文
posted @ 2019-08-08 16:00 初学者,方圆几里 阅读(2705) 评论(0) 推荐(1) 编辑
摘要:一:一直在接触 left join 和 right join ,一直没搞懂有什么区别,今天就普及一下 1、right join,在两张表进行连接查询时,会返回右表所有的行,即使在左表中没有匹配的记录 2.left join,在两张表进行连接查询时,会返回左表所有的行,即使在右表中没有匹配的记录。 j 阅读全文
posted @ 2019-08-08 15:23 初学者,方圆几里 阅读(1959) 评论(0) 推荐(0) 编辑
摘要:最近接到一个需求: 以前未读消息数量接口按照创建时间查 创建时间非索引 ,现在要优化一下 因此要为message_recode 表中的created_time增加索引 百度一下: 这里我们选择 普通索引 ALTER TABLE `table_name` ADD INDEX index_name ( 阅读全文
posted @ 2019-05-08 16:05 初学者,方圆几里 阅读(3859) 评论(0) 推荐(0) 编辑
摘要:我想知道 我查询出来的结果集 的条数 用count(*) 工作中 用到: 结果集:有这么多条,我想知道有多少条? 用count后: SELECT COUNT(*) FROM `coupon_store` WHERE coupon_rule_id =284; 阅读全文
posted @ 2019-03-13 15:43 初学者,方圆几里 阅读(211) 评论(0) 推荐(0) 编辑