数据库原理与应用(8)——数据类型
- SQL使用数据定义语言(Data Definition Language,DDL)实现数据定义功能。
- 关系表中每一列(即每个字段)都来自同一个域,属于同一种数据类型
- 常见数据表之前,需要为表中的每一个属性设置一种数据类型
1、整数型
按照取值范围从大到小,包括bigint,int,smallint,tinyint,bit。在实际应用中,可以根据属性的具体取值范围选择合适的整数型
2、数值型
- 包括精确数值型numeric,decimal和近似数值型float,real
- numeric与decimal在功能上等效,用于精确存储数值
- 以numeric为例,格式为numeric(p,s),其中p表示数据长度,s表示小数位数
- float和real用来存储数据的近似值,当数值的位数太多时,可用它们存取数值的近似值
3、字符型
- 包括char,varchar,nchar,nvarchar,text,ntext。其中,char,varchar存放非Unicode字符(即ASCII字符),一个字符占1个字节,char是定长的,varchar是非定长的
- nchar、nvarchar存放Unicode字符,一个字符占2个字节,nchar是定长的,nvarchar是非定长的。
- 当某个字符型属性需要描述的字符数比较多时,可以将其设置为text,ntext。其中,text存放非Unicode字符,定长,最大可存储2GB;ntext存放Unicode字符,非定长,最大可存储2GB
4、二进制数据型
- 包括binary、varbinary、image。
- binary是定长的二进制数据型,varbinary是非定长的二进制数据型,二者最多可以表示8000个字节。任何类型的数据都可存储在这种类型的字段中,不需数据转换。
5、特殊类型
- 包括timestamp,uniqueidentifier,sql_variant,table
- timestamp数据类型提供数据库范围内的唯一值,此类型相当于binary(8)或varbinary(8),但当它所定义的列更新或添加数据行时,此列的值会被自动更新,一个计数值将自动的添加到此timestamp数据列中。每个数据库表中只能有一个timestamp数据列。
- uniqueidentifier数据类型称为全球唯一标识符(Globally Unique Identifier,GUID),可用NEWID()函数产生
- sql_variant数据类型可以存储除文本、图形数据和timestamp类型数据外的其他任何合法的SQL Server数据,此数据类型大大方便了SQL Server的开发工作。
- table数据类型用于存储对表或视图处理后的结果集,这一类型使得变量可以存储一个表,从而使函数或过程返回查询结果更加方便、快捷