Both CHAR and VARCHAR2 types are used to store character string
values, however, they behave very differently. The VARCHAR type should
not be used:
CHAR should be used for storing fix length character strings
. String values will be space/blank padded
before stored on disk. If this type is used to store varibale length strings, it will waste a lot of disk space.
SQL> CREATE TABLE char_test (col1 CHAR(10));
Table created.
SQL> INSERT INTO char_test VALUES ('qwerty');
1 row created.
SQL> SELECT col1, length(col1), dump(col1) "ASCII Dump" FROM char_test;
COL1 LENGTH(COL1) ASCII Dump
---------- ------------ ------------------------------------------------------------
qwerty 10 Typ=96 Len=10: 113,119,101,114,116,121,32,32,32,32
Note: ASCII character 32 is a blank space.
Currently VARCHAR behaves exactly the same as VARCHAR2
. However, this type should not be used as it is reserved for future usage.
SQL> CREATE TABLE varchar_test (col1 VARCHAR2(10));
Table created.
SQL> INSERT INTO varchar_test VALUES ('qwerty');
1 row created.
SQL> SELECT col1, length(col1), dump(col1) "ASCII Dump" FROM varchar_test;
COL1 LENGTH(COL1) ASCII Dump
---------- ------------ ------------------------------------------------------------
qwerty 6 Typ=1 Len=6: 113,119,101,114,116,121
VARCHAR2 is used to store variable length character strings
. The string value's length will be stored on disk with the value itself.
SQL> CREATE TABLE varchar2_test (col1 VARCHAR2(10));
Table created.
SQL> INSERT INTO varchar2_test VALUES ('qwerty');
1 row created.
SQL> SELECT col1, length(col1), dump(col1) "ASCII Dump" FROM varchar2_test;
COL1 LENGTH(COL1) ASCII Dump
---------- ------------ ------------------------------------------------------------
qwerty 6 Typ=1 Len=6: 113,119,101,114,116,121
分享到:
相关推荐
### VARCHAR与VARCHAR2之间的联系和区别 在数据库设计与应用中,正确理解并选择合适的数据类型对于确保数据的准确存储及高效查询至关重要。在Oracle数据库中,`VARCHAR`与`VARCHAR2`是两种常见的用于存储可变长度...
今天我们将深入探讨三种常见的字符串类型:`char`、`varchar`和`varchar2`,它们在不同的数据库系统中有着微妙的区别。 1. **char类型** `char`是一种固定长度的字符串类型,无论实际存储的数据是否填满指定长度,...
### Oracle中的VARCHAR2(BYTE)与VARCHAR2(CHAR)区别详解 #### 一、引言 在Oracle数据库中,`VARCHAR2`是最常用的字符数据类型之一,用于存储变长的字符串。然而,在定义`VARCHAR2`类型时,可以选择指定长度为`BYTE`...
### Oracle CHAR, VARCHAR, VARCHAR2 的区别与使用方法 在 Oracle 数据库中,字符串类型是极为常见的数据类型之一,主要用于存储文本数据。其中最常用的三种类型包括:`CHAR`, `VARCHAR`, 和 `VARCHAR2`。这三种...
Oracle 中 char 和 varchar2 的区别 Oracle 中 char 和 varchar2 是两种常用的字符串数据类型,它们之间的区别是很多开发者经常忽视的。下面我们将详细分析 Oracle 中 char 和 varchar2 的区别。 首先,char 是定...
Oracle SQL 函数进行BLOB转换Varchar2
然而,实际上MySQL的`VARCHAR`类型在存储时会额外使用1到2个字节来记录字符串的长度,这意味着即使使用UTF-8编码,`VARCHAR(50)`仍能存储50个英文字符或16个中文字符。 在MySQL 5.1及以上版本中,`VARCHAR`的最大...
varchar(4000)表示最大能存储4000个字符,而varchar(MAX)则可以存储最多2^31-1个字符,即大约2GB的数据。 在实际应用中,当Python需要与SQL Server交互,特别是涉及大数据量的varchar(MAX)字段时,可能会出现一些...
本文主要讨论了int、char和varchar这三种常见数据类型在性能上的差异。通常,这些差异在无索引和有索引的情况下的表现会有所不同。 首先,从无索引的全表扫描角度来看,测试结果显示int和bigint(即i8)在查询性能...
在存储方式上,`char`对英文字符(ASCII)占用1个字节,而`varchar`对每个英文字符占用2个字节。对于汉字,两者都是占用2个字节。这是因为`varchar`默认使用UTF-8编码,而`char`在非Unicode环境下通常使用单字节编码...
在Oracle数据库中,VARCHAR2()和NVARCHAR2()都是用于存储可变长度的字符串数据类型,但它们之间存在显著的差异,主要涉及到字符编码和存储方式。 首先,VARCHAR2()类型是Oracle数据库中最常见的字符串类型,它允许...
在MySQL数据库中,`CHAR`和`VARCHAR`是两种常见的字符串数据类型,它们在存储和处理数据时具有不同的效率特点。理解这两种类型的差异对于优化数据库性能至关重要。 `CHAR`是一种固定长度的数据类型,这意味着无论...
Range分区:最为常用,基于属于一个给定连续区间的列值,把多行分配给分区。最常见的是基于时间字段. 基于分区的列最好是整型,如果日期型的可以使用函数转换为整型。varchar日期字段分区sql demo
2. varchar 转 date 使用 to_date 函数可以将 varchar 类型转换为 date 类型。例如: ```sql select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual; ``` 这将字符串形式的日期和时间转换为 ...
2. 字符长度的相似性:如果字段的长度大部分时间相近,如电话号码,即使长度较长,使用CHAR可能更合适,因为长度变化不大,浪费的空间相对有限。 3. 空间效率:如果字段长度差异大,经常存储较短的字符串,VARCHAR能...
nchar_char_varchar与nvarchar有何区别?
4. 在MySQL 5.0.45版本(使用`UTF-8`编码)中,`VARCHAR`字段的最大长度被限制为21785个字符,因为65535字节减去2字节的长度前缀,再除以3(UTF-8编码的平均字节数)等于21785。 5. 虽然`VARCHAR`在存储时会去除...
本文主要探讨的是两种常见字符串类型:`CHAR`和`VARCHAR2`,它们在使用上有何不同,并且会涉及一些相关的Oracle数据库功能。 首先,`CHAR`是定长字符串类型,这意味着当你声明一个`CHAR(10)`字段时,无论你存储的...