http://dinglin.iteye.com/blog/914276
存储状况
CHAR和VARCHAR类型声明的长度表示你想要保存的最大字符数
。例如,CHAR(30)可以占用30个字符。
返回值为字符串str
的长度,长度的单位为字符
。一个多字节字符算作一个单字符。对于一个
包含五个二字节字符集, LENGTH()返回值为 10, 而CHAR_LENGTH()的返回值为5。
CHARACTER_LENGTH()是CHAR_LENGTH()的同义词。
返回值为字符串str
的长度,单位为字节
。一个多字节字符算作多字节。这意味着 对于一个包含5个2字节字符的字符串, LENGTH() 的返回值为 10, 而 CHAR_LENGTH()的返回值则为5。
====
SQL中的char、varchar
char类型: 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节,CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比
如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间。因为是固定长度,所以速度效率高。
varchar类型:Varchar 的类型不以空格填满,比如varchar(100),但它的值只是"qian",则它的值就是"qian"
而char 不一样,比如char(100),它的值是"qian",而实际上它在数据库中是"qian "(qian后共有96个空格,就是把它填满为100个字节)。
由于char是以固定长度的,所以它的速度会比varchar快得多!但程序处理起来要麻烦一点,要用trim之类的函数把两边的空格去掉!
VARCHAR存储变长数据,但存储效率没有CHAR高。如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为
VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么“+1”呢?这一个字节用于保存实际使用了多大的长度。
Nchar类型和Nvarchar类型是怎么一回事呢?为了与其他多种字符的转换,如中文,音标等,对每个英文(ASCII)字符都占用2个字节,对一个汉字也占用两个字节,所有的字符都占用2个字节。
例如
varchar(n):变长型字符数据类型,存储最长长度为8,000 个字符。
===
SQL 中英文混合时取字符串长度
select len('中英文abc') ---结果是6
select datalength('中英文abc') ---结果是9
select cast('中英文abc' as char(5)) ---结果是“中英”,会自动避免半个汉字出现
select cast('中英文abc' as char(7)) ---结果是“中英文a”,可有效的截取中英文
分享到:
相关推荐
标题中的“python遇到sql2005 varchar(4000) varchar(MAX)”指的是在使用Python编程语言操作SQL Server 2005数据库时,可能会遇到处理两种不同大小的变长字符串类型——varchar(4000)和varchar(MAX)的问题。在SQL ...
在SQL Server中,`varchar`和`nvarchar`是两种用于存储字符数据的变量长度数据类型,它们的主要区别在于是否支持Unicode编码。理解这两者之间的差异对于优化数据库存储和提高查询性能至关重要。 `varchar`是用于...
在SQL中,`varchar`和`nvarchar`是两种常见的字符数据类型,它们分别用于存储非Unicode和Unicode字符数据。理解这两种类型的区别对于数据库设计和优化至关重要。 `varchar(n)`是可变长度的非Unicode字符数据类型,...
在SQL Server中,当我们在处理数据查询结果时,有时为了美观和可读性,需要将字符串按照特定的格式进行对齐。这通常涉及到字符串的左对齐和右对齐操作。`REPLICATE`函数在这里起到了关键作用,它可以用来重复一个...
在SQL Server中,字符数据类型是用来存储文本信息的,包括char、nchar、varchar和nvarchar。这四个数据类型都有各自的特点和用途,下面我们逐一详细分析它们的区别。 1. **char类型**: - char是固定长度的字符...
总的来说,虽然`VARCHAR`和`VARCHAR2`在名称上有一定的相似性,但在实际应用中,`VARCHAR2`因其更长的最大长度、更好的空格处理机制以及更高的兼容性,在Oracle数据库中得到了更广泛的应用。理解这些细微的区别,...
在MySQL数据库中,`VARCHAR` 是一种用于存储可变长度字符串的数据类型。它与固定长度的`CHAR`数据类型不同,`VARCHAR`可以根据存储的数据自动调整长度,从而节省存储空间。然而,`VARCHAR`的定义长度并不是一个直观...
对于程序中的一般字符串类型的字段,SQL Server中有char、varchar、nchar、nvarchar四种类型来对应,那么这四种类型有什么区别呢,这里做一下对比。 1.定长或变长 所谓定长就是长度固定,当要保存的数据长度不够时将...
在SQL Server中,数据类型的转换是一项常见的操作,特别是在处理混合数据类型或者需要特定排序规则时。本篇文章主要探讨了如何将varchar类型的数据转换为int类型,以便在排序时避免因字符顺序引起的错误结果。 首先...
sql server中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 08:02/*时间一般为getdate()函数或数据表里的字段*/ CONVERT...
在SQL Server数据库管理系统中,字符数据类型是存储文本信息的基础,包括`char`、`varchar`、`nchar`和`nvarchar`等几种常见的类型。这些数据类型在存储字符串时有着不同的特性和用途,理解它们之间的区别对于正确...
Oracle SQL 函数进行BLOB转换Varchar2
Sql中的getDate() Sql Server 中一个非常强大的日期格式化函数 Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2008 10:57AM Select CONVERT(varchar(100), GETDATE(), 1): 05/16/08 Select CONVERT(varchar...
在SQL Server中,选择使用`varchar`还是`nvarchar`数据类型是数据库设计中的一个重要决策,因为这直接影响到数据存储的效率、空间占用以及兼容性。理解这两种数据类型的差异至关重要。 `varchar`是一种变长字符串...
真实的pl/sql Developer11带有注册码. ...plsql9和plsql10就有个明显的区别,如果你写的sql中varchar2和number类型搞错了, plsql10中会自动帮你转换. plsql11有什么新功能呢? 还要在用的过程中去慢慢发现吧.
1. 数据类型映射:SQL Server和Oracle的数据类型可能存在差异,如SQL Server的`datetime`对应Oracle的`timestamp`,`varchar2`对应`nvarchar2`等,工具会自动进行转换,但也可能需要手动调整。 2. 函数和过程转换:...
在 SQL Server 中,varchar 是一个字符类型,用于存储变长字符串。在 Java 中,varchar 对应的数据类型是 String。 text 在 SQL Server 中,text 是一个文本类型,用于存储大文本数据。在 Java 中,text 对应的...
在 Oracle 中,数据类型的转换是非常常见的操作,本文将详细介绍 Oracle 中的 varchar 和 date 的转换、number 和 varchar 的转换。 一、varchar 和 date 的转换 在 Oracle 中,varchar 类型用于存储字符串数据,...