SQL多表查询(设置别名)
多表查询(笛卡尔查询)
跨几个表格查询信息时使用SELECT * FROM <表1> <表2>
这种多表查询又称笛卡尔查询,使用笛卡尔查询时要非常小心,由于结果集是目标表的行数乘积,对两个各自有100行记录的表进行笛卡尔查询将返回1万条记录,对两个各自有1万行记录的表进行笛卡尔查询将返回1亿条记录。
问题:下面是全部的表格,现在需要查询老师和课程的信息?
select * from teacher,course;
两个表原本为3* 3和2* 3,相乘后得到5*9的表格。结果集的列数是两表的列数之和,行数是两表的行数之积。
列别名
将students.id
、course.c_id
、course.c_name
列设置别名为sid
、cid
、cname
;并且别名还可以在查询过程中继续使用,减少输入的时间。
先看看列名是不是修改了:
SELECTstudent.s_id sid,student.s_name ,student.s_sex,course.c_id cid,course.c_name cname
FROM Student, course;
部分结果输出:
- 有三列名称更新为
sid
、cid
、cname
;没有设置的名字和性别两列依旧显示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多表查询(设置别名)相关推荐
- sql多表查询之一:Where 和 On的秘密
原文 sql多表查询之一:Where 和 On的秘密 对于还在SQL初级阶段的朋友来说,sql多表查询问题是一个比较有趣也容易出错的技术.什么时候会用到sql多表查询呢?是在两张或两张以上表单中通过某 ...
- php sql查询两个表语句,sql多表查询语句与方法
sql多表查询有很多种方法,如有自然连接 INNER JOIN,外边查询LEFT JOIN,交叉查询JOIN,交叉连接JOIN等join on left on 等多的是哦. sql多表查询语句与方法 ...
- SQL语句详解(四)——SQL联表查询
今天我们继续给大家介绍MySQL相关知识,本文主要内容是SQL联表查询. 一.SQL联表查询简介 在前文SQL语句详解(三)--SQL子查询中,我们给大家介绍了SQL子查询的相关知识和使用示例.实际上 ...
- SQL 多表查询之 where和INNER JOIN
SQL多表查询之 where和INNER JOIN[基础查询和效率分析] 转载Michaelwubo 最后发布于2018-07-05 10:40:47 阅读数 18057 收藏 https://bl ...
- ORACLE SQL 多表查询
ORACLE SQL 多表查询 开发工具与关键技术:Oracle sql*plus PLSQL Developer SQL 撰写时间:2019年05月08日 说明:顾名思义,多表就是多个表连接起来进行 ...
- 第五天 继续SQL多表查询
SQL多表查询 #给表名别名 SELECT st.class_num,cl.class_name FROM student st,class cl #连接查询 查询出每个学生的班级名称 #以左边的表为 ...
- sql 两个表字段不一样合并查询_数据分析进阶--SQL多表查询
下午写完了上一篇文章,晚上就开始做牛客的SQL题啦,然后发现少少的十题就用到了好几次多表连接,case在实际分析过程中也非常常用,所以我打算单独把多表查询和case拉出来写一篇文章. 文章目录: 表的 ...
- sql跨表查询_跨表查询经常有,何为跨表更新?
有点 SQL 基础的朋友肯定听过 「跨表查询」,那啥是跨表更新啊? 背景 项目新导入了一批人员数据,这些人的有的部门名称发生了变化,有的联系方式发生了变化,暂且称该表为 t_dept_members, ...
- SQL -- 多表查询
--========================== --SQL基础-->多表查询 --========================== /* 一.多表查询 简言之,根据特定的连接条件从 ...
最新文章
- cmake交叉编译android,CMake Android 交叉编译
- Bug反思:减少笔误
- 转:SharePoint站点中用户信息与AD用户信息的“不一致”问题
- ImportError: cannot import name 'AliPay'
- 遍历DataTable内存数据的三种方法性能对比
- 策略模式思想及示例代码(Strategy)
- Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could
- H凹变换—lhMorpHConcave
- NIS 病毒库 更新 地址
- java 获取本年月份、本月/本周所有日期
- 网站设计之网站背景设计思路
- 杏子语录(2020年01月)
- Jlink 烧写文件到 nandflash norflash
- linux工具之jq
- 润和软件为OpenHarmony落地智慧城市构建高效可靠软件基座
- C语言实现简单的四则运算计算器
- 害怕国内那林林总总的浏览器
- Web\App\接口自动测试常见面试题
- PMON环境配置(龙芯,亲测成功1)
- 安卓开发开发规范手册V1.0