首页数据库数据库text类型 oracle数据库中text类型用什么类型表示

数据库text类型 oracle数据库中text类型用什么类型表示

编程之家2023-10-21108次浏览

大家好,今天来为大家解答数据库text类型这个问题的一些问题点,包括oracle数据库中text类型用什么类型表示也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

数据库text类型 oracle数据库中text类型用什么类型表示

mysql数据库text是什么意思

mysql中text,longtext,mediumtext字段类型的意思,以及区别

MySQL支持大量的列类型,它可以被分为3类:数字类型、日期和时间类型以及字符串(字符)类型。本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述。概述有意简化,更详细的说明应该考虑到有关特定列类型的附加信息,例如你能为其指定值的允许格式。

由MySQL支持的列类型列在下面。下列代码字母用于描述中:

数据库text类型 oracle数据库中text类型用什么类型表示

M指出最大的显示尺寸。最大的合法的显示尺寸是 255。

D适用于浮点类型并且指出跟随在十进制小数点后的数码的数量。最大可能的值是30,但是应该不大于M-2。

方括号(“[”和“]”)指出可选的类型修饰符的部分。

注意,如果你指定一个了为ZEROFILL,MySQL将为该列自动地增加UNSIGNED属性。

数据库text类型 oracle数据库中text类型用什么类型表示

TINYINT[(M)] [UNSIGNED] [ZEROFILL]

一个很小的整数。有符号的范围是-128到127,无符号的范围是0到255。

SMALLINT[(M)] [UNSIGNED] [ZEROFILL]

一个小整数。有符号的范围是-32768到32767,无符号的范围是0到65535。

MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]

一个中等大小整数。有符号的范围是-8388608到8388607,无符号的范围是0到16777215。

INT[(M)] [UNSIGNED] [ZEROFILL]

一个正常大小整数。有符号的范围是-2147483648到2147483647,无符号的范围是0到4294967295。

INTEGER[(M)] [UNSIGNED] [ZEROFILL]

这是INT的一个同义词。

BIGINT[(M)] [UNSIGNED] [ZEROFILL]

一个大整数。有符号的范围是-9223372036854775808到9223372036854775807,无符号的范围是0到

18446744073709551615。注意,所有算术运算用有符号的BIGINT或DOUBLE值完成,因此你不应该使用大于9223372036854775807(63位)的有符号大整数,除了位函数!注意,当两个参数是INTEGER值时,-、+和*将使用BIGINT运算!这意味着如果你乘2个大整数(或来自于返回整数的函数),如果结果大于9223372036854775807,你可以得到意外的结果。一个浮点数字,不能是无符号的,对一个单精度浮点数,其精度可以是<=24,对一个双精度浮点数,是在25和53之间,这些类型如FLOAT和DOUBLE类型马上在下面描述。FLOAT(X)有对应的FLOAT和DOUBLE相同的范围,但是显示尺寸和小数位数是未定义的。在MySQL3.23中,这是一个真正的浮点值。在更早的MySQL版本中,FLOAT(precision)总是有2位小数。该句法为了ODBC兼容性而提供。

FLOAT[(M,D)] [ZEROFILL]

一个小(单精密)浮点数字。不能无符号。允许的值是-3.402823466E+38到-1.175494351E-38,0和1.175494351E-38到3.402823466E+38。M是显示宽度而D是小数的位数。没有参数的FLOAT或有<24的一个参数表示一个单精密浮点数字。

DOUBLE[(M,D)] [ZEROFILL]

一个正常大小(双精密)浮点数字。不能无符号。允许的值是-1.7976931348623157E+308到-2.2250738585072014E-308、 0和2.2250738585072014E-308到1.7976931348623157E+308。M是显示宽度而D是小数位数。没有一个参数的DOUBLE或FLOAT(X)(25<= X<= 53)代表一个双精密浮点数字。

DOUBLE PRECISION[(M,D)] [ZEROFILL]

REAL[(M,D)] [ZEROFILL]

这些是DOUBLE同义词。

DECIMAL[(M[,D])] [ZEROFILL]

