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

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

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

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

(1)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • django debug_怎么调试debug

    django debug_怎么调试debug介绍Django框架的调试工具栏使用django-debug-toolbar库,是一组可配置的面板,显示有关当前请求/响应的各种调试信息,点击时,显示有关面板内容的更多详细信息。应用1.安装

    2022年7月29日
    13
  • transactionscope mysql_TransactionScope 的基本原理简介

    transactionscope mysql_TransactionScope 的基本原理简介C#的事务编程1Db事务DbConnection中创建基于当前连接的DbTransaction2使用TransactionScope,创建环境事务一旦创建,在这个环境包含的DbConnection实例都会根据连接字符串中的Sqlserver连接字符串支持,是否自动附加当前环境事务.连接字符串关键字(Enlist)SqlConnection.ConnectionString属性…

    2022年7月19日
    14
  • Android Hook 机制之简单实战[通俗易懂]

    Android Hook 机制之简单实战[通俗易懂]简介什么是HookHook又叫“钩子”,它可以在事件传送的过程中截获并监控事件的传输,将自身的代码与系统方法进行融入。这样当这些方法被调用时,也就可以执行我们自己的代码,这也是面向切面编程的思想(AOP)。Hook分类1.根据Android开发模式,Native模式(C/C++)和Java模式(Java)区分,在Android平台上Java层级的Hook;…

    2022年6月4日
    52
  • 几何画板 很实用的一个软件

    几何画板 很实用的一个软件

    2021年8月21日
    94
  • 基于CCXT接口建立的多模块数字货币量化交易模型(MMQT)在python中的实现[通俗易懂]

    基于CCXT接口建立的多模块数字货币量化交易模型(MMQT)在python中的实现[通俗易懂]目录一、前言问题的引出MMQT模型的优势二、MMQT简介1.接口模块2.风控模块3.策略模块4.反馈模块三、MMQT的代码实现1.定义中间模块(类)1.初始化2.获取账户信息、交易对信息、订单信息3.数据更新4.创建订单5.获取订单状态6.撤销订单7.获取k线信息2.定义风控模块(类)3.定义策略模块(类)1.策略模块初始化2.技术分析及交易下单3.反馈模块4.相关类实例化1.ccxt实例化2.中间类、风控类、策略类实例化3.调控程序四、回测的代码实现1.获取数据2.数据清洗3.模拟账户初始化4.回测程序五

    2022年6月26日
    115
  • 国内it软件外包公司排行榜是怎么样的「建议收藏」

    国内it软件外包公司排行榜是怎么样的「建议收藏」国内it软件外包公司排行榜是怎么样的由于互联网技术的快速发展,特别是手机移动端的的普及,使得企业越来越需要开发自己自己的软件,但是软件开发人才缺口很大,企业没有这个技术实力去开发自己的软件,对于中小企业也不好招人,而这软件外包开发公司就可以帮助企业实现目标,这其中鱼龙混杂,让不少想要软件外包开发的企业难以选择,那么国内软件外包公司排行榜是怎么样的呢?下面为大家介绍华盛恒辉排名…

    2022年6月11日
    93

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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