运营百科

baike

每天一个入坑小技巧:MySql和oracle语法区别(今日追加)

iseeyu4年前 (2022-10-15)运营百科281

一、数据类别

  • Number类别
MySQL中是没Number类别的,但有int/decimal类别,
Oracle中的Number(5,1)相关联MySQL中的decimal(5,1),
Number(5) 相关联int(5)。MySQL中的双蝴类别较为多,
分的也较为细,除了tinyint、smallint、mediumint、bigint等类别
  • Varchar2(n)类别
MySQL中相关联OracleVarchar2(n)类别的替代类别是varchar(n)类别。
  • Date 类别
MySQL 中的日期时间类别有Date、Time、Datetime等类别,
MySQL中Date类别仅表示日期(年-月-日),Time类别仅表示时间(时:分:秒),
而Datetime类别表示日期时间(年-月-日 时:分:秒),
Oracle中的Date类别和MySQL中的Datetime类别一致。

二、函数

  • length(str)函数
Oracle中的length(str)是获取字符串长度的函数,MySQL中相关联的函数为char_length(str)。
  • sys_guid()函数
Oracle中可通过sys_guid()函数是生成随机序列,MySQL通过UUID()生成随机序列。
  • 时间格式化函数
将时间转换为字符串型时间MySQLdate_format(NOW(),%Y-%m-%d) 相关联Oracle的Oracle中的to_char(sysdate,YYYY-MM-DD);       

将字符串型时间转换为时间类别MySQLstr_to_date(2019-01-01,%Y-%m-%d) 相关联Oracle中的to_date(2019-01-01,YYYY-MM-DD);       

包括时分秒的函数转换:DATE_FORMAT(NOW(),%Y-%m-%d %H:%i:%s),str_to_date(2019-01-01,%Y-%m-%d %H:%i:%s)。
  • 条件函数(nvl()、nvl2()、decode())
nvl(tab.columnName,0):如果tab.columnName值为空,则返回值取0,否则取tab.columnName;相关联的MySQL函数为:ifnull(tab.columnName,0)。

nvl2(expr1,expr2,expr3):如果expr1不为null,则返回expr2,否则返回expr3;相关联的MySQL函数为:if(expr1,expr2,expr3)。       

DECODE(value, val1, val2, val3):如果value等于val1,则返回val2,否则返回val3;MySQL可用IF函数表示:if(value=val1, val2, val3);      
DECODE(value, if1, val1, if2,val2,...,ifn, valn, val):如果value等于if1,则返回val1,如果value等于if2,则返回value2...如果value等于ifn,则返回valn,否则返回val;
MySQL对于这种判断可以通过casewhenthenelseend;l来判断,即:casewhenvalue=if1 then val1whenvalue=if2 then val2,,,whenvalue=ifn then valnelseval end;
  • trunc()函数
TRUNC(12.123):返回整数(12);MySQL相关联的函数:truncate(12.123,0);TRUNC(12.123,2):返回值保留2为小数(12.12);MySQL相关联的函数:truncate(12.123,2);TRUNC(SYSDATE):返回值为(2019-07-2600:00:00);MySQL相关联的为cast(now() as datetime):返回值为(2019-07-2614:11:38);MySQL的cast函数句法为:CAST(xxx AS 类别) 
	可用类别为:
    二进制,同带binary前缀的效果:BINARY;
    字符型,可带参数:CHAR();
    日期:DATE;
    时间:TIME;
    日期时间型:DATETIME;
    浮点数:DECIMAL;
    整数:SIGNED;
    无符号整数:UNSIGNED)
  • to_char()、to_number()
to_char(123):将数字123转换为字符串123;MySQL相关联的函数为CAST(123AS CHAR(3));to_number(123):将字符串数字123转换为数字类别;MySQL相关联的函数为cast(123as SIGNED);
  • sysdate 当前时间
sysdate:返回当前日期+时间;MySQL相关联的函数为now();

三、其他

  • 引号
MySQL可识别双引号和单引号,Oracle只能识别单引号。
  • 字符串连接符 ||
Oracle 可用||来连接字符串,但MySQL不支持||连接,MySQL可通过concat()函数链接字符串。       
Oracle的 a.studentname||【||a.studentno||】相当于 MySQL的 concat(a.studentname,【, a.studentno,】)
  • ROWNUM

Oracle可通过rownum获取前n条记录,MySQL通过limit来获取前n条记录,但二者的写法略有不同,在Oracle中rownum作为where条件的一部分,而MySQL中limit不是where条件的一部分。

-- rownum句法如下:SELECT*FROMXJ_STUDENTWHEREROWNUM=1;-- 查询第一条数据SELECT*FROMXJ_STUDENTWHEREROWNUM<=10;-- 获取前10条数据-- 但rownum不支持查询后几条或第n(n>1)条数据,例如以下sql是不支持的SELECT*FROMXJ_STUDENTWHEREROWNUM>2;SELECT*FROMXJ_STUDENTWHEREROWNUM=3;-- limit 句法如下:SELECT * from fw_department limit 3; -- 查询前3条数据SELECT*fromfw_departmentlimit2,4;-- 从第2(序号从0开始)条开始,查4条记录
  • 空数据排序(nulls first 和nulls last)
