MYSQL中的整数型数据类型都可以指定显示宽度,而SQLSERVER不行
创建一个表
CREATE TABLE tb_emp( id BIGINT(1))
id字段的数据类型为BIGINT(1),注意到后面的数字1,这表示的是该数据类型指定的显示宽度,指定能够显示的数值中数字的个数。
例如,假设声明一个INT类型的字段 YEAR INT(4)
该声明指明,在year字段中的数据一般只显示4位数字的宽度。
在SQLSERVER里是会报错的 CREATE TABLE abc (id INT(11))
消息 2716,级别 16,状态 1,第 1 行
第 1 个列、参数或变量: 不能对数据类型 int 指定列宽。
显示宽度和数据类型的取值范围是无关的。显示宽度只是指明MYSQL最大可能显示的数字个数,数值的位数小于指定的宽度时会有空格填充
如果插入了大于显示宽度的值,只要该值不超过该类型整数的取值范围,数值依然可以插入,而且能显示出来。
例如,向year字段插入一个数值19999,当使用select查询的时候,MYSQL显示的将是完整带有5位数字的19999,而不是4位数字的值
如果不指定显示宽度,则MYSQL为每一种类型指定默认的宽度值
tips:显示宽度只用于显示,并不能限制取值范围和占用空间,例如:INT(3)会占用4个字节的存储空间,并且允许的最大值也不会是999,而是INT整型
所允许的最大值。 查看字段的长度 SQLSERVER
USE [sss] GO
SELECT LEN([NAME]) FROM [dbo].[aa]
MYSQL
CREATE TABLE tmp13(vb VARBINARY(10))
INSERT INTO tmp13 (vb) VALUES(12)
SELECT LENGTH(vb) FROM tmp13
INSERT INTO tmp13 (vb) VALUES(1212)
MYSQL里的BLOB数据类型
BLOB是一个二进制大对象,用来存储可变数量的数据。BLOB类型分为4种:TinyBlob、Blob、MediumBlob、LongBlob,
这几个类型之间的唯一区别是在存储文件的最大大小上不同。
MySQL的四种BLOB类型 类型 大小(单位:字节) TinyBlob 最大 255 Blob 最大 65K MediumBlob 最大 16M LongBlob 最大 4G
BLOB列存储的是二进制字符串(字节字符串);TEXT列存储的是非二进制字符串(字符字符串)。 BLOB列没有字符集,并且排序和比较基于列值字节的数值;TEXT列有一个字符集,并且根据字符集对值进行排序和比较
BLOB是二进制字符串,TEXT是非二进制字符串,两者均可存放大容量的信息。BLOB主要存储图片、音频信息等, 而TEXT只能存储文本文件。
SQLSERVER
SQLSERVER并没有BLOB数据类型,只有大型对象数据类型(BLOB): text,ntext,image,nvarchar(max),varchar(max),varbinary(max)和xml数据类型 这些数据类型的数据都存放在LOB类型的数据页面里
如有不对的地方,欢迎大家拍砖o(∩_∩)o 其他类型
第11章:列类型
目录
11.1. 列类型概述
11.1.1. 数值类型概述 11.1.2. 日期和时间类型概述 11.1.3. 字符串类型概述 11.2. 数值类型 11.3. 日期和时间类型
11.3.1. DATETIME、DATE和TIMESTAMP类型