mysql数据类型mssql_MYSQL 与MSSQL 数据类型 对比

MYSQL版本5.1

MSSQL 2008

--MYSQL5.1 与MSSQL 2008 数据类型 对比 --分类:A 数值类型,B 日期时间类型 ,C 字符串类型 --A.数值类型 BIT(M),BOOL/BOOLEN ---与MSSQL相比BIT代表的意思不一样,BOOL与MSSQL BIT类似 但是也不一样,BOOL 与MYSQL TINYINT(1)一样,所以与MSSQL BIT 非0为1不一样(除NULL) TINYINT,SMALLINT,MEDIUMINT,BIGINT  --都可以指定 [(M)] [UNSIGNED] [ZEROFILL] --MYSQL 比MSSQL 多出来了一个MEDIUMINT类型 占3个字节 --当两个操作数均为整数值时,-、+和* 操作符使用BIGINT算法。这说明如果乘两个大整数(或来自返回整数的函数),当结果大于9223372036854775807时,会得到意想不到的结果。 --这太不好了。。要不然就是报错不支持好点,来个意想不到的结果。。。 FLOAT,DOUBLE --相比MSSQL 来说 他们也能声明(M,D) 精度,小数位。 DECIMAL,NUMERIC,FIXED --比MYSQL 多了另一个同义词FIXED --DECIMAL整数最大位数(M)为65。支持的十进制数的最大位数(D)是30。如果D被省略, 默认是0。如果M被省略, 默认是10。 --这与MSSQL 相比来说 精度最大38 相差比较大。 --以上后面三者还有差异是与MSSQL相比 可以声明是否正负也就是unsigned标志 ,还能设计显示格式 用zerofill 来填充指定的M长度, --unsigned标志来确定有无符号,如果是无符号的,你值是有符号也将是无符号的。如果指定用 zerofill 的话,表示是unsigned的 --相比MSSQL来说少了两个货币类型 SmallMoney  Money   --B.日期时间类型 DATE  --范围为'1000-01-01'到'9999-12-31'  3字节 ,MSSQL 0001-01-01 到 9999-12-31 差的比较远啊。3字节 TIME --范围是'-838:59:59'到'838:59:59'。3字节。 --MSSQL DATE(1-7) 00:00:00.0000000 到 23:59:59.9999999  固定5字节。 DATETIME --支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'  8字节。 --MSSQL 1753 年 1 月 1 日到 9999 年 12 月 31 日 8字节 TIMESTAMP --时间戳。范围是'1970-01-01 00:00:00'到2037年。 YEAR[(2|4)] --两位或四位格式的年。默认是四位格式。在四位格式中,允许的值是1901到2155和0000。在两位格式中,允许的值是70到69,表示从1970年到2069 相对MSSQL 来比 少了 SMALLDATETIME, TETIME2  --精度小于 3 时为 6 个字节;精度为 4 和 5 时为 7 个字节。所有其他精度则需要 8 个字节。 DATETIMEOFFSET  三个时间类型 但是多了个YEAR类型 对于日期类型,MYSQL 有严格模式 和NO_ZERO_DATE 模式 ,限制有点宽松,如果NO_ZERO_DATE 模式 如果转不过去时间就是0表示,并警告 MSSQL 如果是不能转成日期 则报错。MYSQL 对于日期的输入格式 不太严格 --C.字符串类型 CHAR --CHAR列的长度固定为创建表时声明的长度。长度可以为从0到255的任何值。 --当保存CHAR值时,在它们的右边填充空格以达到指定的长度。当检索到CHAR值时,尾部的空格被删除掉。在存储或检索过程中不进行大小写转换。 --而MSSQL 是1-8000个字节。 查时也会去掉空格。 VARCHAR --VARCHAR列中的值为可变长字符串。长度可以指定为0到65,535之间的值。(VARCHAR的最大有效长度由最大行大小和使用的字符集确定。整体最大长度是65,532字节)。 --同CHAR对比,VARCHAR值保存时只保存需要的字符数,另加一个字节来记录长度(如果列声明的长度超过255,则使用两个字节)。 --VARCHAR值保存时不进行填充。当值保存和检索时尾部的空格仍保留 --而MSSQL n 的取值范围为 1 至 8,000。max 指示最大存储大小是 2^31-1 个字节。存储大小是输入数据的实际长度加 2 个字节 --进行查找时,也会去掉尾部空格 BINARY VARBINARY --以上与MSSQL都类似 BLOB TEXT --他们还分了TINY,MEDIUM。。。分类。而MSSQL没分。 --相对MSSQL来说少了一个image二进制数据 ENUM SET --多出来两个集合类型,相当于程序里面的类(对象)这种形式了 比如ENUM('男','女') --对于MSSQL来说少分类了UICODE 单独的字符串类型 NCHAR NVARCHAR(MYSQL 是通过字符集来限定)。以及VARCHAR/NVARCHAR(MAX) 与MSSQL 相比还差的其他数据类型 1.SQL_VARIANT --用于存储 SQL Server 支持的各种数据类型(不包括 text、ntext、image、timestamp 和 sql_variant)的值。 2.XML 数据类型 3.uniqueidentifier  4.表变量 table MYSQL 的数据类型 貌似没有专门的系统表存储,而且不能创建自己定义的类型。 MSSQL 有专门的系统表来存储 所有数据类型。还可以依靠 系统类型创建自己定义的类型,2K5以后还能利用CLR创建类型 MYSQL也没有数据类型的优先级 描述。 都 有 CAST 和CONVERT 函数 CAST(expr AS type), CONVERT(expr,type) , CONVERT(expr USING transcoding_name) 。与MSSQL有差异。 MYSQL 也没有加减乘除的精度运算规则

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值