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

数据库多表联合查询附简单例子多表联合查询多表联合查询可以通过连接运算实现,而连接运算又可以通过广义笛卡尔积后在进行选择运算来实现。 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)
blank

相关推荐

  • DIV滚动条显示

    DIV滚动条显示DIV滚动条所谓DIV滚动条,就是利用DIV标签,在里面嵌入CSS样式表,加入overflow的属性值,这样,当div所规范的区域内的内容达到一定程序时,滚动条就派上用场1、滚动条常用属性:overflow:auto为自动,scroll为出现滚动条overflow-x:横向滚动条overflow-y:纵向滚动条代码样例:  这里是你要显示的内容,只有需要时才出现滚动条。  这里是你要显示的内容,无论是否需要都出现滚动条。

  • CSS中如何解决子元素继承父元素的opacity属性?

    CSS中如何解决子元素继承父元素的opacity属性?解决方案这里有两个方案,使用rgba()间接的设定opacity的值,这个属性不会向下继承,或者既然opacity会被子级元素继承,那就把opacity属性放到同级元素实现,下面通过示例具体说说这两种方式:1.使用rgba()间接的设定opacityrgba()有四个参数,最后一个参数就是opacity的值,和opacity单独设定效果一样,但是这个是有background属性来控制的,background不会向下继承,所以就解决这个问题啦,示例如下:<!DOCTYPEhtml>&l

  • ViewRootImpl和WindowManagerService笔记

    ViewRootImpl和WindowManagerService笔记

  • navicat oracle存储过程,Navicat 运行 Oracle 存储过程示例

    navicat oracle存储过程,Navicat 运行 Oracle 存储过程示例navicat存储过程界面功能点击运行时,会弹出窗口填入输入参数。使用Navicat创建存储过程在函数位置,右键新建函数,OUT参数没有默认值,写了也没用。软件自动生成存储过程框架,然后人去补充“声明变量”和“主体”部分,注意存储过程名称可以用引号,也可以不用引号。Navicat运行存储过程方法一:使用Navicat软件界面功能方法二:在查询界面创建变量并调用存储过程Orac…

  • 一键轻松设置项目代理「建议收藏」

    引言相信各位开发同学对设置项目代理接触得非常之多:新同事接手老项目时,需要从文档中找到代理规则或者询问熟悉的同事后再设置代理;在不同项目间切换时,需要在自己设置的不同规则间进行手动切换;代码执行结果与预期不同,debug许久发现是因为代理规则设置有问题;同一个项目,团队内不同的人设置的代理规则五花八门,差异不小;…本应专注于项目的开发,却在配置代理上浪费时间,耗费精力!为…

  • 3nf和bcnf分解_如何分解成3nf

    3nf和bcnf分解_如何分解成3nf1.3NF分解先求出正则覆盖Fc对于Fc里面的所有函数依赖a->b,均转化为Ri=ab对于所有的模式Ri如果包含候选码,进行第4如果都不包含候选码,将任意一个候选码添加到模式Ri里面如果一个模式被另一个模式包含,则去掉此被包含的模式。例子:…

    2022年10月28日

发表回复

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

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