博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql-数据查询语句-多表
阅读量:5960 次
发布时间:2019-06-19

本文共 1275 字,大约阅读时间需要 4 分钟。

连接查询

连接查询,是关系数据库中最主要的查询,包括等值查询、自然连接查询、非等值查询、自身连接查询、外连接查询和复合条件连接查询等。

1、等值与非等值连接查询

连接查询的where子句中用来连接两个表的条件称为连接条件连接谓词。当连接运算符为 = 时,称为等值连接。使用其他运算符称为非等值连接。连接谓词中的列名称为连接字段。连接条件中的各连接字段类型必须是可比的,但名字不必相同。

//查询每个学生及其选修课程的情况mysql> select student.*,sc.*  //等同于 select *    -> from sc,student    -> where student.sno=sc.sno;
img_83f3670ef0e6aaa95e7dd6bdfcbdbe21.png
image.png

2、自然连接

在等值连接中把目标列中重复的属性列去掉则为自然连接

//用自然连接完成上例mysql> select student.sno,sname,ssex,sage,sdept,cno,grade    -> from student,sc    -> where student.sno=sc.sno;
img_10b87e585addb190c233fe93507b21d4.png
image.png

一条SQL语句可以同时完成选择和连接查询,这时where子句是同连接谓词和选择谓词组成的复合条件。

//查询选修了2号课程且成绩在90分以上的所有学生的学号和姓名mysql> select student.sno,sname    -> from student,sc    -> where student.sno=sc.sno and    -> sc.cno='2' and sc.grade>90;
img_f010fbb4ee1a0857aeece463a013b56d.png
image.png

3、自身连接

一个表与其自己进行连接,称为表的自身连接

//查询第一门课的间接先修课(即先修课的先修课)mysql> select first.cno,second.cpno    -> from course first,course second    -> where first.cpno=second.cno;
img_b6eef3620cbe21eb888953f4cb223de7.png
image.png

4、外连接

在通常的连接操作中,只有满足连接条件的元组才能作为输出结果。如果想把不满足条件的元组也进行输出,那就需要使用外连接

//把2中例子用外连接进行查询输出mysql> select student.sno,sname,ssex,sage,sdept,grade    -> from student left outer join sc on (student.sno=sc.sno);
img_0a151c188c87387d9393d1a7e8494aab.png
image.png
img_10b87e585addb190c233fe93507b21d4.png
image.png

5、多表连接

两个表以上的连接,称为多表连接

//查询每个学生的学号、姓名、选修的课程及成绩。mysql> select student.sno,sname,cname,grade    -> from student,sc,course    -> where student.sno=sc.sno and sc.cno=course.cno;
img_9db33e1e6a2a900b31922c3a27e964c6.png
image.png

转载地址:http://zdyax.baihongyu.com/

你可能感兴趣的文章
python学习笔记-5.13
查看>>
vuecli3创建项目
查看>>
版本控制工具——Git常用操作(上)
查看>>
5分钟构建无服务图片鉴黄web应用(基于FunctionGraph)
查看>>
神经科学研究所开发AI动作捕捉工具 以高精准度追踪动物动作
查看>>
vue组件之Tabs标签页
查看>>
ES6之变量的解构赋值
查看>>
用localStorage存储购物车数据实战
查看>>
“一带一路”为会展业带来新机遇
查看>>
Spring详解
查看>>
Go defer 知识点
查看>>
【本人秃顶程序员】如何在代码中应用设计模式
查看>>
当你凝视黑洞的时候,它已经被玩坏了
查看>>
fluent python 读书笔记 2--Python的序列类型2
查看>>
依赖冲突时的解决方法
查看>>
学习笔记5
查看>>
富人为什么越富,穷人为什么越穷
查看>>
电子商务java b2b b2c o2o平台
查看>>
(五)java spring cloud版b2b2c社交电商spring cloud分布式微服务-路由网关(zuul)
查看>>
零基础学小程序007---小程序获取用户openid
查看>>