数据库多表联合查询附简单例子

数据库多表联合查询附简单例子多表联合查询多表联合查询可以通过连接运算实现,而连接运算又可以通过广义笛卡尔积后在进行选择运算来实现。 Select 多表联合查询语句Select 列名 [[,列名]…]from 表名1,表名2,,…Where 查询条件; 可以使用as为表或者字段(属性)取别名; Select 列名 [[,列名]…]from 表名1[as] 别名1,表名2[a…

大家好,又见面了,我是你们的朋友全栈君。

多表联合查询

多表联合查询可以通过连接运算实现,而连接运算又可以通过广义笛卡尔积后在进行选择运算来实现。

 

Select 多表联合查询语句

Select 列名 [[,列名]…] from 表名1,表名2,,… Where 查询条件;

 

可以使用as为表或者字段(属性)取别名;

 

Select 列名 [[,列名]…] from 表名1 [as] 别名1,表名2 [as} 别名2,,… Where 查询条件;

Select 列名1 [as] 列别名1 [[,列名2 [as] 列别名2]…] from 表名1 [as] 表别名1,表名2 [as] 表别名2,,… Where 查询条件;

“[]”表示其中的内容可以省略;

 

查询条件中要包含连接条件,通过不同的连接条件可以实现等值连接、不等值连接等各种连接。

 

示例:

原表数据

学生表 student

 数据库多表联合查询附简单例子

老师表 teacher:

 数据库多表联合查询附简单例子

课程表 course:

 数据库多表联合查询附简单例子

选课表 student_course:

 数据库多表联合查询附简单例子

1 按“0001”号课程成绩由高到低顺序显示所有学生学号、姓名、成绩(二表连接);

SELECT

student.student_id,

student.student_name,

student_course.score

FROM

student,

student_course

WHERE

student.student_id = student_course.student_id

AND student_course.course_id = '0001'

ORDER BY

student_course.score DESC;

当两个(多个)表中有相同的字段(属性,列名)时,使用表名(或表别名).列名的形式对查询内容和条件内容进行区分。

运行结果:

 数据库多表联合查询附简单例子

2 按“高等数学”课程成绩由高到低顺序显示所有学生姓名、学号、分数、课程名(三表连接);

SELECT

st.student_id,

st.student_name,

sc.score,

co.course_name

FROM

student AS st,

student_course AS sc,

course AS co

WHERE

st.student_id = sc.student_id

AND sc.course_id = co.course_id

AND co.course_name = '高等数学'

ORDER BY

sc.score DESC;

运行结果:

 数据库多表联合查询附简单例子

3 查询有薪水差额的任意两位教师(单表连接查询);​​​​​​​

SELECT

t1.teacher_id AS '教工号1',

t1.teacher_name AS '教师姓名1',

t2.teacher_id AS '教工号2',

t2.teacher_name AS '教师姓名2'

FROM

teacher t1,

teacher t2

WHERE

t1.teacher_salary > t2.teacher_salary;

运行结果:

 数据库多表联合查询附简单例子

(数据较多,这里只显示一部分)

4 查询既学过“0001”又学过“0002”号课程的所有学生学号;

SELECT

sc1.student_id '学号'

FROM

student_course sc1,

student_course sc2

WHERE

sc1.student_id = sc2.student_id

AND sc1.course_id = '0001'

AND sc2.course_id = '0002';

运行结果:

 数据库多表联合查询附简单例子

5 查询“0001”号课程比“0002”号课程成绩低的所有学生学号姓名;

SELECT

st.student_id '学号',

st.student_name '姓名'

FROM

student_course sc1,

student_course sc2,

student st

WHERE

sc1.student_id = sc2.student_id

AND sc1.student_id = st.student_id

AND sc1.course_id = '0001'

AND sc2.course_id = '0002'

AND sc1.score < sc2.score;

运行结果:

 数据库多表联合查询附简单例子

https://blog.csdn.net/linan_pin/article/details/70158259

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/132319.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(1)


相关推荐

  • MRT(MODIS Reprojection Tool) 下载及安装教程[通俗易懂]

    MRT(MODIS Reprojection Tool) 下载及安装教程[通俗易懂]大家下载MODIS数据的时候,大多是hdf的格式数据。HDF数据包括11个波段的数据(如下图),假如想要其中一个波段数据,我们需要批量提取,这时就要用到NASA提供的MODISReprojectionTool,此工具虽不能实现全自动的批量提取,但是可以实现按月进行数据的提取及拼接,官网提供了Linux、macos、windows的版本,本文以windows环境为例,说明MRT软件的安装。…

  • 如何设置python的环境变量_anaconda3添加环境变量

    如何设置python的环境变量_anaconda3添加环境变量在python项目实践中,不知道为什么我的os.getenv一直拿不到环境变量,于是我就试了三种设置环境变量的方法,中解决了问题。一.系统变量设置python环境变量的配置方法:1、第一步在我们的电脑上鼠标右键此电脑,选择属性,进去之后,点击高级系统设置,如下图所示2、第二步进去之后,点击环境变量,如下图所示:3、第三步进去环境变量界面之后,点击path,进行编辑,如下图所示:二.pycharm用户环境变量设置:1.打开文件—设置2.打开构建,执行,部署–python控制台–环境变量

  • MyBatis 多表联合查询及优化

    MyBatis 多表联合查询及优化序这篇文章我打算来简单的谈谈mybatis的多表联合查询。起初是觉得挺简单的,没必要拿出来写,毕竟mybatis这东西现在是个开发的都会用,而且网上的文章也是一搜罗一大堆,根本就用不着我来重复。但是吧,就我前几天在做一个多表联合查询的时候,竟然出了很多意想不到的问题,而且这些问题的出现,并不是对mybatis不了解,而是在用的过程中会或多或少的忽略一些东西,导致提示各种错误

  • PHP实现密码生成器包含大小写字母数字特殊字符

    PHP实现密码生成器包含大小写字母数字特殊字符

  • VMware虚拟机 桥接模式 无法上网 校园网「建议收藏」

    VMware虚拟机 桥接模式 无法上网 校园网「建议收藏」VMware桥接模式桥接模式就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信。在桥接的作用下,类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰。在桥接模式下,虚拟机ip地址需要与主机在同一个网段,如果需要联网,则网关与DNS需要与主机网卡一致。无法上网的检查步骤1.VMware中虚拟网络编辑器设置桥接网卡在“编辑”——“虚拟网络编辑器”里进.

  • 使用Visual Studio 2010写Data Url生成工具C#版本

    使用Visual Studio 2010写Data Url生成工具C#版本

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号