MySQL从入门到跑路_02 (实例实操)
程序员文章站
2024-03-21 18:19:40
...
MySQL 学习笔记(2)
这是第一篇博客里面建立的一个测试表
第二篇主要是学习多表连接、内连接、外连接等。
-
首先,新建一个学生成绩表
-
create table student_grade( no int NOT NULL, #序号 name varchar(32) NOT NULL, #学生姓名 c_chinese int NOT NULL, #语文成绩 c_math int NOT NULL, #数学成绩 c_english int NOT NULL, #英语成绩 c_physics int NOt NULL #物理成绩 );
-
#插入数据 insert into student_grade (no,name,c_chinese,c_math,c_english,c_physics) values (1,"张一一",80,96,78,97), (2,"李二二",87,92,98,70), (3,"王三三",89,86,88,87), (4,"周思思",90,96,98,97), (5,"毛五五",90,96,88,97), (6,"陈六",88,76,98,87)
-
-
连接查询
-
比如,我要查看班上所有女生的成绩
因为在刚刚创建的这个表中,没有性别的字段,所以如果要查看性别的话,得连接
student_info
这张表来查看。 -
select sg.name,si.sex,sg.c_chinese,sg.c_math,sg.c_english,sg.c_physics from student_grade sg join student_info si on (sg.name=si.name) and si.sex="女";
-
通过
[表1] join [表2] on [条件]
就可以实现连接查询
-
-
多表连接
-
当然也可以多表连接
-
select ... from a join b on a和b的连接条件 join c on a和c的连接条件 join d on a和d的连接条件 --内连接和外连接可以混合
-
-
-
连接查询也分好几种
- 自连接 -> 将同一张表看成两张表来操作
- 外连接
- 外连接就是有主表和次表。主表的数据是不会被筛选掉的。
-
[表1] right join [表2] on [条件]
-> 这个也叫右(外)连接。右边的表2为主表,表1为次表。 -
[表1] left join [表2] on [条件]
-> 这个也叫左(外)连接。左边的表1为主表,表2为次表。
-
子查询
-
在sql语句中嵌套select语句。被嵌套的select语句称为子查询。(套娃查询)
-
语法
-
select ..(select). from ..(select). where ..(select).
-
-
比如,找到比最低物理成绩高的学生姓名列表
-
-- 可以一步一步来 -- 第一步:先找出物理成绩最低的同学 select min(c_physics) from student_grade; --找到最低的物理成绩是70分。 -- 第二步:找出大于70的 select name,c_physics from student_grade where c_physics>70; -- 第三步:开始子查询(套娃) select name,c_physics from student_grade where c_physics>(select min(c_physics) from student_grade);
-
-
上一篇: 如何快速安装mysql-community-server
下一篇: 重装系统