char 和 varchar有什么区别? char(100) 占100个字符varchar(100) 根据实际存放多少字符确定,最多可存100个字符。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 char 和 varchar 数据类型的数据包括: 大写字母或小写字母,比如 a、b 和 C。数字,比如 1,2 或 3。特殊字符,如 at 符号 (@)、"与"符号 (&) 和惊叹号 (!)。 char 或 varchar 数据可以是单个字符,或者是最长可达 8,000 个字符的字符串。每个 char 和 varchar 数据值都有排序规则。排序规则定义特性,如用于表示每个字符的位模式、比较规则以及是否区分大小写或重音。每个数据库有默认排序规则。当定义列或指定常量时,除非使用 COLLATE 子句指派特定的排序规则,否则将为它们指派数据库的默认排序规则。当合并或比较两个具有不同排序规则的 char 或 varchar 值时,排序规则的优先顺序规则决定操作所使用的排序规则。字符常量必须包括在单引号 (') 或双引号 (") 中。建议用单引号括住字符常量。当 QUOTED IDENTIFIER 选项设为 ON 时,有时不允许用双引号括住字符常量。这个 Transact-SQL 例子给一个字符变量赋值:DECLARE @MyCharVar CHAR(25)SET @MyCharVar = 'Ricardo Adocicados'当使用单引号分隔一个包括嵌入单引号的字符常量时,用两个单引号表示嵌入单引号,例如:SET @MyCharVar = 'O''Leary'如果要存储的数据比允许的字符数多,则数据就会被截断。例如,如果某列被定义为 char(10) 并且值"This is a really long character string"被存储到该列中,则 Microsoft® SQL Server™ 将该字符串截断为"This is a"。当指定了 NOT NULL 子句时,char 数据类型是固定长度数据类型。如果一个比列的长度小的值被插入到 char NOT NULL 列中,则值的右边以空格填补剩余的位置。例如,如果一个列被定义为 char(10) 并且要存储的数据是"music",则 SQL Server 将这个数据存储为"music_____",这里"_"表示空格。当创建一个 char NULL 列时,如果 ANSI_PADDING 是ON,它的表现就如同一个 char NOT NULL列:值的右边按照列的大小进行填补。当创建一个 char NULL 列时,如果 ANSI_PADDING 是 OFF,它的表现就如同一个将 ANSI_PADDING 设置为 OFF 的 varchar 列:尾随空格将被截断。varchar 是可变长度的数据类型。比列的长度小的值,不会按照列的长度在其右边填补。当创建列时,如果 ANSI_PADDING 选项设为 OFF,则所有存储在列中的字符值的尾随空格都将被截断。当创建列时,如果 ANSI_PADDING 设为 ON,则尾随空格不被截断。CHAR 函数可以把一个整数转换为 ASCII 字符。当确定控制字符时(比如回车或换行),这是很有用的。在字符串中用 CHAR(13) 和 CHAR(10) 产生一个回车并生成一个新行。 PRINT 'First line.' + CHAR(13) + CHAR(10) + 'Second line.'一个字符串的字节中位的存储格式是按照安装时所指定的 Microsoft SQL Server 代码页来解释的。一个 char 或 varchar 对象可以包含 SQL Server 代码页中的任何字符。有关更多信息,请参见排序规则。DB-Library 应用程序和使用来自 SQL Server 6.5 版或更早版本的 SQL Server ODBC 驱动程序的应用程序最多仅支持 255 个字节的字符数据。如果这些应用程序尝试检索 SQL Server 7.0 版或更新版本的字符参数或包含超过 255 个字节的数据的结果集,字符数据将在 255 个字节处截断。 固定长度 (char) 或可变长度 (varchar) 字符数据类型。char[(n)]长度为 n 个字节的固定长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为 n 个字节。char 在 SQL-92 中的同义词为 character。varchar[(n)]长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。varchar 在 SQL-92 中的同义词为 char varying 或 character varying 存储过程事务--怎么在被调用的存储过程发生错误,在调用存储过程回滚? MS SQL子查询?这个该怎么写? 数据长度的问题 请问t-sql基础有些了,但是数据库设计很没有感觉,想找本经典的数据库设计教程或网站来规范偶的数据库设计规范。 为什么这个用In会错误? function权限问题,我疯掉 如何导出trigger 三层数据的添加问题 请教:在SQL里,列名用PlotCy是否明确? 如何跟踪目标数据表执行了哪些语句 money 和 smallmoney有什么区别? datatime和smalldatetime有什么区别?
数字,比如 1,2 或 3。
特殊字符,如 at 符号 (@)、"与"符号 (&) 和惊叹号 (!)。
char 或 varchar 数据可以是单个字符,或者是最长可达 8,000 个字符的字符串。每个 char 和 varchar 数据值都有排序规则。排序规则定义特性,如用于表示每个字符的位模式、比较规则以及是否区分大小写或重音。每个数据库有默认排序规则。当定义列或指定常量时,除非使用 COLLATE 子句指派特定的排序规则,否则将为它们指派数据库的默认排序规则。当合并或比较两个具有不同排序规则的 char 或 varchar 值时,排序规则的优先顺序规则决定操作所使用的排序规则。字符常量必须包括在单引号 (') 或双引号 (") 中。建议用单引号括住字符常量。当 QUOTED IDENTIFIER 选项设为 ON 时,有时不允许用双引号括住字符常量。这个 Transact-SQL 例子给一个字符变量赋值:DECLARE @MyCharVar CHAR(25)
SET @MyCharVar = 'Ricardo Adocicados'当使用单引号分隔一个包括嵌入单引号的字符常量时,用两个单引号表示嵌入单引号,例如:SET @MyCharVar = 'O''Leary'如果要存储的数据比允许的字符数多,则数据就会被截断。例如,如果某列被定义为 char(10) 并且值"This is a really long character string"被存储到该列中,则 Microsoft® SQL Server™ 将该字符串截断为"This is a"。当指定了 NOT NULL 子句时,char 数据类型是固定长度数据类型。如果一个比列的长度小的值被插入到 char NOT NULL 列中,则值的右边以空格填补剩余的位置。例如,如果一个列被定义为 char(10) 并且要存储的数据是"music",则 SQL Server 将这个数据存储为"music_____",这里"_"表示空格。当创建一个 char NULL 列时,如果 ANSI_PADDING 是ON,它的表现就如同一个 char NOT NULL列:值的右边按照列的大小进行填补。当创建一个 char NULL 列时,如果 ANSI_PADDING 是 OFF,它的表现就如同一个将 ANSI_PADDING 设置为 OFF 的 varchar 列:尾随空格将被截断。varchar 是可变长度的数据类型。比列的长度小的值,不会按照列的长度在其右边填补。当创建列时,如果 ANSI_PADDING 选项设为 OFF,则所有存储在列中的字符值的尾随空格都将被截断。当创建列时,如果 ANSI_PADDING 设为 ON,则尾随空格不被截断。CHAR 函数可以把一个整数转换为 ASCII 字符。当确定控制字符时(比如回车或换行),这是很有用的。在字符串中用 CHAR(13) 和 CHAR(10) 产生一个回车并生成一个新行。 PRINT 'First line.' + CHAR(13) + CHAR(10) + 'Second line.'一个字符串的字节中位的存储格式是按照安装时所指定的 Microsoft SQL Server 代码页来解释的。一个 char 或 varchar 对象可以包含 SQL Server 代码页中的任何字符。有关更多信息,请参见排序规则。DB-Library 应用程序和使用来自 SQL Server 6.5 版或更早版本的 SQL Server ODBC 驱动程序的应用程序最多仅支持 255 个字节的字符数据。如果这些应用程序尝试检索 SQL Server 7.0 版或更新版本的字符参数或包含超过 255 个字节的数据的结果集,字符数据将在 255 个字节处截断。