MySQL入门笔记表查询(VirtualBox第三天)

在查询前我们需要创建5张表
1,学院表
2,学生表
3,学生详情表
4,课程表
5,课程中间表
在这里插入图片描述

一,单表查询
1,查询当前数据库中的所有表格。
show tables;
在这里插入图片描述

2,查询表中所有数据。
select * from tb_namece;
在这里插入图片描述

3,查询表中某几个字段内容
select col_name1,col_names2 from tb_name;
在这里插入图片描述
4,条件查询
select col_name from tb_name where 条件;
查询条件可以是大于小于等于不等于(>,<,=,<>),也可以是复杂的判断。例如:
select name from stu where shengao>175,stu_name<2019445556;
在stu表中查询身高大于175,学号小于201944556的学生名字。
在这里插入图片描述
5,取别名(as)
select col_name as new_name from tab_name as new_tb_name;
如果列名或表名太长,可以给他取一个别名,方便使用。
select s.name from stu as s.
将stu改为s并查询name字段内容
在这里插入图片描述
二,多表查询
1,内连接
select * from department inner join student;
select * from department,student;
将department表和student表连接起来查看,将department中的x条数据与student中y条数据相乘,一共就是x*y条数据
在这里插入图片描述
select * from departmnet as d inner join student as s where d_id=dp_id;
将department表取别名为d,将student表取别名为d,查询学生在什么学院。
在这里插入图片描述
2,外连接
左连接
A left join B on 条件 会以左边表A为主表(数据全部展示),寻找B中符合on后边条件的数据,没有的用空(NULL)代替。例如
select * from student as s left join stu_detail as sd on s.s_id=sd.s_id;
在这里插入图片描述
右连接
相反右连接只需要将left改成right。

3,子表查询
首先我们将课程表和课程中间表连接起来,可以发现其中还有s_id,
在这里插入图片描述
我们想查看学生姓名对应的学生选择的什么课程就可以利用s_id和student表的关系进行建立,此时的这个结果就可以作为一个子表,
首先我们先显示出两表中的学生id和选择的课
在这里插入图片描述
然后再将这张临时表与student连接
在这里插入图片描述
4,排序
升序
order by
英文根据首字母进行排序
数字根据数的大小从小往大排,
在这里插入图片描述
降序
desc
直接在最后加上desc
在这里插入图片描述
限制查看行数
limit n
在排序后加上limit n(显示n行,n代表显示行数)
在这里插入图片描述
分组统计(查询学院的总人数)
group by
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_47792921/article/details/107584717