一个未压缩(unpack)的浮点数字。不能无符号。行为如同一个CHAR列:“未压缩”意味着数字作为一个字符串被存储,值的每一位使用一个字符。小数点,并且对于负数,“-”符号不在M中计算。如果D是0,值将没有小数点或小数部分。DECIMAL值的最大范围与DOUBLE相同,但是对一个给定的DECIMAL列,实际的范围可以通过M和D的选择被限制。如果D被省略,它被设置为0。如果M被省掉,它被设置为10。注意,在MySQL3.22里,M参数包括符号和小数点。

NUMERIC(M,D) [ZEROFILL]

这是DECIMAL的一个同义词。

DATE

一个日期。支持的范围是'1000-01-01'到'9999-12-31'。MySQL以'YYYY-MM-DD'格式来显示DATE值,但是允许你使用字符串或数字把值赋给DATE列。

DATETIME

一个日期和时间组合。支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。MySQL以'YYYY-MM-DD HH:MM:SS'格式来显示DATETIME值,但是允许你使用字符串或数字把值赋给DATETIME的列。

TIMESTAMP[(M)]

一个时间戳记。范围是'1970-01-01 00:00:00'到2037年的某时。MySQL以YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD或YYMMDD格式来显示TIMESTAMP值,取决于是否M是14(或省略)、12、8或6,但是允许你使用字符串或数字把值赋给TIMESTAMP列。一个TIMESTAMP列对于记录一个INSERT或UPDATE操作的日期和时间是有用的,因为如果你不自己给它赋值,它自动地被设置为最近操作的日期和时间。你以可以通过赋给它一个NULL值设置它为当前的日期和时间。

TIME

一个时间。范围是'-838:59:59'到'838:59:59'。MySQL以'HH:MM:SS'格式来显示TIME值,但是允许你使用字符串或数字把值赋给TIME列。

YEAR[(2|4)]

一个2或4位数字格式的年(缺省是4位)。允许的值是1901到2155,和0000(4位年格式),如果你使用2位,1970-2069( 70-69)。MySQL以YYYY格式来显示YEAR值,但是允许你把使用字符串或数字值赋给YEAR列。(YEAR类型在MySQL3.22中是新类型。)

CHAR(M) [BINARY]

一个定长字符串,当存储时,总是是用空格填满右边到指定的长度。M的范围是1~ 255个字符。当值被检索时,空格尾部被删除。CHAR值根据缺省字符集以大小写不区分的方式排序和比较,除非给出BINARY关键词。NATIONAL CHAR(短形式NCHAR)是ANSI SQL的方式来定义CHAR列应该使用缺省字符集。这是MySQL的缺省。CHAR是CHARACTER的一个缩写。

[NATIONAL] VARCHAR(M) [BINARY]

一个变长字符串。注意:当值被存储时,尾部的空格被删除(这不同于ANSI SQL规范)。M的范围是1~ 255个字符。 VARCHAR值根据缺省字符集以大小写不区分的方式排序和比较,除非给出BINARY关键词值。 VARCHAR是CHARACTER VARYING一个缩写。

TINYBLOB

TINYTEXT

一个BLOB或TEXT列,最大长度为255(2^8-1)个字符。

BLOB

TEXT

一个BLOB或TEXT列,最大长度为65535(2^16-1)个字符。

MEDIUMBLOB

MEDIUMTEXT

一个BLOB或TEXT列,最大长度为16777215(2^24-1)个字符。

LONGBLOB

LONGTEXT

一个BLOB或TEXT列,最大长度为4294967295(2^32-1)个字符。

ENUM('value1','value2',...)

枚举。一个仅有一个值的字符串对象,这个值式选自与值列表'value1'、'value2',...,或NULL。一个ENUM最多能有65535不同的值。

SET('value1','value2',...)

一个集合。能有零个或多个值的一个字符串对象,其中每一个必须从值列表'value1','value2',...选出。一个SET最多能有64个成员。

SQL数据库中数据类型ntext和text的区别

ntext和text一样用来保存大量的文字数据,不过text用单字节保存数据,ntext固定用双字节保存数据. ntext保存的是Uncode的字符,

ntext支持跨语言平台。

ntext:

可变长度 Unicode数据的最大长度为 230-

1(1,073,741,823)个字符。存储大小是所输入字符个数的两倍(以字节为单位)。ntext在 SQL-92中的同义词是 national

text。

ntext中存数据是按双字节存的,显示不了NTEXT你换一下recordset打开方式就行了

text:

