Mysql连接查询介绍

Mysql连接查询介绍

ID:42575826

大小:281.44 KB

页数:10页

时间:2019-09-18

Mysql连接查询介绍_第1页
Mysql连接查询介绍_第2页
Mysql连接查询介绍_第3页
Mysql连接查询介绍_第4页
Mysql连接查询介绍_第5页
资源描述:

《Mysql连接查询介绍》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Mysql连接查询介绍场景:需要得到一个学生列表,要求是展示如下列表:学生,性别,班级名字此时,需要不单从学生表获取数据,还需要从班级表获取数据于是就需要:连接查询,join语法:fromtbl_name1jointbl_name2on连接条件;selectstu_name,gender,class_id,class_namefromselect_studentjoinselect_class onselect_student.class_id=select_class.id;过程是:先执行from子句,需要连接join两个特殊的地方:join,onjoin连接:除了默认的连接外,

2、还有其他形式的连接方式:内连接外连接,左外连接,右外连接,【全外连接,也是外连接,但不是mysql所支持的】交叉连接自然连接内连接:innerjoin记录与真实的记录连接,称之为内连接(两条真实存在的记录连接)mysql默认的连接就是innerjoin,可省略inner首先给select_student表再添加一个学生,但不分配班级:insertintoselect_studentvalues(56,'李莫愁','female',33,1111.11,167.56);注意:此时班级表中没有class_id为33的班级:再次执行上面的连接查询:selectstu_name,gende

3、r,class_id,class_namefromselect_studentjoinselect_class on select_student.class_id=select_class.id;此时,发现刚刚新添加的数据(李莫愁)没有出现在查询结果中。因为‘李莫愁’这条数据中的class_id,在select_class表中不存在,所以不会出现在展示结果中!此称之为内连接!内连接可以省略连接条件:on可以省略,相当于连接条件永远成立!返回值是一个笛卡尔积!selectstu_name,gender,class_id,class_namefromselect_studentinn

4、erjoinselect_class;外连接:leftjoin,rightjoin连接的记录,可能是一方不存在的!(两条记录中可能某条不存在)示例:(李莫愁这条数据在表select_class中不存在)selectstu_name,gender,class_id,class_namefromselect_studentleftjoinselect_class on select_student.class_id=select_class.id;总结:内连接,外连接差别不大,只是外连接会将没有连接成功的记录也会展示在结果中,而内连接的结果中只有连接成功的(两条记录都真实存在的)。注意

5、左外与右外的区别:区别在于,哪个表的记录会最终出现在连接结果内!该记录指的是连接失败的记录(在select_class表中再增加一条记录:insertintoselect_classvalues(10,'what110','209');)selectstu_name,class_namefromselect_studentleftjoinselect_class on select_student.class_id=select_class.id;selectstu_name,class_namefromselect_studentrightjoinselect_class on 

6、select_student.class_id=select_class.id;什么是左表和右表?join关键字前面的(左边的)是左表,join关键字后面的(右边的)是右表左外:如果出现左表记录连接不上右表记录,左表记录会出现在最终的连接结果内,而右表记             录相应的字段会被设置成null右外:如果出现右表记录连接不上左表记录,右表记录会出现在最终的连接结果内,而左表                 记录相应的字段会被设置成null因此,可以交换表的位置,达到使用left与right混用的目的!问题:统计每个班级内学生的数量!在班级列表内展示如下列表:班级名,教

7、室号,学生数量selectclass_name,classroom,count(select_student.id)ass_countfromselect_class leftjoinselect_studentonselect_class.id=select_student.class_idgroupbyselect_class.id;注意:外连接应该要有条件!交叉连接:crossjoinselectstu_name,class_namefromselect_cla

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。