SQL中的五种数据类型:字符型,文本型,数值型,逻辑型和日期型
一 字符型 char,varchar,nvarchar
char和varchar的区别在于,varchar占用的空间会自动调节,用于不确定的字符长度。比如你定义varchar(40),但是在插入数据的时候只插入'aaaa',那么它只占用4个字节的空间,如果是char则是40
nvarchar一盘用来存储汉字,如果用它来存储英文会浪费一个字节的空间
SQL中varchar和nvarchar区别
varchar(n)
长度为n个字节的可变长度且非Unicode的字符数据。n必须是一个介于1和8,000之间的数值。存储大小为输入数据的字节的实际长度,而不是n个字节。
nvarchar(n)
包含n个字符的可变长度Unicode字符数据。n的值必须介于1与4,000之间。字节的存储大小是所输入字符个数的两倍。
两字段分别有字段值:我和coffee
那么varchar字段占2×2+6=10个字节的存储空间,而nvarchar字段占8×2=16个字节的存储空间。
如字段值只是英文可选择varchar,而字段值存在较多的双字节(中文、韩文等)字符时用nvarchar
上面是一个总结介绍,通过上面的介绍,可以知道。
varchar(4)可以输入4个字母,也可以输入两个汉字
nvarchar(4)可以输四个汉字,也可以输4个字母,但最多四个
注释:字节 字符 Unicode
Unicode数据 简单的说: 任何一个字符都占2字节
非Unicode 字母和数字等占1个字节,其它的语言字符如汉字占2个字节
二文本型
TEXT
(1).需要存储大串的字符时,应该使用文本型数据
(2).text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符
(3).一旦你向文本型字段中输入了任何数据(甚至是空值),就会有2K的空间被自动分配给该数据。除非删除该记录,否则你无法收回这部分存储空间。滥用文本型字段会使服务器速度变慢。文本型字段还会吃掉大量的磁盘空间.
三数值型 整数INT 、小数 NUMERIC、和钱数 MONEY
(1)int、bigint、smallint 和 tinyint范围
INT : 从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647)的整型数据(所有数字)。存储大小为4个字节,同义字为 integer。
bigint : 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节
smallint: 从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。存储大小为 2 个字节
tinyint: 从0到255的整型数据。存储大小为1字节
(2)Numeric(10,2) 指字段是数字型,长度为10小数为两位的
四逻辑型 BIT
如果你使用复选框( CHECKBOX)从网页中搜集信息,你可以把此信息存储在BIT型字段中。BIT型字段只能取两个值:0或1。
如果你创建好一个表之后,你不能向表中添加 BIT型字段。如果你打算在一个表中包含BIT型字段,你必须在创建表时完成。
如何获取页面中所有的checkbox?
五日期型 DATETIME SMALLDATETIME
(1)datetime 的日期范围比较大;timestamp 所占存储空间比较小只是datetime 的一半
(2)DATETIME型字段在你输入日期和时间之前并不包含实际的数据
(3)DATETIME型的字段可以存储的日期范围是从1753年1月1日第一毫秒到9999年12月31日最后一毫秒,SMALLDATETIME型的字段能够存储从1900年1月1日到2079年6月6日的日期,它只能精确到秒。
(4)DATETIME型的字段用8个字节存储日期时间值,而SMALLDATETIME型的字段只使用4个字节存储精确到1分钟的日期时间。