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

数据库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;

你可能感兴趣的:(mysql)