标签:
字符数据的查询处理,内容包括:类型,排序规则,运算符和函数,以及模式匹配.
SQL Server支持两种字符数据类型----普通字符和Unicode字符.普通字符数据类型包括CHAR和VARCHAR,Unicode字符数据类型包括NCHAR和NVARCHAR.
普通字符和Unicode字符的区别:普通字符使用一个字节来保存每个字符,而Unicode字符则需要两个字节.
注:当表示一个普通的字符常量时,只需要简单地使用单引号:‘This is a regular charactor string literal‘;当表示一个Unicode类型的字符常量时,需要在前面指定一个字符N作为前缀,N‘This is a regular charactor string literal‘
****名称中不包含VAR元素的任何数据类型都是固定长度的(CHAR,NCHAR),对于这样的类型,SQL Server会按照为列定义的大小,在行中为该列预留出固定的空间,所以该列的长度并不是字符串中字符的实际个数----(这种类型的存储消耗不是最优的,在读取数据时可能要付出更多的代价.)
****名称中包含VAR元素的数据类型是可变长度的(VARCHAR,NVARCHAR),SQL Server在行中会按字符串的实际长度来保存数据,外加两个额外的字节以保存数据的偏移值(offset data).----(这种类型的,更新数据时可能需要对行进行扩展,导致数据移动,超出当前页的范围.与固定长度的数据类型相比,对具有可变长度数据类型的数据进行更新的效率会有所降低.)
注:在定义可变长度的数据类型时,可以使用MAX说明符,而不必指定字符的最大数量.(当用MAX说明符来定义一个列时,可以把一个值直接保存到行的内部,其长度具有一定的上限,默认是8000字节.大小超过该上限的值将作为大型对象(LOB,large object),保存在行的外部).
2.6.2 排序规则(Collation)
标签:
原文地址:http://www.cnblogs.com/youguess/p/5028194.html