美文网首页zhaoyqiu的数据分析进阶之路1.0
【2020-06-13】mysql学习笔记(二)

【2020-06-13】mysql学习笔记(二)

作者: 喝奶茶不加奶茶 | 来源:发表于2020-06-13 17:28 被阅读0次

--mysql查询练习

首先准备表,
1、学生表student
2、课程表course
3、成绩表score
4、教师表teacher


在新的数据库selectest中创建四个表

添加数据完成后开始查询练习。
-- 1.查询student表中所有的记录


查询某个表中的所有记录

-- 2.查询student表中所有记录的s_name,s_sex和s_class列


查询某张表的部分记录

-- 3.查询教师所有的单位但是不重复的t_depart列
==distinct 排重==


先普通查询teacher表中的单位信息 使用关键词distint排除重复的关键词

-- 4.查询score表中成绩在60-80之间所有的记录(sc_degree)
==查询区间==
between ... and ...(between是包括边界点的)


查询某张表某个区间的值

或者
---直接使用运算符比较


-- 5.查询score表中成绩为85, 86, 或者88的记录(sc_degree)
---表示 或者关系的查询 in


同一类字段或的查询用in

-- 6.查询student表中'95031'班或者性别为'女'的同学记录
---or 表示或者


同一张表中不同字段用or

-- 7.以class降序查询student表中所有的记录
---升序asc、降序desc


按字段降序查询

-- 8.以c_no升序.sc_degree降序查询score表中所有的数据


以一个字段升序,另一个字段降序

-- 9.查询'95031'班的学生人数
---统计 count


统计某个字段某个值的数目

-- 10.查询score表中的最高分数的学生号和课程号.(子查询或者排序)


多限制条件的查询

----1、找到最高分

select max(sc_degree) from score;

2、找最高分的s_no和c_no

select s_no,c_no from score where sc_degree=(select max(sc_degree) from score);

---排序的做法

select s_no,c_no,degree from score order by degree;   

--- limit
第一个数字表示从多少开始,第二个数字表示传多少条。


limit 从0位置开始,传1项

-- 11.查询每门课的平均成绩
--avg()


查询某门课的平均成绩

---如何在一个sql语句中进行查询?
---group by分组


利用groupby查询每门课程的平均成绩

-- 12,查询score表中至少有2名学生选修的,并且以3开头的课程的平均分


having和模糊查询

--对一个复杂的查询,分段的思路进行操作


分段查询

---因为已经分好组了,所以可以用select(*);
---having是过滤的意思。
---模糊查询用的是like
-- 13.查询分数大于70但是小于90的s_no列:


查询某一区间的分数

-- 14.查询所有的学生 s_name , c_no, sc_degree列


多表查询例子

-- 15.查询所有学生的s_no, c_name, sc_degree列


多表查询例子

-- 16.查询所有的学生 s_name , c_name, sc_degree列


多表查询例子

-- 17.查询班级是'95031'班学生每门课的平均分


多表查询例子

-- 18.查询选修"3-105"课程的成绩高于'109'号同学'3-105'成绩 的所有同学的记录


多表查询例子

-- 19.查询成绩高于学号为'109',课程号为'3-105'的成绩的所有记录


-- 20.查询所有学号为108、101的同学同年出生的所有学生的s_no,s_name和s_birthday


year(s_birthday)

-- 21.查询 张旭 教师任课的学生的成绩


多层子查询

-- 22.查询选修课程的同学人数多余 2 人的教师姓名
---having 是在分组情况下的条件触发词。
---where用于筛选表内全部记录,having用于筛选分组后的记录。

表course为中转

-- 23.查询95033班和95031班全体学生的记录


in 的使用

-- 24.查询存在85分以上成绩的课程c_no


-- 25.查出所有'计算机系' 教师所教课程的成绩表


不知道为什么不运行出结果,等待解决

-- 26.查询'计算机系'与'电子工程系' 不同职称的教师的t_name和t_prof
----union 求并集

为什么不出结果?

-- 27, 查询选修编号为"3-105"课程且成绩至少高于选修编号为'3-245'同学的c_no,s_no和sc_degree,并且按照sc_degree从高到地次序排序
---至少?any

-- 28.查询选修编号为"3-105"且成绩高于选修编号为"3-245"课程的同学c_no.s_no和sc_degree
---且?all


all

-- 29. 查询所有教师和同学的 name ,sex, birthday
---合并两个表 union
---别名 as


合并表+取别名

-- 30.查询所有'女'教师和'女'学生的name,sex,birthday


未完待续

相关文章

网友评论

    本文标题:【2020-06-13】mysql学习笔记(二)

    本文链接:https://www.haomeiwen.com/subject/kjqztktx.html