服务器代码页中的可变长度非 Unicode数据的最大长度为 231-1(2,147,483,647)

个字符。当服务器代码页使用双字节字符时,存储量仍是 2,147,483,647字节。存储大小可能小于 2,147,483,647字节(取决于字符串)。

char、varchar、text和nchar、nvarchar、ntext的区别

1、CHAR。CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充。

2、VARCHAR。存储变长数据,但存储效率没有CHAR高。如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为

VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么“+1”呢?这一个字节用于保存实际使用了多大的长度。从空间上考虑,用varchar合适;从效率上考虑,用char合适,关键是根据实际情况找到权衡点。

3、TEXT。text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。

4、

NCHAR、NVARCHAR、NTEXT。这三种从名字上看比前面三种多了个“N”。它表示存储的是Unicode数据类型的字符。我们知道字符中,英

文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼

容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。nchar、nvarchar的长度是在1到4000之间。和

char、varchar比较起来,nchar、nvarchar则最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储

8000个英文,4000个汉字。可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量

上有些损失。

对于什么时候用varchar和nvarchar没有说一定的.

也就是说一个汉字既可以存在varchar中,也可以存在nvarchar中.

那么对于汉字或者Unicode

数据到底存在varchar和nvarchar有什么区别呢?

下面例子说明一下:一个汉字占varchar(2),只占nvarchar(1),

而字母只占varchar(1),那么在数据库字段求长度的时候,用varchar你就不一定知道它确切的知道它到底有几个字,如果用nvarchar,

那么汉字也是nvarchar(1),字母也是nvarchar(1),那么已经很明显了.

区别2:varchar的检索快于nvarchar,虽然是这样但微软下一个版本将统一nvarchar,听说的

管理 ntext、text和 image

数据

Microsoft? SQL Server?的 ntext、text和 image数据类型在单个值中可以包含非常大的数据量(最大可

2 GB)。单个数据值通常比应用程序在一个步骤中能够检索的大;某些值可能还会大于客户端的可用虚拟内存。因此,

在检索这些值时,通常需要一些特殊的步骤。

如果 ntext、text和 image数据值不超过 Unicode

串、字符串或二进制串的长度(分别为 4,000个字符、8,000个字

符和 8,000个字节),就可以在 SELECT、UPDATE和

INSERT语句中引用它们,其引用方式与较小的数据类型相同。例

如,包含短值的 ntext列可以在 SELECT语句的选择列表中引用,这与

nvarchar列的引用方式相同。引用时必须遵守一

些限制,例如不能在 WHERE子句中直接引用 ntext、text或 image

列。这些列可以作为返回其它数据类型(例如

ISNULL、SUBSTRING或 PATINDEX)的某个函数的参数包含在 WHERE

子句中,也可以包含在 IS NULL、IS NOT NULL或

LIKE表达式中。

处理较大的数据值

但是,如果 ntext、text和 image数据值较大,则必须逐块处理。Transact-SQL和数据库 API均包含使应用程序可以

逐块处理 ntext、text和 image数据的函数。

数据库 API按照一种通用的模式处理长 ntext、text和

image列:

若要读取一个长列,应用程序只需在选择列表中包含 ntext、text或 image

列,并将该列绑定到一个程序变量,该变量

应足以容纳适当的数据块。然后,应用程序就可以执行该语句,并使用 API

函数或方法将数据逐块检索到绑定的变量中。

若要写入一个长列,应用程序可使用参数标记(?)在相应位置代替

ntext、text或 image列中的值,以执行 INSERT

或 UPDATE语句。参数标记(对 ADO

而言则为参数)被绑定到一个足以容纳数据块的程序变量上。应用程序进入循环,在

循环中先将下一组数据移到绑定的变量中,然后调用 API

函数或方法写入数据块。这一过程将反复进行,直到整个数据值

发送完毕。

使用 text in row

在 Microsoft

SQL Server 2000中,用户可以在表上启用 text in row选项,以使该表能够在其数据行中存储 text、

ntext或

image数据。

若要启用该选项,请执行 sp_tableoption存储过程,将 text in row指定为选项名并将 on

指定为选项值。BLOB(二进

制大对象:text、ntext或 image数据)行中可以存储的默认最大大小为 256字节,但是值的范围可以从

24到 7000。

若要指定默认值以外的最大大小,请指定该范围内的整数作为选项值。

