`

【Oracle】varchar与nvarchar区别

 
阅读更多

1、varchar / varchar2 

  • varchar是长度不固定的,比如说,你定义了varchar(20),当你插入abc,则在数据库中只占3个字节。 
  • varchar同样区分中英文,这点同char。 
  • varchar2基本上等同于varchar,它是oracle自己定义的一个非工业标准varchar,不同在于,varchar2用null代替varchar的"https://www.baidu.com/s?wd=%E7%A9%BA%E5%AD%97%E7%AC%A6%E4%B8%B2&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1d9nAF-uW6YryDdPy7hujn40ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EPHcsnHbYPH63nHmdPHTLn1cd"target="_blank" class="baidu-highlight">空字符串 
  • varchar/varchar2适用于长度不固定的,一般不含中文的情况 

2.nvarchar / nvarchar2  

  • nvarchar和nvarchar2是长度不固定的 
  • nvarchar不区分中英文,比如说:你定义了nvarchar(20),你可以存入20个英文字母/汉字或中英文组合,这个20定义的是字符数而不是字节数 
  • nvarchar2基本上等同于nvarchar,不同在于nvarchar2中存的英文字母也占两个字节 
  • nvarchar/nvarchar2适用于存放中文 

 

char [ ( n ) ] 

固定长度,非 Unicode 字符数据,长度为 n 个字节。n 的取值范围为 1 至 8,000,存储大小是 n 个字节。 

 

varchar [ ( n | max ) ] 

可变长度,非 Unicode 字符数据。n 的取值范围为 1 至 8,000。max 指示最大存储大小是 2^31-1 个字节。存储大小是输入数据的实际长度加 2 个字节,用于反映存储的数据的长度。所输入数据的长度可以为 0 个字符。 

-- 如果列数据项的大小一致,则使用 char。 

-- 如果列数据项的大小差异相当大,则使用 varchar。 

-- 如果列数据项大小相差很大,而且大小可能超过 8,000 字节,请使用 varchar(max) 

 

如果未在数据定义或变量声明语句中char或varchar数据类型指定 n,则默认长度为 1。

如果在使用CAST和CONVERT函数时char或varchar数据类型未指定 n,则默认长度为 30。 

当执行CREATE TABLE 或 ALTER TABLE 时,如果 SET ANSI_PADDING 为 OFF,则定义为 NULL 的 char 列将作为varchar处理。

 

分享到:
评论

相关推荐

    oracle char,varchar,varchar2的区别和使用方法

    ### Oracle CHAR, VARCHAR, VARCHAR2 的区别与使用方法 在 Oracle 数据库中,字符串类型是极为常见的数据类型之一,主要用于存储文本数据。其中最常用的三种类型包括:`CHAR`, `VARCHAR`, 和 `VARCHAR2`。这三种...

    Oralce中VARCHAR2()与NVARCHAR2()的区别介绍

    在Oracle数据库中,VARCHAR2()和NVARCHAR2()都是用于存储字符数据的变量长度数据类型,但它们之间存在显著的差异。以下是对这两个数据类型的详细解释: 1. VARCHAR2() VARCHAR2() 是Oracle中的标准可变长度字符...

    Oracle与postgres的区别和转化

    Oracle 与 Postgres 的区别和转化 Oracle 和 Postgres 是两种不同的关系型数据库管理系统,虽然它们都遵循 SQL 标准,但是它们之间存在着一些区别。了解这些区别对于数据库开发和迁移非常重要。本文将主要介绍 ...

    ORACLE和SQL语法区别归纳

    ### ORACLE和SQL语法区别归纳 #### 概述 本文旨在为初学者提供关于Oracle与SQL Server在数据类型、函数及日期操作等方面的语法差异总结,帮助读者更好地理解这两种数据库管理系统的特点,并能够在实际应用中灵活...

    浅析Oracle中char和varchar2的区别

    至于`VARCHAR2`和`NVARCHAR2`的区别,`NVARCHAR2`是Unicode字符串类型,可以存储不同语言的字符,而`VARCHAR2`则只支持数据库的默认字符集。如果你需要处理多语言数据或者需要更广泛的字符支持,`NVARCHAR2`是更好的...

    oracle 中几种字符类型

    在 Oracle 中,字符类型是最基本的数据类型之一,有多种不同的字符类型,包括 CHAR、VARCHAR、VARCHAR2、NVARCHAR、NVARCHAR2 等。了解这些字符类型的特点和区别对于数据库设计和应用开发非常重要。 一、CHAR 类型 ...

    ORACLE和SQL语法区别归纳.docx

    Oracle 和 SQL Server 都有 CHAR、VARCHAR2 等字符数据类型,但它们之间存在着一些区别: * CHAR:Oracle 中的 CHAR 是固定长度字符数据类型,最大长度为 2KB,而 SQL Server 中的 CHAR 最大长度为 8KB。 * VARCHAR...

    sqlserver中将varchar类型转换为int型再进行排序的方法

    还有关于SQL多条件多字段排序、根据数字型字段对字符型字段排序、基于经纬度的距离排序、以及MySQL的排序规则utf8_unicode_ci和utf8_general_ci的区别,这些都是数据库管理和查询优化中非常重要的知识点。...

    sql server 和oracle 中数据类型的区别

    本文将深入探讨SQL Server与Oracle中的数据类型区别,并通过具体的例子来说明这两种系统之间的转换方法。 ### SQL Server 数据类型 SQL Server 是微软开发的一款关系型数据库管理系统,它支持多种数据类型,可以...

    oracle与sqlserver的十大区别之一.txt

    ### Oracle与SQL Server的主要区别 #### 一、数据类型的不同 - **SQL Server**:提供了丰富的数据类型选项,包括但不限于`int`, `smallint`, `char`, `varchar`, `nchar`, `nvarchar`, `ntext`, `datetime`, `...

    PowerDesigner字段与Oracle字段对应

    - `Multibyte` 类型如 `nchar`、`NVARCHAR2`:对应 Oracle 的同名类型,用于存储多字节字符串。 6. **日期和时间类型**: - `Date` 或 `date`: 对应 Oracle 的 `DATE`,包含日期和时间的元素。 - `Time` 或 `...

    oracle与sql_server数据类型对应关系.doc

    《Oracle与SQL Server数据类型对应关系深度解析》 在数据库领域,Oracle与SQL Server作为业界广泛使用的两大数据库管理系统,各自拥有独特的数据类型体系。当在两者之间进行数据迁移、复制或整合时,理解并掌握其...

    oracle与sqlserver的区别.docx

    - Oracle 中定义字符串类型为 `VARCHAR2(32)`,而 SQL Server 提供了 `varchar(32)` 和 `nvarchar(32)`,其中 `nvarchar` 用于存储 Unicode 字符。 3. 自动增长列: - 在 Oracle 中,没有内置的自动增长列功能,...

    Oracle 数据库多语言入库问题的解决方案

    默认字符集用于CHAR、VARCHAR、VARCHAR2、CLOB等类型的数据,而国家字符集服务于NCHAR、NVARCHAR、NVARCHAR2、NCLOB等类型,以处理多语言需求。例如,当数据库的默认字符集为ZHS16GBK,国家字符集为AL16UTF16时,...

Global site tag (gtag.js) - Google Analytics