首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一文读懂数据库的文本数据类型:CHAR,VARCHAR,TEXT,BLOG,NCHAR、NVARCHAR、NTEXT

用法:从空间上考虑,用varchar合适;从效率上考虑,用char合适,关键是根据实际情况找到权衡点。...BLOB和TEXT列不能有默认值。 当排序时只使用该列的前max_sort_length个字节。max_sort_length的 默认值是1024。...当你想要使超过max_sort_length的字节有意义,对含长值的BLOB或TEXT列使用GROUP BY或ORDER BY的另一种方式是将列值转换为固定长度的对象。...BLOB或TEXT对象的最大大小由其类型确定,但在客户端和服务器之间实际可以传递的最大值由可用内存数量和通信缓存区大小确定。...你可以通过更改max_allowed_packet变量的值更改消息缓存区的大小,但必须同时修改服务器和客户端程序。

2.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    数据库char varchar nchar nvarchar,编码Unicode,UTF8,GBK等,Sql语句中文前为什么加N(一次线上数据存储乱码排查)

    varchar [ ( n | max ) ] 可变大小字符串数据 。...使用 n 定义字符串大小(以字节为单位),可以是介于 1 和 8,000 之间的值;或使用 max 指明列约束大小上限为最大存储 2^31-1 个字节 (2GB)。...nvarchar [ ( n | max ) ] 可变大小字符串数据。 n 用于定义字符串大小(以双字节为单位),并且它可能为 1 到 4,000 之间的值 。...max 指示最大存储大小是 2^30-1 个字符 (2 GB) 。 存储大小为 n 字节的两倍 + 2 个字节。...无论你是要安装 SQL Server 的新实例、还原数据库备份,还是将服务器连接到客户端数据库,都必须了解正在处理的数据的区域设置要求、排序顺序以及是否区分大小写和重音。

    2.3K30

    Transact-SQL基础

    varbinary [ ( n | max) ] 可变长度二进制数据。n 可以是从 1 到 8000 之间的值。max 指示最大存储大小为 2^31-1 字节。...max 指示最大存储大小是 2^31-1 个字节 (2 GB)。存储大小为输入的实际数据长度 + 2 个字节。...max 指示最大存储大小是 2^31-1 个字节 (2 GB)。存储大小(以字节为单位)是所输入数据实际长度的两倍 + 2 个字节。...nchar 列的最大大小为 4,000 个字符,与 char 和 varchar 不同,它们为 8,000 个字符。 使用最大说明符,nvarchar 列的最大大小为 2^31-1 字节。...将 Transact-SQL 结果列、返回代码或输出参数中的数据移到某个程序变量中时,必须将这些数据从 SQL Server 系统数据类型转换成该变量的数据类型。

    3.4K20

    SQL Server 索引和表体系结构(包含列索引)

    最大键长度为 900 个字节。索引 'IX2_Customers' 的最大长度为 940 个字节。对于某些大值组合,插入/更新操作将失败。...索引键列(不包括非键)必须遵守现有索引大小的限制(最大键列数为 16,总索引键大小为 900 字节)。...所有非键列的总大小只受 INCLUDE 子句中所指定列的大小限制;例如,varchar(max) 列限制为 2 GB。...列修改准则 修改已定义为包含列的表列时,要受下列限制: 将列的为空性从 NOT NULL 改为 NULL。 增加 varchar、nvarchar 或 varbinary 列的长度。...特别是,将 varchar(max)、nvarchar(max)、varbinary(max) 或 xml 数据类型添加为非键索引列会显著增加磁盘空间要求。这是因为列值被复制到了索引叶级别。

    1.4K80

    SQL Server 2005 正则表达式使模式匹配和数据提取变得更容易

    SqlString 数据类型转换成 nvarchar(4,000),而 SqlChars 转换成 nvarchar(max)。...新的最大尺寸功能允许字符串扩展到超过 SQL Server 2000 的 8,000 字节限制。在整篇文章中,我尽可能使用 nvarchar(max) 并且最大程度地保证灵活性。...仅将整数值传递给 SQL 代码中的函数,它会隐式地转换为 nvarchar 并且返回相应的组。 您可以在 SELECT 列表中使用 RegexGroup 函数来从其他一些数据片段中提取特定的信息片段。....*)', N'domain' ) 邮箱列将返回电子邮件地址的邮箱或用户名。域列将返回电子邮件地址的域。 ?...declare @pattern nvarchar(max), @list nvarchar(max) select @pattern = N'[^,]+', @list = N'2,4,6' select

    6.4K60

    varchar2和varchar2(char)_datetime数据类型

    如果使用 char 或 varchar: 如果希望列中的数据值大小接近一致,请使用 char。 如果希望列中的数据值大小显著不同,请使用 varchar。...如果希望列中所有数据项的大小接近一致,则使用 nchar。 如果希望列中数据项的大小差异很大,则使用 nvarchar。...如果希望列中所有数据项的大小接近一致,则使用 nchar。 如果希望列中数据项的大小差异很大,则使用 nvarchar。...text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。 4、NCHAR、NVARCHAR、NTEXT。这三种从名字上看比前面三种多了个“N”。...(看后面解释) 4、索引中列总长度最多支持总为900字节,所以长度大于900的varchar、char和大于450的nvarchar,nchar将无法创建索引 5、text、ntext上是无法创建索引的

    75630

    sp_executesql介绍和使用

    1,它们之间最大的区别是嵌入式的参数,如下面一个语句 declare @sql nvarchar(2000) declare @id varchar(20) set @id=’1′ set @sql...Sql重新编译一次 但是sp_executesql则不一样,由于将数值参数化,要执行的动态Sql永远不会变化,只是传入的参数的值在变化,那每次执行的时候就秒用重新编译,速度自然快多了哈!...字符串的大小仅受可用数据库服务器内存限制。在 64 位服务器中,字符串大小限制为 2 GB,即 nvarchar(max) 的最大大小。...返回代码值 0(成功)或非零(失败) 结果集 从生成 SQL 字符串的所有 SQL 语句返回结果集。...以下示例从 AdventureWorks2008R2.HumanResources.Employee 表中检索职务,并在输出参数@max_title 中返回它。

    1.2K10

    关于数据存储类型的一点分析

    图2.测试表     图2的测试表不难看出,通过插入数据使得每一行的长度会超过每页所能容纳的最大长度8060字节。...然后是溢出行,在SQL Server 2000中,一行超过8060字节是不被允许的,在SQL Server 2005之后的版本对这个特性进行了改进,使用Varchar,nvarchar等数据类型时,当行的大小不超过...8060字节时,全部存在行内In-row data,当varchar中存储的数据过多使得整行超过8060字节时,会将额外的部分存于Row-overflow data页中,如果update这列使得行大小减少到小于...所以对于数据选择的主旨是: 尽量使得每行的大小更小     这个听起来非常简单,但实际上还需要对SQL Server的数据类型有更多的了解。    ...),Nvarchar(Max),varbinary(Max)来代替text,ntext和image类型     根据前面的基础知识可以知道,对于text,ntext和image类型来说,每一列只要不为null

    89360

    SQL 基础(二)数据表的创建、约束、修改、查看、删除

    KEY 列约束 表约束 FOREIGN KEY 列约束 表约束 CHECK 列约束 表约束 数据表修改 Management Studio 修改表 SQL 指令修改表 ADD ALTER DROP 数据表查看...数据库表节点,新建 定义列属性,完成建表操作 SQL 指令建表 -- SQL指令建立学生表 create table student ( SNo varchar(6), -- 非定长字符型 SN...,4字节大小) 无需设置精度和小数位数 Dept nvarchar(20) ) 数据表约束 数据完整性 保证数据库中数据的正确性、有效性、相容性,完整性机制主要有: 约束 Constraint...(20), constraint s4_prim PRIMARY KEY(Sno,Sn) ) FOREIGN KEY 外键约束,约束某一列或几列作为外部键,包含外键的表称为从表(或参照表),主键所在表称为主表...既可表约束又可列约束 为保证参照完整性,系统保证外键的取值为: 空值 主键取值 换言之,外键存在至少需要两张表,在第一张表中作为主键的属性在第二张表(从表,参照表)中做普通属性,则此键称为第一张表(主表

    1.1K20

    MySQL数据库设计

    第二范式要求每个表只描述一件事情 第三范式要求表中各列必须和主键直接相关,不能间接相关    sql 语句的执行 顺序   5.查询  select    1.找表  from   2.条件  where...n的范围是:1与8000之间 n的大小是否会影响性能:   varchar及nvarchar里的长度 n 不会影响空间大小及性能。...除非n是max并且内容大于4000或8000   设置n更多的是业务需要,如限制身份证只能输入18位,再多就报错,或者防止恶意攻击撑爆硬盘。...varchar(n),nvarchar(n)存储空间举例解释:   包含 n 个字符的可变长度 Unicode 字符数据。字节的存储大小是所输入字符个数的两倍。?   ...varchar在SQL Server中是采用单字节来存储数据的,nvarchar是使用Unicode来存储数据的.中文字符存储到SQL Server中会保存为两个字节(一般采用Unicode编码),英文字符保存到数据库中

    2.6K110

    如何从 SQL Server 恢复已删除的数据

    在我使用 SQL Server 的这些年里,最常见的问题之一一直是“我们如何恢复已删除的记录?” 现在,从 SQL Server 2005 或更高版本恢复已删除的数据非常容易。...BIGINT DECLARE @AllocUnitName NVARCHAR(Max) DECLARE @SQL NVARCHAR(Max) DECLARE @Compatibility_Level...2 字节:可变长度列的数量 n 字节:列偏移数组(2x 可变长度列) n 字节:可变长度列的数据 因此,十六进制数据“ RowLog内容0”等于: “状态位 A + 状态位 B + 固定长度大小 +...之后,我们需要使用此代码片段来获取列数据,如列名称、列大小、精度、小数位数,最重要的是叶空位(以确保列是固定数据(大小) (>=1)) 的表。...这里我们需要小心,因为数据要么是固定列大小,要么是可变列大小。 。 步骤6: 我们收集了每列的十六进制数据(第 5 步)。

    24210

    常用的数据库的字段类型及大小比较_sql字段长度

    NCHAR和NVARCHAR2类型的列使用辅助字符集。 在Oracle9i中,可以以字符而不是字节为单位来表示NCHAR和NVARCHAR2列的长度。...RAW数据类型可占用2KB的空间,而LONG RAW数据类型则可以占用2GB大小。 ROWID ROWID是一种特殊的列类型,称之为伪列(pseudocolumn)。...XMLType 作为对XML支持的一部分,Oracle9i包含了一个新的数据类型XMLType.定义为XMLType的列将存储一个在字符LOB列中的XML文档。...其中,n 的取值范围是从 1 到 8000。其存储窨的大小是 n + 4 个字节。   Varbinary[(n)] 是 n 位变长度的二进制数据。其中,n 的取值范围是从 1 到 8000。...在 SQL Server 中,Unicode 数据以 Nchar、Nvarchar 和 Ntext 数据类型存储。使用这种字符类型存储的列可以存储多个字符集中的字符。

    3.8K10
    领券