如果应用下列条件,则将

text、ntext或 image字符串存储在数据行中:

启用 text in row。

字符串的长度比@OptionValue所指定的限制短

数据行中有足够的可用空间。

当 BLOB

字符串存储在数据行中时,读取和写入 text、ntext或 image字符串可以与读取或写入字符串和二进制字符串

一样快。SQL Server

不必访问单独的页以读取或写入 BLOB字符串。

如果 text、ntext或 image

字符串比行中所指定的限制或可用空间大,则将指针存储在该行中。在行中存储 BLOB字符

串的条件仍然适用,但是:数据行中必须有足够的空间容纳指针。

有关更多信息,请参见 sp_tableoption。

使用文本指针

如果未指定 text in

row选项,text、ntext或 image字符串将存储在数据行外;只有这些字符串的文本指针驻留在数

据行中。文本指针指向由内部指针生成的树的根节点,而这些内部指针映射到实际存储(text、ntext或 image数据的)

字符串段的页。

SQL Server 2000中的行文本指针与 SQL Server早期版本中的文本指针不同。行文本指针的行为就象 BLOB

数据的文件

句柄;早期的文本指针功能则象 BLOB数据的地址。因此,在使用行文本指针时,请记住下列特性:

重要虽然游标中允许有行文本,但却不允许有行文本指针。如果尝试声明包含行文本指针的游标,SQL Server将返回错

