sql serve中的数据类型(详解)

本篇参考书籍《 数据库原理及应用–SQL Server 2012》

目录

  • 一、整形数据
    • (1) int类型:
    • (2) smallint类型:
    • (3) tinyint类型:
    • (4) bit类型
  • 二、浮点型数据
    • (1) real类型
    • (2) float类型:
  • 三、字符串类型
    • (1) char[n];固定长度
    • (2) nchar(n) 类型:
    • (3) varchar[n]类型:可变长度
    • (4) text:用于存储大量文本数据
  • 四、日期和时间数据类型
    • (1) date类型: 只用来存储日期.
    • (2) time类型 :只用来存储时间
    • (3) datatime:用于存取日期和时间的结合体
    • (4) smalldatetime类型:
  • 五. 货币数据类型
    • (1) money:
    • (2) smallmoney:

一、整形数据

(1) int类型:

数据可存储范围: 可以存储-2^31 ~ 2^31-1之间所有的 正负整数,
占用空间: 4个字节(每个int类型数据).

(2) smallint类型:

数据可存储范围:-2^15~ 2^15-1之间所有的 正负整数,
占用空间:2个字节

(3) tinyint类型:

数据可存储范围:0~255之间所有的 整数,
占用空间:1个字节

(4) bit类型

数据可存储范围:用于存储1、0或NULL(表示空),非常适合用于开关标记.
占用空间:一个字节

二、浮点型数据

(1) real类型

数据可存储范围:-3.40×10^-38~ 3.40×10^38
(可以精确到小数点后的第7位小数)
占用空间:占4个字节

(2) float类型:

数据可存储范围:-1.79×10^-308 ~ 1.79×10^-308
(可精确到第15位小数)
占用空间:占8个字节

三、字符串类型

字符串类型用于存储字符型数据,如字母、数学符号、特殊符号.但是要注意,在使用字符数据时要加" ’ “(单引号),在数据库中,并没有单独的字符类型,字符和字符串都是用单引号括起来,这与在c语言中字符串要用”"(双引号)括起来不同.

(1) char[n];固定长度

数据可存储范围:1~8000
占用空间:占用n个字节
其中,n是自己设定的数字, 用于存储n个字符长度的数据,

  1. 如果没有设置n的值,系统会默认设置为1,即只能存储一个字符.

  2. 如果输入的数据实际长度小于n,系统会自动在其后添加空格来填满设定好的空间.
    例如:
    sql serve中的数据类型(详解)_第1张图片

  3. 如果输入的数据实际长度大于n,系统则会自动截掉其超出部分
    sql serve中的数据类型(详解)_第2张图片

(2) nchar(n) 类型:

存储统一编码字符型数据n(括号里面的n)取值范围是1~4000,用双字节结构来存储每个字符.
n表示Unicode字符,即所有字符都占两个字节,nchar,nvarchar
字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。

(3) varchar[n]类型:可变长度

n取值范围是1~8000
存储的大小是输入数据的实际长度+2个字节,若输入的数据小于n,系统不会在后面添加空格.

(4) text:用于存储大量文本数据

数据可存储范围:理论上是可以存储1~2^31-1个字节,在实际编程中应根据具体需要而定.
思考?
那么为什么不都用可变长字符串 varchar类型呢?这样不是更方便的吗?可以节省存储空间.
其实char类型有char类型的优点,char的存取速度还是要比varchar要快得多,方便程序的存储与查找;但是char也为此付出的是空间的代价,因为其长度固定,所以会占据多余的空间,可谓是以空间换取时间效率.。varchar则刚好相反,以时间换空间.。

四、日期和时间数据类型

(1) date类型: 只用来存储日期.

是sql server2008新引进的数据类型,
存储格式:“YYYY-MM-DD”
占用空间:占用三个字节
数据可存储范围:0001-01-01~9999-12-31

(2) time类型 :只用来存储时间

存储格式:“hh:mm:ss”
占用空间:3~5个字节
数据可存储范围:00:00:00:0000000(7个0)~23:59:59.9999 999(7个0)

(3) datatime:用于存取日期和时间的结合体

存储格式:“YYYY-MM-DD hh:mm:ss[.nnnnnnn]”(7个n)
占用空间:8个字节
数据可存储范围:1753-01-01~9999-12-31

(4) smalldatetime类型:

范围比datatime要小,且精度为分钟
数据可存储范围:1900-1-1~2079-6-6
占用空间:四个字节

五. 货币数据类型

货币数据类型用于存储币值,在使用数据类型的时候,应在数据前加上货币符号,比如:¥100.23或$66.66

(1) money:

是一个有4位小数的decimal值
数据可存储范围:-2^63~ 2^63-1
占用空间:8个字节

(2) smallmoney:

与money类型相似,只是范围更小
数据可存储范围:-2^31 ~ 2^31-1
占用空间:4个字节

你可能感兴趣的:(资料,sql,数据库,mysql)