mysql内连接

article/2025/9/26 6:09:32

文章目录

  • 多表连接
      • 一、内连接初识(内连接两张表)
      • 二、内连接多张表
      • 三、为表起别名
  • 题型综合

多表连接

多表连接的基础,要连接的表必须具有相同意义的字段(有关系的表);
多表连接什么时候用:顾名思义,肯定是所查询的问题的涉及到不止一个表;

在这里插入图片描述

一、内连接初识(内连接两张表)

内连接:
(1)等值连接(实用性强)
(2)不等值连接

内连接语法结构:

select 查询字段 from表1[inner] join 表2 on表1.关系字段=表2.关系字段;(等值连接)

(1)内连接特点:满足连接条件的才会出现在结果里面;
(2)内连接是左右拼接表;

注:连接条件中如果使用‘=’,则叫做等值连接

例1:内连接a表和b表,查询所有字段;
内连接特点:符合条件的记录才会出现在查询结果中;(内连接相当于左右拼接表)union(上下拼接表)

例2:student表和sc表内连接(等值连接),查询所有(sno,sname,sdept,cno,degree)字段
注意点:
(1)内连接的表必须是要有关系的表(即具有相同意义字段的表)
(2)当查询的字段同时出现在连接的表当中,必须明确说明是那个表里的字段,不然会出现错误;

其中内连接可以写成上面的形式:
连接条件写在from子句中:

select 查询字段 from 表1[inner]  join 表2  on  表1.关系字段=表2.关系字段;

也可以写成如下的形式,连接条件写在where子句中

select 查询字段 from 表1,表2  where  表1.关系字段=表2.关系字段;

二、内连接多张表

例3:将student表和sc表以及course表内连接,查询所有字段;

select * from student a,sc b,course c where a.sno=b.sno and b.cno=c.cno;

例4:将student表和sc表以及course表内连接,查询sno,sname,sdept,cno,cname字段;

select a.sno,sname,sdept,b.cno,cname from 
student a,sc b,course c 
where a.sno=b.sno and b.cno=c.cno;

(给每个表进行一次命名,便于选择)

From A [inner] join B on A.sno=B.sno[inner] join C on B.cno=C.cno
以此类推到多张表………

三、为表起别名

Select字段名 from表名[as] 别名;

修改上面的例题
1、将student表和sc表以及course表内连接,查询sno,sname,sdept,cno,cname字段;(给表起别名)
2、内连接teaching,teacher,sc,student表查询所有字段;

与题型有关表的标签如下:

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

student(学号、姓名、性别、课程、系别、课程号等)
teacher(工号、姓名、性别、系别等)
teaching(课程号 工号)
course(课程号 课程名字)
sc(学号、课程号、成绩)

题型综合

1、内连接course表和sc表,查询所有字段;(等值连接)

select * from course a,sc b where a.cno=b.cno;

2、内连接course和sc表,查询cno,cname,sno,degree字段;

select cno,cname,sno,degree from course a,sc b where a.cno=b.cno;

3、内连接teacher,teaching,sc查询tno,tname,cno,sno字段;

select tno,tname,cno,sno from teacher a,teaching b,sc c 
where a.tno=b.tno and b.cno=c.cno;

4、内连接teaching,teacher,sc,student表查询tno,tname,cno,sno,sname,sdept字段

select tno,tname,cno,sno,sname,sdept from teaching a,teacher b,sc c,student d 
where a.tno=b.tno and a.cno=c.cno and c.sno=d.sno;

5、内连接teaching,teacher,sc,student,course表,查询sname,sno,cno,cname,

select sname,sno,cno,cname from teaching a,teacher b,sc c,student d,course e 
where a.tno=b.tno and a.cno=c.cno and c.sno=d.sno and c.cno=e.cno;

思考题:
(1)查询电子工程系选修课程学生的学号,名字,选修的课程以及对应的成绩;
(2)输出已经选修课程的女生的学号、姓名、课程号、成绩;


http://chatgpt.dhexx.cn/article/Uy1s7rwy.shtml

相关文章

ClickHouse内连接

