text类型怎么插入数据

text类型怎么插入数据,第1张

text、ntext类型字段不能和 varchar类型进行add(+)运算, *** 作TEXT类型字段的和 *** 作普通其它字符串类型字段是不一样的,这里需要用updatetext语句才行。

表:

CREATE TABLE [dbo][test] (

[id] [int] IDENTITY (1, 1) NOT NULL ,

[mytext] [text] COLLATE Chinese_PRC_CI_AS NULL

) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

数据

id mytext

1 aaaa

在TEXT类型中追加字符串:

DECLARE @ptrval binary(16)

SELECT @ptrval = TEXTPTR(mytext) from test

UPDATETEXT testmytext @ptrval null 0 'bbbb'

运行结果:

id mytext

1 aaaabbbb

追加成功,这个是在数据库中完成的。

      之前,习惯性地写查询语句时,查询条件用“=”判断。今天写程序的时候,查询时突然报了一个错误:数据类型text和varchar在equal to 运算符中不兼容。提示如下:

  The data types text and text are incompatible in the equal to operator

   查找相关资料发现Text类型的属性 不能用“=”判断相等,因为它不支持,可以用“like”判断。

 另外还有几点需要注意:

  (1):Text字段类型不能直接用replace函数来替换,必须用updatetext

  (2):字段比较不能用 where 字段 = ‘某数据’,可以用like来代替

  (3):updatetext时,若@ptrval值为空会出错,需注意/

    也有人说text现在很少用了,因为在MS SQL2005及以上的版本中,加入大值数据类型(varchar(max)、nvarchar(max)、varbinary(max) )。大值数据类型最多可以存储2^30-1个字节的数据。

这几个数据类型在行为上和较小的数据类型 varchar 、 nvarchar 和 varbinary 相同。

微软的说法是用这个数据类型来代替之前的 text 、 ntext 和 image 数据类型,它们之间的对应关系为:

    varchar(max)-------text;

    nvarchar(max)-----ntext;

    varbinary(max)----image

ps: 原文地址   

>

在MySQL中,char、varchar和text类型的字段都可以用来存储字符类型的数据,char、varchar都可以指定最大的字符长度,但text不可以。

它们的存储方式和数据的检索方式也都不一样。

数据的检索效率是:char

>

varchar

>

text

具体说明:

char:存储定长数据很方便,CHAR字段上的索引效率级高,必须在括号里定义长度,可以有默认值,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间(自动用空格填充),且在检索的时候后面的空格会隐藏掉,所以检索出来的数据需要记得用什么trim之类的函数去过滤空格。

varchar:存储变长数据,但存储效率没有CHAR高,必须在括号里定义长度,可以有默认值。保存数据的时候,不进行空格自动填充,而且如果数据存在空格时,当值保存和检索时尾部的空格仍会保留。另外,varchar类型的实际长度是它的值的实际长度+1,这一个字节用于保存实际使用了多大的长度。

text:存储可变长度的非Unicode数据,最大长度为2^31-1个字符。text列不能有默认值,存储或检索过程中,不存在大小写转换,后面如果指定长度,不会报错误,但是这个长度是不起作用的,意思就是你插入数据的时候,超过你指定的长度还是可以正常插入。

关于存储空间:

在使用UTF8字符集的时候,MySQL手册上是这样描述的:

基本拉丁字母、数字和标点符号使用一个字节;

大多数的欧洲和中东手写字母适合两个字节序列:扩展的拉丁字母(包括发音符号、长音符号、重音符号、低音符号和其它音符)、西里尔字母、希腊语、亚美尼亚语、希伯来语、阿拉伯语、叙利亚语和其它语言;

韩语、中文和日本象形文字使用三个字节序列。

结论:

1、经常变化的字段用varchar;

2、知道固定长度的用char;

3、超过255字节的只能用varchar或者text;

4、能用varchar的地方不用text;

5、能够用数字类型的字段尽量选择数字类型而不用字符串类型,这会降低查询和连接的性能,并会增加存储开销。这是因为引擎在处理查询和连接回逐个比较字符串中每一个字符,而对于数字型而言只需要比较一次就够了;

6、同一张表出现多个大字段,能合并时尽量合并,不能合并时考虑分表,原因请考

优化InnoDB表BLOB,TEXT列的存储效率

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

您可能感兴趣的文章:MySQL数据库迁移快速导出导入大量数据shell脚本 *** 作mysql数据库删除重复的数据MySQL数据库列的增删改实现方法MySQL实现类似Oracle序列的方案mysql实现sequence功能的代码Can''t

connect

to

local

MySQL

through

socket

''/tmp/mysqlsock''解决方法mysql中rpm方式安装的详解Mysql常用函数大全(分类汇总讲解)利用MySQL主从配置实现读写分离减轻数据库压力mysql+spring+mybatis实现数据库读写分离的代码配置

java mysql 数据类型对照:

对于bolb,一般用于对的数据库存储,原理是把打成二进制,然后进行的一种存储方式,在java中对应byte[]数组。

对于boolen类型,在mysql数据库中,用int类型代替较好,对bit *** 作不是很方便,尤其是在具有web页面开发的项目中,表示0/1,对应java类型的Integer较好。

以上就是关于text类型怎么插入数据全部的内容,包括:text类型怎么插入数据、sql server 中 text 数据类型比较注意!、MySQL中字段类型char、varchar和text的区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9411049.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存