access多表查询sql语句_SQL:多表查询
⼀、集合运算
集合运算:对满⾜同⼀规则的记录进⾏的加减等四则运算。
UNION以⾏(纵向)为单位进⾏操作,⽽JOIN以列
JOIN以列(横向)为单位进⾏操作。
UNION以⾏
1.表的加法(UNION)
两个表的结构相同,存放的数据不⼀样,可以使⽤表的加法将两个表的数据按⾏加在⼀起。
集合运算会除去重复的记录。
如果要在结果中保留重复⾏,只需要在UNION后⾯添加ALL关键字。
ALL选项,在UNION之外的集合运算符中同样可以使⽤
注意事项:
表的列数必须相同;
列的类型必须⼀致;mysql面试题sql语句多表联查
可以使⽤任何SELECT语句,但是ORDER BY⼦句只能在最后使⽤⼀次。
其他:
表的减法:EXCEPT/MINUS(差集);
选取表的公共部分:INTERSCECT(交集);
以⾏⽅向为单位进⾏操作,不会导致列数的增减。
上⾯两个语法与UNION相同,只是MYSQL暂不⽀持。这些运算的特征是以⾏⽅向
2.表的联结(JOIN)
添加列的运算。
表的联结就是通过表和表之间的关系,将表合并到⼀起。也就是将其他表中的列添加过来,进⾏添加列
常⽤联结:
1)内联结(INNER JOIN)
查出同时存在于两张表中的数据,是应⽤最⼴泛的联结运算。float在c语言中的意思是定义实数
要点:
对原表命名别名不是必须的,但是表名太长可能会影响SQL语句的可读性,因此建议使⽤别名;
ON是必不可少的,起到和WHERE相同的作⽤,书写时须在FROM和WHERE之间;需要指定多个键时,也可以使⽤AND和OR。2)左联结(LEFT JOIN)和右联结(RIGHT JOIN)
grove如何确定mysql安装成功左联结
左联结:以左表为主表,将左侧表中的数据全部取出来。
在左联结的基础上,去掉了两个表中公共的部分
右联结:将右侧表中的数据全部取出来
右联结
小时代电视剧免费全集在右联结的基础上,去掉了两个表中公共的部分
3)交叉联结(CROSS JOIN)-笛卡尔积
将表中的每⼀⾏都与另⼀张表的每⼀⾏合并在⼀起。在实际业务中⼏乎不会使⽤。
⾏数=左表⾏数*右表⾏数。上图未完全展⽰。
4)全联结(FULL JOIN)
返回两张表的所有⾏,如某⼀⾏有匹配就数据合并,没有就⽤空值填充。MYSQL不⽀持全联结。5)多表联结
可以使⽤INNER JOIN进⾏添加,原则上联结表的数量是没有限制的。
总结
⼆、联结应⽤案例
1.查询所有学⽣的学号、姓名、选课数和总成绩
2.查询平均成绩⼤于85分的所有学⽣的学号、姓名和平均成绩
3.查询学⽣的选课情况:学号,姓名,课程号,课程名称
多表联结
三、CASE表达式
CASE表达式⽤来解决复杂的查询问题,是⼀种条件判断的函数。CASE表达式会从最初的WHEN⼦句中的<;判断表达式>求值开始执⾏。如果符合某个条件,就运⾏后⾯的THEN⼦句,若不符合条件,继续运⾏下⼀条WHEN⼦句,直到返回ELSE中的表达式,执⾏终⽌。CASE 表达式是SQL中极其重要
SQL中极其重要的功能。
android spinnerCASE WHEN <;判断表达式>THEN<;表达式>
WHEN <;判断表达式>THEN<;表达式>
WHEN <;判断表达式>THEN<;表达式>...
ELSE<;表达式>
END
举例:
1.在查询结果中显⽰成绩是否及格
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论