A内连接B>S2区域 SELECT date, ts, country, province, city,ye_no FROM (SELECT date, ts, country, province, city,0 AS yes_no FROM DBa.tba WHERE (date today()-1) ) ALL INNER JOIN (SELECT date, ts, country, province, city FROM DBb.tbb WHERE (date tod…

内连接,左连接,右连接作用及区别(数据库相关九)

我们来看个例子: 内连接就是普通的查询,例如 1.加inner join的: SELECT S.SName,C.CourseID,C.Grade From Sc AS C INNER JOIN Students AS S ON C.StudentID S.SNo 2.不加inner join的 SELECT Students.SName,…

知识点 左连接、右连接、内连接

为什么使用 这些X连接? 答:因为 我们想看到更多维度的数据,原本这些数据其实应该在一个表的,但为了避免数据冗余、面向对象(一张表一般对应一个实体类)等因素,我们把这些数据根据某个规则进行拆…

inner join 和outer join

内连接(INNER JOIN) 内连接也称为等同连接,返回的结果集是两个表中所有相匹配的数据,而舍弃不匹配的数据。也就是说,在这种查询中,DBMS只返回来自源表中的相关的行,即查询的结果表包含的两源表…

SQL连接表(内连接、左连接、右连接、交叉连接、全外连接)

分享一些自己的连表总结 什么是连接表? 多表查询原理:将多个表通过笛卡尔积形成一个虚表,再根据查询条件筛选符合条件的数据。 在关系数据库中,数据分布在多个逻辑表中。 要获得完整有意义的数据集,需要使用连接来查询…

内连接与外连接(全网最详细)

目录 前言 一、内连接 二、外连接 1.左外连接 2.右外连接 3.满外连接 三、UNION的使用 四、7种SQL JOINS的实现 前言 在学习内连接与外连接之前,你不妨思考为什么要引入这两种连接方式,带着问题去学习,更有助于我们对知识的学习。 其…

LDF explorer使用问题记录

本文章并不是使用教程! 问题1:信号必须要设置“Unit”值 当信号时枚举值或其他非物理信号,我们不为其设置Unit属性时,通过NCF工具生成源文件时,会报错,如下图所示: 通过文本方式打开ldf文件…

SqlServer如何导入mdf、ldf文件

1、sqlserver数据库中可以直接拷贝mdf和ldf文件对sqlserver数据库中的数据进行备份,然后通过数据库管理软件加载mdf和ldf文件加载数据库数据。 2、如果拷贝mdf和ldf文件失败时可以先在服务中停止SQL Server(MSSQLSERVER)服务 3、如下两种方法亲证都可行 第一种方法…

SqlServer2008Ldf文件过大处理

ldf文件是数据库的操作日志文件,用于数据库的数据恢复; 缩小体积的方法: 第一步:设置数据库成简单模式,在master下执行 ALTER DATABASE databasename SET RECOVERY SIMPLE; 第二步:缩小数据库体积到1024MB …

SqlServer怎么导入mdf、ldf文件

第一种方法: 1.打开SQL Server,写好登录名和密码点击连接. 2.打开数据库,右键某一个数据库,选择“新建查询(Q)”。 3.再代码界面输入如下代码,点击F5键或者点击运行按钮即可。 代码如下: EXEC…

sql server处理/压缩LDF文件

LDF/MDF文件太大了,要压缩处理 SELECT NAME, recovery_model_desc FROM sys.databases 查看是什么模式这里的DNName_Log 如果不知道在sys.database_files里是什么名字的话,可以用以下注释的语句进行查询 USE DNName GO SELECT file_id, nameFROM s…

服务器mdf ldf文件,sqlserver2008如何导入mdf,ldf文件

网上找了很多解决sql server导入其他电脑拷过来的mdf文件,多数是不全,遇到的解决方法不一样等问题,下边是找到的解决问题的最全面方法! 将mdf, ldf文件导入到sql server 2008数据库当中,下面提供两种办法: …

ldf文件怎么储存到mysql中_sqlserver数据库的ldf文件太大,我们如何压缩ldf日志文件...

使用sqlserver数据库的数据有两个文件,分别是mdf和ldf。 mdf是数据文件,另外一个ldf为日志文件。随着网站的运行,你会发现ldf这个文件会越来越大,我们如何压缩ldf日志文件。 网上有很多收缩ldf文件的方法,但比较杂乱&a…

SQLServer数据库丢失ldf文件的恢复

某个数据库例如CXPT2,只把CXPT2.mdf文件留下来了,ldf文件没有留下来, 启动的时候显示显示 CXPT2[可疑],不知道怎么解决,这时候CXPT2.mdf目录下有一个旧的ldf文件, 后来看了网上的帖子,就把ldf…

mdf ldf 导入 mysql_mdf, ldf文件导入到sql server 2005的方法

在实际的工作中, 有很多涉及到数据库资料的备份,转移, 恢复等方面的工作, 但是并不是所有的资料都是以.bak格式存在的, 比如说, 你想从正在运行的数据库中把mdf, ldf格式的文件导出来,而在正在运行的数据库中则不能进行这样的操作, 同样, 当你已经拥有了mdf, ldf这样的文件想导…

LDF转Excel;LDF转位定义;Excel转LDF;Excel转位定义;MatrixCreat(四)之工具使用

工具使用 一、摘要1.描述2.关键字 二、什么时候需要使用MatrixCreat工具三、MatrixCreat转换后效果图四、MatrixCreat运行环境五、MatrixCreat使用介绍六、MatrixCreat配置详解1.ProjectName2.EndianType3.BitsName4.SheetName5.ParasRowNum6.VariableNameLenth7.NameIsEqual8.…

mdf ldf 转mysql_SQL Server的ldf和mdf文件转移

再仔细检查一下,发现是MSSQLDATA文件夹下,有太多的mdf和ldf文件了,而且有几个是好几G大小的。其实就是这两个文件。 平时各种还原库,也不太注意这个,没想到后果这么严重,于是在网上搜索研究了一下怎么把这些…

S32DS导入外部LDF文件出错处理办法

文章目录 前言1.LIN版本更迭2.LDF简介2.1 LIN2.1版本LDF2.1.1 全局定义2.1.2 节点定义2.1.3 信号定义2.1.3.1 标准信号定义2.1.3.2 诊断信号定义(可选) 2.1.4 帧定义2.1.4.1 无条件帧定义2.1.4.2 事件触发帧定义(可选)2.1.4.3 零星…

【从LDF到C语言】

从LDF到C语言 frame的Init list 汽车电子中我们经常要将LDF翻译成C语言。其中有不少需要注意的点。 frame的Init list 下面举一个例子。 LDF中有一个Frame名为Test_cmd, 这个frame中有很多的signal如下图 从图中可以看出,Signal在Frame中并不是连续排列的。 第一个…

ADSP21489工程中LDF文件配置详解

一直都没有搞懂LDF文件是怎么回事,后续翻到这个文档<cces-LinkerUtilities-manual.pdf>才认真的看了一下 先搞懂ADSP21489的片上RAM空间大小是5Mbit 5Mbit 160k字的32位数据 320k 字的16位数据 106.7k字的48位指令(或40位数据)或不同大 小字的组合 只要不超过…