-- null值排在最前SELECT*FROMFW_DEPARTMENT AORDERBYA.REMARKDESCNULLSFIRST-- null值排在最后SELECT*FROMFW_DEPARTMENT AORDERBYA.REMARKDESCNULLSLAST-- MySQL 可通过IF和ISNULL函数达到相同的效果-- null值排在最后select*fromFW_DEPARTMENT AorderbyIF(ISNULL(A.REMARK),1,0),A.REMARKdesc-- null值排在最前select*fromFW_DEPARTMENT AorderbyIF(ISNULL(A.REMARK),0,1),A.REMARKdesc
  • 表(左/右)关联(+)

Oracle左连接,右连接可以使用(+)来实现. MySQL只能使用left join ,right join等关键字。

-- Oracle 左关联select*fromtaba, tabbwheretaba.id = tabb.id(+) ;-- Oracle 右关联select*fromtaba, tabbwheretaba.id(+) = tabb.id;-- MySQL 左关联select*fromtabaleftjointabbontaba.id=tabb.id;-- MySQL 右关联select*fromtabarightjointabbontaba.id=tabb.id;
  • with

Oracle 中可用with来构建两个临时表,但MySQL不支持with,相关联临时表,MySQL可通过小括号的方式来处理,但构建的临时表必须设置临时表名。

-- Oracle with使用WITHTMPTABAS(SELECTA.DEPIDFROMFW_DEPARTMENT A 
)SELECTDEPIDFROM TMPTAB-- MySQL 构建临时表使用(此处必须给括号中的临时表设置表名)selectb.depidfrom (selectdepidfromfw_department
) b

扫描二维码推送至手机访问。

版权声明:本文由西安泽虎代运营发布,如需转载请注明出处。

转载请注明出处https://0291.com.cn/post/2275.html

相关文章

组建短视频代运营团队需要什么人?怎么去管理及配置?

代运营其实还是比较宽泛,它包括了广告代投、视频创作、短视频SEO等业务,组建代运营团队总的来说会有以下4个步骤:一、确定关键业务组建短视频代运营团队前你得先确认创始团队的核心优势是什么?比如你们以前就是做广告投放出身的,那关键业务就以广告代投下手,其它不擅长的业务前期可以先外包,没必要组建团队,把业...

天猫六星级代运营排名

天猫六星级代运营排名

为助力品牌实现全消费者生命周期价值以及全货品生命周期价值的最大化,天猫生态服务商正在升级成为品牌数字化转型的长期价值伙伴,服务商以指标-工具-场景解决方案为轴心,将提供更专业的服务模式服务于品牌的数字化转型与升级。今年我们会从全用户和全货品周期价值管理为出发点,升级天猫生态评估模型。基于对品牌增长的...

私域电商AIPL增长模型,打造销售转化闭环

私域电商AIPL增长模型,打造销售转化闭环

编辑导语:关于私域这个话题,行业内已经有众多相关讨论,不少企业也将私域运营作为获客拉新、拉动企业增长的有效方式,私域电商也不例外。本篇文章里,作者对基于AIPL打造的私域电商增长模型做了解读,一起来看一下。越来越多的企业开始重视私域,不管是大企业还是小公司,不管是成熟的品牌还是新锐品牌,私域流量运营...

江苏城乡公交通达率全国第一!村民抬脚进城,快递坐车进村

江苏城乡公交通达率全国第一!村民抬脚进城,快递坐车进村

来源:交汇点新闻客户端交汇点讯 城乡公交一体化是公共交通向农村地区延伸的重要形式,也是城乡基本公共服务均等化的具体体现。在全省基本实现镇村公交全覆盖的基础上,64.4%的行政村实现公交直通县城,全省23个涉农区实现至少一条公交线路直达设区市主城区,国家市场监管总局最新发布的《全国公共服务质量监测情况...

消费4.0时代,如何通过全域增长穿越周期实现可持续增长?

消费4.0时代,如何通过全域增长穿越周期实现可持续增长?

成功的消费零售企业,从来都是能够打通多元的人货场、实现穿越周期的可持续增长,在数字化转型的趋势下,消费零售行业开始进入中国特色的消费4.0时代,即用户为中心的时代。不论新消费还是老消费,本质都是基于用户生命周期的需求满足和体系增长,这也是所有消费零售企业及所有面向C端生意的经营战略。本文将从当下时代...

十亿消费者,谁是下沉市场的孤勇者?

十亿消费者,谁是下沉市场的孤勇者?

本文来自微信公众号:互联网启示录(ID:netmedia),作者:王新宇,头图来源:视觉中国一、站长已死?杭州满觉陇的秋夜微凉,犹如错综复杂的小路在暗黄的灯光下,总是有一种淡淡的迷雾笼罩的感觉,史路引被我约到了山上的一间茶舍,这是一家被社交媒体塑造的非常网红的茶空间。泡茶的小姐姐很温柔的给我们演示用...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
现在,非常期待与您的又一次邂逅

我们努力让每一部企业宣传片和抖音短视频成为商业大片