多表查询(笛卡尔查询)

跨几个表格查询信息时使用SELECT * FROM <表1> <表2>

这种多表查询又称笛卡尔查询,使用笛卡尔查询时要非常小心,由于结果集是目标表的行数乘积,对两个各自有100行记录的表进行笛卡尔查询将返回1万条记录,对两个各自有1万行记录的表进行笛卡尔查询将返回1亿条记录。

问题:下面是全部的表格,现在需要查询老师和课程的信息?

select * from teacher,course;


两个表原本为3* 3和2* 3,相乘后得到5*9的表格。结果集的列数是两表的列数之和,行数是两表的行数之积。

列别名

students.idcourse.c_idcourse.c_name 列设置别名为sidcidcname;并且别名还可以在查询过程中继续使用,减少输入的时间。

先看看列名是不是修改了:

SELECTstudent.s_id sid,student.s_name ,student.s_sex,course.c_id cid,course.c_name cname
FROM Student, course;

部分结果输出:

  • 有三列名称更新为sidcidcname ;没有设置的名字和性别两列依旧显示s_name、s_sex;
  • 结果集是目标表的行数乘积:从第一个赵雷的信息可以看出,前面三列值不变(01,赵雷,男);后面两列列出了三个不同科目的信息。

    再看看定义了别名之后,别名是否可以使用,我们接着上面的例子,在前面加上select sid from,后面补上 as a,即将上面找到的结果表格当场名字为a的临时表格。
select sid from
(SELECTstudent.s_id sid,student.s_name ,student.s_sex,course.c_id cid,course.c_name cname
FROM Student, course) as a;;

返回结果:表格a中的sid这列。

表别名

注意,多表查询时,要使用表名.列名这样的方式来引用列和设置别名,这样就避免了结果集的列名重复问题。但是,用表名.列名这种方式列举两个表的所有列实在是很麻烦,所以SQL还允许给表设置一个别名,让我们在投影查询中引用起来稍微简洁一点:

SELECTs.s_id sid,s.s_name ,s.s_sex,c.c_id cid,c.c_name cname
FROM student s, course c;

最后面定义 students 别名为s, classes别名为c。

注意! 改了别名后就不能使用原来的名字,否则可能返回说找不到表格。

SELECTstudent.s_id sid,student.s_name ,student.s_sex,course.c_id cid,course.c_name cname
FROM students s, course c;

参考教程:
https://www.liaoxuefeng.com/wiki/1177760294764384/1179664013849760

SQL多表查询(设置别名)相关推荐

  1. sql多表查询之一:Where 和 On的秘密

    原文 sql多表查询之一:Where 和 On的秘密 对于还在SQL初级阶段的朋友来说,sql多表查询问题是一个比较有趣也容易出错的技术.什么时候会用到sql多表查询呢?是在两张或两张以上表单中通过某 ...

  2. php sql查询两个表语句,sql多表查询语句与方法

    sql多表查询有很多种方法,如有自然连接 INNER JOIN,外边查询LEFT JOIN,交叉查询JOIN,交叉连接JOIN等join on left on 等多的是哦. sql多表查询语句与方法 ...

  3. SQL语句详解(四)——SQL联表查询

    今天我们继续给大家介绍MySQL相关知识,本文主要内容是SQL联表查询. 一.SQL联表查询简介 在前文SQL语句详解(三)--SQL子查询中,我们给大家介绍了SQL子查询的相关知识和使用示例.实际上 ...

  4. SQL 多表查询之 where和INNER JOIN

    SQL多表查询之 where和INNER JOIN[基础查询和效率分析] 转载Michaelwubo 最后发布于2018-07-05 10:40:47 阅读数 18057  收藏 https://bl ...

  5. ORACLE SQL 多表查询

    ORACLE SQL 多表查询 开发工具与关键技术:Oracle sql*plus PLSQL Developer SQL 撰写时间:2019年05月08日 说明:顾名思义,多表就是多个表连接起来进行 ...

  6. 第五天 继续SQL多表查询

    SQL多表查询 #给表名别名 SELECT st.class_num,cl.class_name FROM student st,class cl #连接查询 查询出每个学生的班级名称 #以左边的表为 ...

  7. sql 两个表字段不一样合并查询_数据分析进阶--SQL多表查询

    下午写完了上一篇文章,晚上就开始做牛客的SQL题啦,然后发现少少的十题就用到了好几次多表连接,case在实际分析过程中也非常常用,所以我打算单独把多表查询和case拉出来写一篇文章. 文章目录: 表的 ...

  8. sql跨表查询_跨表查询经常有,何为跨表更新?

    有点 SQL 基础的朋友肯定听过 「跨表查询」,那啥是跨表更新啊? 背景 项目新导入了一批人员数据,这些人的有的部门名称发生了变化,有的联系方式发生了变化,暂且称该表为 t_dept_members, ...

  9. SQL -- 多表查询

    --========================== --SQL基础-->多表查询 --========================== /* 一.多表查询 简言之,根据特定的连接条件从 ...

最新文章

  1. cmake交叉编译android,CMake Android 交叉编译
  2. Bug反思:减少笔误
  3. 转:SharePoint站点中用户信息与AD用户信息的“不一致”问题
  4. ImportError: cannot import name 'AliPay'
  5. 遍历DataTable内存数据的三种方法性能对比
  6. 策略模式思想及示例代码(Strategy)
  7. Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could
  8. H凹变换—lhMorpHConcave
  9. NIS 病毒库 更新 地址
  10. java 获取本年月份、本月/本周所有日期
  11. 网站设计之网站背景设计思路
  12. 杏子语录(2020年01月)
  13. Jlink 烧写文件到 nandflash norflash
  14. linux工具之jq
  15. 润和软件为OpenHarmony落地智慧城市构建高效可靠软件基座
  16. C语言实现简单的四则运算计算器
  17. 害怕国内那林林总总的浏览器
  18. Web\App\接口自动测试常见面试题
  19. PMON环境配置(龙芯,亲测成功1)
  20. 安卓开发开发规范手册V1.0

热门文章

  1. Swift3.0学习实践-一个简单的画板(七色轨迹、可撤销、可清除、带橡皮擦)
  2. hutool之SpringUtil使用
  3. 决策树准确率低原因_新上市酸奶决策树分析
  4. 【OpenGL】笔记十三、光照贴图
  5. Nginx常用命令(启动、重启、关闭、检查)
  6. 【云周刊】第213期:对话行癫:解密阿里云顶层设计和底层逻辑
  7. 罗马数字(暴力破解)
  8. 白领必读:职场名利双收的10个说话技巧
  9. CVPR 2022大会主席、港科大教授权龙:计算机视觉的现状与未来
  10. 对象遍历(对象forEach遍历)