初入javaEE 之学习篇数据库MYSQL二

本文深入探讨了SQL查询的高级技术,包括多表连接、数据筛选、排序、分组、去重等功能,详细解释了IN、JOIN、GROUP BY、DISTINCT等关键字的使用方法,并提供了实际案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库sql分析:

多表连接分为:内连接,外连接

外连接:分为左连接、右连接

关键字用法:

IN ,遍历字段,相当于python 的in关键字

JOIN 连接

OR, AND,或者 并且

ORDER BY:可以定义排序字段

GROUP BY:分组,根据某一个或多个字段分组

distinct:,某一个字段去重

例如:

SELECT
    count( DISTINCT a.id) 
FROM
    table 
WHERE
    1 = 1 
 

in 包含

not in 不包含

exists 存在某条记录

LIMIT(5,5) 限制数量,从角标5开始,后面5条数据 

desc 降序

asc 升序

unino 用来查询额外的数量进行组合,

TO_DAYS(NoW()) :将今天的实现转化为天数,可用于比较

 DATE_FORMAT( date, '%Y%m' ) 格式化时间,可以判断年月是否相等

LIKE CONCAT(str,str,str,...) 可动态模糊匹配
case 

when  表达式 then 查询语法

... 

else 查询语法

end 条件判断法,可以用来判断条件不同表查询

if(a.value is not null,a.value,b.value) as value 判断,取不同的值

having , count 和GROUP BY 组合可以判断某个值在表中有多条记录

例如:

SELECT
*,
    count(a.ATT_ID) as attId
FROM
    crm.ccc_att_detail a
WHERE
    1 = 1 
    GROUP BY 
    a.ATT_ID
    HAVING count(attId)>1

    

mysql:列转行

GROUP_CONCAT( depart_name ORDER BY org_code SEPARATOR '/' ) 

depart_name 需要后边的字段  /符号隔开   

order by 后面的字段为排序字段

SELECT
org_code,
depart_name,
(
SELECT
GROUP_CONCAT( depart_name ORDER BY org_code SEPARATOR '/' )
FROM
`sys_depart`
WHERE
sd.org_code LIKE concat( org_code, '%' )
AND parent_id IS NOT NULL
) AS depart_full_name
FROM
`sys_depart` sd
WHERE
sd.org_code =  #{orgCode}

行专列:

SUBSTR(house_no, 1, 4) AS column;

mybatisPlus  xml 转义:

转义字符:

<= 转义 &lt;= >= 转义 &gt;=

XML <![CDATA[ ]]>  :它是一种可以忽略掉如< , &等这种符号。有一种转义的效果。

[html]  view plain  copy
<if test="null!=s and ''!=s">  
    <![CDATA[ and s < '3'     ]]> 
</if> 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值