Mysql多表连接

表连接

前提: 有时候我们需要的数据不止在一张表中,需要多个表结合查询时,就可以使用表连接

  1. 分类
    1.1 内部连接(提供了两种表与表之间的连接方式)
    表与表之间建立起关联的列,要求列名可以不一样,但是这两个列的数据类型和内容得保持一致
    1.2 表连接的实现是通过where关键字来进行的关联
    格式一:
    select 表名1.列名1,表名2.列名1.....
    from 表名1,表名2
    where 表名1.列名1=表名2.列名1; (where关联中的 表名1中的列名1与表名2中的列名1 数据结构数据内容均一致才能实现关联)
    

2.# 内连接

内连接特征(默认就是内连接):查询到的内容均为两张表的关联内容 (例:s 1234 c3456 查询结果只有34 )

通过inner join on 实现表连接

格式:select 表名1.列名1,表名2.列名1…

from 表名1 join 表名2

on 表名1.列名1 =表名2.列名1

多表连接

(表>2)

格式一:select 表名1.列名1,表名1.列名2,表名2.列名1,表名2.列名2,表名3.列名1,表名3.列名3…

from 表名1,表名2,表名3

where 表名1.列名1=表名2.列名1 and 表名2.列名1=表名3.列名1 (关联表中的列数据,数据结构相同)

格式二:

select 表名1.列名1,表名1.列名2,表名2.列名1,表名2.列名2,表名3.列名1,表名3.列名3…

from 表名1 [inner] join 表名2

on 表名1.列名1= 表名2.列名1 [inner] join 表名3

on 表名2.列名1=表名3.列名1…

外部连接特征:至少会返回出一个表的所有内容

分类:左外部连接、右外部连接

​ 左外部连接:对左边的表不加限制,返回左表的所有行(如果左表中的的某行在右表中没有找到相匹的行,则结果集中的右表相对应的位置为Null)

​ 右外部连接:对右边的表不加限制,放回右表的所有行(如果右表中的的某行在右表中没有找到相匹的行,则结果集中的左表相对应的位置为Null)

在from之后,先写的表是左表,后写的表是右表

左外部连接:

select 表名 列名
from 表名1 left outer join 表名2
on 表名1.列 = 表名2.列
[where 条件]

在这里插入图片描述

在这里插入图片描述

例:

右外部连接:

select 表名 列名
from 表名1 right outer join 表名2
on 表名1.列 = 表名2.列
[where 条件]

在这里插入图片描述

子查询

指的就是子查询里面嵌套查询语句

子查询可以嵌套在select ,insert,update,delete

where条件要什么子查询就查什么

格式:

select 列名 from 表名 where 列名 in(elect 列名 from 表名 where 条件)

mySQL函数

字符串函数

length:求字符串的字节长度(mysql:一个汉字占三个字节,一个英文字母占一个字节)

char_length: 求字符串长度

MID:提取函数

mid(原始数据,起始位置,截取长度),位置从)位置从0开始

数值函数

round:(原始数据(可以为聚合函数),保留的小数位)

round:(原始数据) :只保留整数部分

least:可以求取最小数字

select least(1,2,3,4,5)

greatest:可以求取最大数字

select greatest(1,2,3,4,5)

日期时间函数

select now() 获取日期和时间

select current_date() 获取当前日期

select current_time() 获取当前时间

… to_days(日期值) 将日期转换为总天数

… datetoyear (日期值) 求该年已过天数

… week(日期值) 已过的周数

控制函数

if 有三个参数,布尔表达式为true则输出第二个参数,为空或者false输出第三个函数

select if (布尔表达式,‘参数1’,‘参数2’)

ifnull 有两个参数,第一个参数为空输出第二个参数,否则输出第一个

select ifnull(null ,‘参数’)

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MybatisPlus的代码生成器(即mybatisplus-generator)是一个很方便的工具,可以根据数据库表结构自动生成对应的Java实体类、Mapper接口和XML映射文件等代码。然而,原生的MybatisPlus代码生成器不支持人大金仓数据库。但是,根据引用提供的信息,可以使用扩展了代码生成器的类,来支持人大金仓数据库。此扩展类继承自AutoGenerator,并命名为LesAutoGenerator。这个扩展类解决了数据库注释换行导致代码生成后的问题。 如果你想要使用MybatisPlus多表代码生成器,可以参考以下步骤: 1. 首先,在你的项目中添加MybatisPlus和Velocity的Maven依赖。这些依赖在引用中已经给出了示例代码。 2. 然后,根据你的数据库配置,修改代码生成器的配置信息,比如数据库连接URL、用户名、密码等。 3. 接下来,创建一个LesAutoGenerator的实例,并设置相关的配置信息,如生成的代码的包名、生成路径等。 4. 最后,调用LesAutoGenerator的execute()方法来执行代码生成。 通过以上步骤,你就可以使用MybatisPlus的多表代码生成器来自动生成与人大金仓数据库对应的Java代码了。请注意,如果你使用的是其他数据库,可以使用原生的MybatisPlus代码生成器即可,无需使用扩展类。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [mybatisplus-generator 代码生成器 人大金仓数据库支持扩展](https://download.csdn.net/download/fenglangbxl/36490259)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [SpringBoot+MybatisPlus+代码生成器整合示例](https://download.csdn.net/download/weixin_38639747/12727040)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Mybatis-plus代码生成器多表同时生成](https://blog.csdn.net/qq_45860901/article/details/125941798)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值