Mysql
mysql由瑞典mysql AB公司开发,目前属于oracle旗下产品。
mysql在web应用方面是最流行的关系型数据库管理系统之一,mysql软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择mysql作为网站数据库,如LAMP环境。
02
产品发展史
开源协议差异
mysql采用双重许可方法:
03
瀚高安全版数据库特点
04
瀚高企业版数据库特点
强大的新一代内核升级
丰富的企业级基因
原有自研功能的延续与改进
强大的新扩展
国产化硬件支持主流的国产平台
兼
容
分
析
01
兼容参数
兼容参数1:compatible_db
默认为“none”,表示关闭兼容模式;
设置为“oracle”表示开启oracle兼容模式,适用于源库是oracle的场合;
设置为“mysql”表示开启mysql兼容模式,适用于源库是mysql的场合;
在postgresql.conf文件中增加compatible_db = mysql;开启mysql兼容模式;
执行重载命令pg_ctl reload生效参数;
登录数据库执行show compatible_db;来查看参数是否生效。
在数据库会话中执行set compatible_db = mysql;临时开启mysql兼容模式,会话级别。
show compatible_db;来查看参数是否生效。
兼容参数2:case_sensitive_db
HighGo DB
MySQL
兼容参数3:lower_case_table_names
功能介绍:
表名大小写控制参数。该参数的可取值为0、1、2,默认值为0。1是表名转小写(不敏感),2和0一样都是大、小、混合写敏感。要与参数1和参数2结合使用。重载生效。
案例2:
此参数默认为0,0和2的效果一样,可以参考上面的案例1。接下来测试为1时表名不敏感:
兼容参数4:flatten_keyword_list
兼容参数5:
session_restore_keyword_list
兼容参数6:flatten_sconst_list
功能介绍:
可配置任意sconst到此列表中,被配置的sconst会被当做普通的标识符识别(此参数需要compatible_db设为mysql时生效)。默认无,需要手动追加postgresql.conf中,并重载生效。
案例5:
在案例4的基础上,测试正常命名的别名加引号和保留关键字作别名加引号的情况。
设置前报错:
在postgresql.conf中配置并使其生效:
配置需要做别名的带引号的字符串后,跟mysql用法完全兼容:
兼容参数7:
session_restore_sconst_list
flatten_ sconst _list中配置的对应值sm无效:
兼容参数8:
func_args_emptystr_to_null
其他兼容参数及注意事项
02
兼容数据类型
兼容数据类型1:text
兼容数据类型2:timestamp
兼容数据类型3:bytea
其他兼容数据类型
03
兼容函数
兼容函数1:date_sub
HighGo DB
MySQL
兼容函数2:date_add
HighGo DB
MySQL
兼容函数3:datediff
HighGo DB
MySQL
兼容函数4:replace
HighGo DB
MySQL
兼容函数5:unix_timestamp
HighGo DB
MySQL
兼容函数6:from_unixtime
HighGo DB
MySQL
兼容函数7:if
HighGo DB
MySQL
兼容函数8:group_concat
HighGo DB
MySQL
兼容函数9:field
HighGo DB
MySQL
兼容函数10:left
HighGo DB
MySQL
其他兼容函数
04
兼容语法
兼容语法1:简化分组排序的规则
兼容mysql的group by用法,无论是否存在主键,group by子句中的列允许少于目标列。
兼容mysql的distinct+order by用法,使用distinct时,order by子句中的列允许不在目标列。
HighGo DB
MySQL
兼容语法2:DELETE table_name
DELETE table_name[.*]
[,table_name[.*] ...] FROM [ ONLY] table_name
[*][,talbe_name [*]...] [ [ AS ] alias ]
[USING using_list]
[WHERE condition | WHERE CURRENT OF cursor_name ]
[RETURING *| output_expression [ [ AS ]
output_name ] [ , ... ] ]
HighGo DB
MySQL
兼容语法3:会话变量
HighGo DB
MySQL
兼容语法4:case…when…then和else
兼容说明:
then和else类型可以不一致。
差异说明:
HighGo DB
MySQL
兼容语法5:别名加单引号
HighGo DB
MySQL
其他兼容语法
S
Q
L
语
法
兼
容
评
估
01
SQL语法兼容评估工具介绍
1.SQL语法兼容评估工具介绍
2.环境要求:JDK1.8
3.项目结构
4.启动方式
5.兼容评估工具使用说明
6.生成兼容报告工具使用说明
02
SQL语法兼容评估使用
(以mysql为例)
mysql数据库获取SQL需要依赖mysql的日志,下面介绍开启mysql日志的过程。
1.查看日志配置
2.工具使用
03
SQL检查生成报告工具的使用
1.选择ssc源文件
2.生成兼容报告
如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!
加入交流群
请使用微信扫一扫!