八、SQL语法差异及解决方案①(数据类型差异)

常见数据库管理系统
商业化的有:Oracle、MSSQLServer、DB2、SybaseSQLServer、Informix
开源的有:MYSQL、SQLite、SimpleSQL、Berkely DB、Minosse、Firebird、HSQLDB等
这些数据库产品的出现给了开发者更多的选择余地,如:
Oracle或者DB2:系统对安全性、稳定性以及售后技术支持要求非常高
MSSQLServer:系统只运行在Windows操作系统下
MYSQL:免费的
HSQLDB等嵌入式数据库系统:只是提供一个方便数据存取机制

各个数据库管理系统支持的SQL语法是存在一定差异的,在Oracle下能够成功运行的SQL迁移到DB2下可能就无法运行。

数据类型差异

整数类型:

MYSQL中整数相关的类型有:tinyint、smallint、mediumint、int、integer和bigint

MSSQLServer中整数相关的类型有:bit、int、smallint、tinyint 、bigint

Oracle中整数相关的类型有:number

DB2中整数相关的类型有:smallint、integer 、bigint

数值类型:

MYSQL中数值相关的类型有:float、double、real、decimal和numeric

MSSQLServer 中数值相关的类型有:decimal、numeric、money、smallmoney 、float 和real

Oracle中数值相关的类型有number

DB2中数值相关的类型有decimal、numeric、real和double

字符类型:

MYSQL中字符相关的类型有:char、varchar、tinytext、text、mediumtext、longtext、enum、set
MSSQLServer中字符相关的类型有char、varchar、text、nchar、nvarchar和ntext

Oracle中字符相关的类型有char、varchar2、nvarchar2、clob 和nclob

DB2中字符相关的类型有CHARACTER、VARCHAR、LONG VARCHAR、CLOB、GRAPHIC、VARGRAPHIC和LONG VARGRAPHIC

日期时间类型:

MYSQL 中日期时间相关的类型有date、time、datetime、timestamp和year

MSSQLServer 中日期时间相关的类型有datetime、smalldatetime 和timestamp

Oracle 中日期时间相关的类型有:date 和timestamp
在DB2 中日期时间相关的类型有DATE、TIME 和TIMESTAMP

二进制类型:

MYSQL、Oracle和DB2都支持Blob类型,而在MSSQLServer中支持image类型。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容