误信息(8654、16、1、"A cursor plan could not be generated for the given statement

because it contains

textptr(inrow lob)."、1033)。

数字

对于每个数据库,每个事务最多允许 1024个活动行文本指针。

锁定

当用户获取活动文本指针时,SQL Server

2000在第一个用户控制文本指针时锁定数据行,并确保没有其他用户修改或删

除该行。锁在文本指针变为无效时被释放。若要使文本指针无效,请使用

sp_invalidate_textptr。

当事务的隔离级别是未提交读或者数据库为"只读"模式时,文本指针不能用于更新 BLOB

值。

当数据库为"单用户"模式时,SQL Server 2000不锁定数据行。

为举例说明,给出下面的表:

CREATE TABLE t1(c1 int, c2 text)

EXEC

sp_tableoption't1','text in row','on'

INSERT t1 VALUES('1','a')

下面的事务将会成功:

INSERT t1 VALUES('1','This is text.')

SET

TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

GO

BEGIN TRAN

DECLARE@ptr varbinary(16)

SELECT@ptr= textptr(c2)

FROM t1

WHERE c1= 1

READTEXT t1.c2@ptr 0 5

COMMIT TRAN

GO

下面的事务将会失败:

SET TRANSACTION ISOLATION LEVEL READ

UNCOMMITTED

GO

BEGIN TRAN

DECLARE@ptr varbinary(16)

SELECT@ptr= textptr(c2)

FROM t1

WHERE c1= 1

WRITETEXT t1.c2

@ptr'xx'

COMMIT TRAN

GO

持续时间

行文本指针仅在事务内有效。提交事务时,文本指针变为无效。

在某个事务内,当发生下列任一操作时,行文本指针可能无效:

会话结束。

删除该事务中的数据行。(其它事务无法删除数据行,因为该行包含锁。)

文本指针所在的表的架构已更改。使文本指针无效的架构更改操作包括:创建或除去聚集索引,改变或除去表,截断表,

通过

sp_tableoption更改 text in row选项,以及执行 sp_indexoption。

使用前面的示例,下列脚本在 SQL

Server早期版本中有效,但在 SQL Server 2000中将生成错误。

DECLARE@ptrval

varbinary(16)

PRINT'get error here'

SELECT@ptrval=

TEXTPTR(c2)

FROM t1

WHERE c1= 1

READTEXT t1.c2@ptrval 0

1

在 SQL Server 2000中,必须在事务内使用行文本指针:

BEGIN TRAN

DECLARE@ptrval varbinary(16)

SELECT@ptrval= TEXTPTR(c2)

FROM

t1

WHERE c1= 1

READTEXT t1.c2@ptrval 0 1

COMMIT

NULL文本

可以在由 INSERT生成的 NULL文本上获得行文本指针。而在以前,只有将 BLOB更新为 NULL

后才能获得文本指针。

例如,下列代码在 SQL Server 7.0中无效,但在 SQL Server 2000

中有效。

SET TRANSACTION ISOLATION LEVEL READ COMMITTED

GO

INSERT INTO t1 VALUES(4, NULL)

BEGIN TRAN

DECLARE@ptrval

VARBINARY(16)

SELECT@ptrval= TEXTPTR(c2)

FROM t1

WHERE c1=

4

WRITETEXT t1.c2@ptrval'x4'

COMMIT

在 SQL Server 7.0

中,必须执行下列操作:

INSERT INTO t1 VALUES(4, NULL)

UPDATE t1

SET c2= NULL

WHERE c1= 4

DECLARE@ptrval VARBINARY(16)

SELECT@ptrval= TEXTPTR(c2)

FROM t1

WHERE c1= 4

WRITETEXT

t1.c2@ptrval'x4'

下表汇总差别。

差别行文本指针非行文本指针

数字

对于每个数据库,每个事务最多允许 1024个活动行文本指针。无限制。

锁定将数据行一直 S锁定到指针变为无效为止。

当事务为"未提交读"或数据库为"单用户"或"只读"模式时不获取锁。

不锁定数据行。

持续时间

事务或会话结束、删除行或更改表的架构时变为无效。删除行时变为无效。

NULL文本插入 NULL文本后可立即获取。只有更新后才能获取。

通过数据库 API使用 ntext、text和 image数据

这一部分概述数据库 API处理

ntext、text和 image数据的方式:

ADO

ADO可以将 ntext、text或 image

列或参数映射为 Field或 Parameter对象。使用 GetChunk方法逐块检索数据,使

用 AppendChunk

方法逐块写数据。有关更多信息,请参见管理 Long数据类型。

OLE DB

OLE DB使用

ISequentialStream接口支持 ntext、text和 image数据类型。ISequentialStream::Read

方法逐块读取

长数据,ISequentialStream::Write方法将长数据逐块写入数据库。有关更多信息,请参见 BLOB和 OLE

对象。

ODBC

ODBC具有一种称为"执行中的数据"的功能,可用于处理长数据的 ODBC

数据类型:SQL_WLONGVARCHAR(ntext)、

SQL_LONGVARCHAR(text)和 SQL_LONGVARBINARY

(image)。这些数据类型被绑定到某个程序变量上。这样一来,就可以调

用 SQLGetData逐块检索长数据,调用 SQLPutData

逐块发送长数据。有关更多信息,请参见管理 text和 image列。

DB-Library

DB-Library

应用程序也是将 ntext、text和 image列绑定到程序变量上。DB-Library函数 dbtxtptr用于获取指向数

据库中长列出现位置的指针,dbreadtext则用来逐块读取长数据。dbwritetext、dbupdatetext和 dbmoretext

之类的函

数用于逐块写入长数据。

说明不支持使用 DB-Library访问行文本

oracle数据库中text类型用什么类型表示

oracle对于大文本数据用clob类型。

但对于这个类型处理起来还是比较麻烦,varchar2长度为4000bytes,如果varchar2能满足需求的话,建议使用varchar2。

扩展资料:

Oracle数据库特点:

1、完整的数据管理功能:

1)数据的大量性

2)数据的保存的持久性

3)数据的共享性

4)数据的可靠性

2、完备关系的产品:

1)信息准则---关系型DBMS的所有信息都应在逻辑上用一种方法,即表中的值显式地表示;

2)保证访问的准则

3)视图更新准则---只要形成视图的表中的数据变化了,相应的视图中的数据同时变化

4)数据物理性和逻辑性独立准则

3、分布式处理功能:

ORACLE数据库自第5版起就提供了分布式处理能力,到第7版就有比较完善的分布式数据库功能了,一个ORACLE分布式数据库由oraclerdbms、sql*Net、SQL*CONNECT和其他非ORACLE的关系型产品构成。

4、用ORACLE能轻松的实现数据仓库的操作。

这是一个技术发展的趋势,不在这里讨论。

优点:

可用性强,可扩展性强,数据安全性强,稳定性强。

参考资料:百度百科——Oracle数据库

关于本次数据库text类型和oracle数据库中text类型用什么类型表示的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。

mongodb数据库迁移?如何备份,还原和迁移MongoDB数据库数据库文件扩展名,数据库文件的扩展名是什么