Mysql学习笔记整理手册

[TOC]
继上一篇博客《Oracle学习笔记整理手册》之后,我再写一篇Mysql版本的

PS:本博客收录自己工作中遇到学到的一些mysql技能,有时间就更新整理一下

(1) str_to_date

oracle有to_date函数,Mysql的格式是str_to_date(‘2019-02-12 11:34:32’, ‘%Y-%m-%d %H:%i:%s’)

(2) 递归查询

oracle实现递归查询的话,就可以使用start with … connect by,mysql并没有通过类似函数,解决方法是通过自定义函数的方法,具体可以参考我这篇博客
https://blog.csdn.net/u014427391/article/details/87297884

(3) 排序问题

oracle做数据排序的时候,有时候可以用nulls first或者nulls last将null值排在最前或者最后。
不过迁到Mysql的话,mysql并没有提供类似函数,所以要怎么实现?下面给出解决方法:
null值排在最后,用Mysql的IF和ISNULL函数。如果为空返回1,否返回0

select * from A order by IF(ISNULL(a),1,0),a desc
1
null值排在最前,用Mysql的IF和ISNULL函数。如果为空返回0,否返回1

select * from A order by IF(ISNULL(a),0,1),a desc
1
具体可以参考我写的这篇博客:https://blog.csdn.net/u014427391/article/details/87297068

(4) 条件函数

条件函数比如case..when在mysql、Oracle都是有的,除了case...when这最基本之外,Oracle有nvl、nvl2和decode函数,Mysql没有提供类似decode的函数,不过有类似Oracle的nvl和nvl2函数。

Oracle
介绍一下oracle的nvl函数和nvl2函数。

nvl函数
nvl函数基本语法为nvl(E1,E2),意思是E1为null就返回E2,不为null就返回E1。

nvl2函数
nvl2函数的是nvl函数的拓展,基本语法为nvl2(E1,E2,E3),意思是E1为null,就返回E3,不为null就返回E2。
nvl函数具体可以参考我这篇博客:https://blog.csdn.net/u014427391/article/details/84996009

Mysql

上面是Oracle的做法,mysql的做法可以用IFNULL(E1,E2)函数,其功能类似与Oracle的nvl函数。意思是E1为null就返回E2,不为null就返回E1。

Mysql IF函数,这里可以和Oracle的nvl2函数做对比,不过差别比较大了,nvl2函数是针对数值为空的情况,IF函数是针对自定义条件的

格式:IF(Condition,A,B)
意义:当Condition为TRUE时,返回A;当Condition为FALSE时,返回B。

(5) 列转行函数

Oracle列转行函数可以用vm_comcat函数,mysql的用concat_ws函数
使用方法:
CONCAT_WS(separator,str1,str2,...)
eg:

select concat_ws(',','11','22','33');

Oracle列转行函数的可以参考我以前博客:https://blog.csdn.net/u014427391/article/details/84981114

列转行函数不兼容问题:https://blog.csdn.net/u014427391/article/details/84867390

(6) find_int_set

Mysql有提供一个find_int_set函数,其语法为FIND_IN_SET(str,strlist)

  • str: 要查询的字符串
  • strlist: 序列,用逗号分隔,比如(1,2,3)

这个函数只要用于查询的时候,查询字符串是否在strlist序列里,like查询只是广泛的模糊匹配

(7) 类型转换函数

mysql的类型转换函数为cast(字段 as 类型),
mysql支持的类型有

  • CHAR[(N)] 字符型
  • DATE 日期型
  • DATETIME 日期和时间型
  • DECIMAL float型
  • SIGNED int
  • TIME 时间型

(8) 合并更新

Oracle实现merge into实现,意思是数据表已经有数据就更新,没数据就新增
mysql的函数是replace into,语法


    replace into 表格(字段,...) values(数据,...)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容

  • @[toc]最近在做项目迁移,Oracle版本的迁到Mysql版本,遇到有些oracle的函数,mysql并没有,...
    smileNicky阅读 7,946评论 0 5
  • SQL 语法大全 标签(空格分隔): SQL DB2 SQL语法大全 SQL SELECT SQL SELECT ...
    lumicinta阅读 12,608评论 3 196
  • SELECT:查询一个/多个/全部字段,也可以在列上做运算或链接,列别名和表别名。查询分为条件查询、排序查询、分组...
    TESTME阅读 1,009评论 0 2
  • (一) 没有人关心松鼠是否敲开了果壳,没有人知道候鸟是否完成了迁徙; 没有人数过章鱼有几只触角,没有人赞美龙虾换上...
    Equator阅读 1,073评论 1 2
  • 一 : 常用API ① : 获取isa指向,获得类对象或者元类对象 ② : 修改isa指向 ③ : 判断一个oc对...
    TianTianBaby223阅读 290评论 1 1