select * from [表1],[表2],...;
多表查询不用join?
例如这两张表,如果我想输出全部数据,会产生下面的情况
会发现现在class表中的数据随机组合了stu表,这就产生了笛卡尔积的情况;
如果想要其中的几行数据,可以这么写
select [列1],[列2],... from [表1],[表2],... where [表1].[列1]=[表2],[列2];
1、一定要表明字段属于哪一个表,特别是拥有相同名字的列的时候
2、使用该约束条件可以过滤两张表形成的笛卡尔积,筛选出来想要的数据
自连接是指在一张表连接查询例如在下表中我想知道有人得了99分的班级的所有人的成绩
连接查询和子查询哪个效率高,
1、可以使用子查询的方式(嵌套查询)
首先我需要查出来这个人是哪个班的,再输出那个班级所有人的成绩
采用子查询的方式后便是
2、可以给这张表定义别名
子查询一定比连接查询快吗?
子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询
返回单行单列记录的子查询
返回多行记录的字查询
好像在说废话
指的是匹配结果任意一个满足就返回
这有一张表,我要找到跟赵铁柱成绩一样的人,输出班级姓名成绩
必须和结果中的所有都进行比较,全部满足条件才返回
还是那张表,我想找到成绩比3班所有人都成绩高的
什么是子查询、
只需要满足条件之一就返回
依旧是那张表,我想找到比3班任意学生分数高的,包括自己班的学生
将每个子查询都当做临时数据表来看
用于取得两个结果集的并集,当使用时会自动去掉重复行
用于取得两个结果集的并集,当使用时不会自动去掉重复行
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态