MYSQL_多表查询学习.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MYSQL_多表查询学习

MYSQL_多表查询学习 103f MYSQL 多表查询学习 - Web源码共享 - ╄中国飞客网╄ 技术前线首页 共享 论坛 Web前台开发 | 虚拟机研讨区 | 虚拟现实技术 | Web项目开发 | Web源码共享 | 谈天说地 转至论坛 你的位置:╄中国飞客网╄ 论坛 Web源码共享 查看帖子 MYSQL 多表查询学习 发布: 2010-1-15 17:12 | 作者: feiker | 来源: ╄中国飞客网╄ 多表查询 1.简单查询 内连接查询 1】简单的连接查询 给两个表找中间桥梁: select 字段列表 from 表1,表2 where 表1.s_id=表2.s_id; eg: select s_name,marks from student_info,marks_info where student_info.s_id=marks_info.s_id; eg: select s_name,marks,c_name from student_info,marks_info,class_info where marks_info.s_id=student_info.s_id and marks_info.c_id=class_info.c_id; 问题: 如果表名很长,书写繁琐,代码不清晰。 解决: 使用表别名 定义格式 :1】表名 as 别名 2】表名 别名 别名作用域只在本查询语句中 eg : select s_name,c_name,marks from student_info s,marks_info m,class_info c where s.s_id=m.s_id and m.c_id=c.c_id 查询学生的编号,姓名,科目,成绩 问题: 如果查询的字段在多个表中存在,那么就必须在字段前添加表名或表的别名 select s.s_id,s_name,c_name,marks from student_info s,marks_info m,class_info c where s.s_id=m.s_id and m.c_id=c.c_id 2】SQL内外连接 (是SQL语言中的多表分类,查询效率比简单查询和子查询在某种情况下要高) 内连接格式:select 字段列表 from 表1 inner join 表2 on 表1.字段=表2.字段 eg :查询学生的姓名和成绩 select s_name,c_name,marks from student_info inner join marks_info on student_info.s_id=marks_info.s_id inner join class_info on marks_info.c_id=class_info.c_id; 3】自然查询 : 是简单的查询中去掉重复的记录 在字段中添加distinct 外连接查询 outer join 1】左连接 (left join)select 字段列表 from 表1 left join 表2 on 表1.字段=表2.字段 (查询语句以表1为参照表) 如果表2中有与表1相匹配的记录,那么就显示记录,如果表2中没有与表1相匹配的记录则在相对应的字段上填充null) 问题:如果查询的记录,必须以某个表作为参照表,打印出记录相同的所有的记录 SELECT s_name, marks FROM student_info s LEFT JOIN marks_info m ON s.s_id = m.s_id 2】右连接 (right join) (查询语句以表2为参照表) 如果表1中有与表2相匹配的记录,那么就显示记录,如果表1中没有与表2相匹配的记录则在相对应的字段上填充null) SELECT s_name, marks FROM marks_info m RIGHT JOIN student_info s ON s.s_id = m.s_id 3】全连接 full join (将两个记录集进行合并,并且去掉重复的记录) mysql 不支持全连接

文档评论(0)

word.ppt文档 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档