CHAR,NCHAR,VARCHAR,NVARCHAR

Oracle

类型定义

存储长度是否固定

存储长度指定

存储长度限制

存储字符集及编码方式

CHAR

存储固定长度的字符串

  • 可以用字节或字符来指定一个字符串的最大长度,显示指定如CHAR(length BYTE), CHAR(length CHAR),默认使用BYTE,如CHAR(length);当不指定时,默认为1,如CHAR

  • 当使用字符时,最大长度取决于当前的数据库编码,最大字符串的长度=每个字符中最大字符长度*最大字节数

  • 当插入或更新的长度小于列中定义的长度,则由空格补齐;当插入长度大于定义长度,则报错“value too large for column xxx“

最大存储长度为2000字节

数据库字符集

NCHAR

存储固定长度的字符串

  • 可以指定最大字符数,显示指定如NCHAR(length);当不指定时,默认为1,如NCHAR

  • 最大长度取决于当前的数据库编码,最大字符串的长度=每个字符中最大字符长度*最大字节数

  • 当插入或更新的长度小于列中定义的长度,则由空格补齐;当插入长度大于定义长度,则报错

最大存储长度为2000字节

国家字符集,UNICODE编码,AL16UTF16或UTF8编码方式

  • AL16UTF16 - 宽度固定的双字节 Unicode 字符集,默认使用

  • UTF8 - 宽度可变的、一至三个字节的 Unicode 字符集

VARCHAR2

存储可变长度的字符串

  • 强制用字节或字符来指定一个字符串的最大长度,显示指定如VARCHAR2(max_size BYTE), VARCHAR2(max_size CHAR),默认使用BYTE,如VARCHAR2(max_size)

  • 当使用字符时,最大长度取决于当前的数据库编码,最大字符串的长度=每个字符中最大字符长度*最大字节数

  • 当插入或更新的长度小于列中定义的长度,则以实际字符长度进行存储;当插入长度大于定义长度,则报错“value too large for column xxx“

  • 当MAX_STRING_SIZE = STANDARD,最大存储4000字节

  • 当MAX_STRING_SIZE = EXTENDED,最大存储32767字节

数据库字符集

NVARCHAR2

存储可变长度的字符串

  • 强制指定最大字符数,如NVARCHAR2(max_size),最大长度取决于当前的数据库编码

  • 最大长度取决于当前的数据库编码,最大字符串的长度=每个字符中最大字符长度*最大字节数

  • 当插入或更新的长度小于列中定义的长度,则以实际字符长度进行存储;当插入长度大于定义长度,则报错

  • 当MAX_STRING_SIZE = STANDARD,最大存储4000字节

  • 当MAX_STRING_SIZE = EXTENDED,最大存储32767字节

国家字符集,UNICODE编码,AL16UTF16或UTF8编码方式

  • AL16UTF16 - 宽度固定的双字节 Unicode 字符集,默认使用

  • UTF8 - 宽度可变的、一至三个字节的 Unicode 字符集

使用示例

CHAR,NCHAR,VARCHAR,NVARCHAR_第1张图片
CHAR,NCHAR,VARCHAR,NVARCHAR_第2张图片

Mysql

类型定义

存储长度是否固定

存储长度指定

存储长度限制

存储字符集及编码方式

CHAR

存储固定长度的字符串

  • 可以指定最大字符数,显示指定如CHAR(length);当不指定时,默认为1,如CHAR

  • 最大长度取决于当前的数据库编码,最大字符串的长度=每个字符中最大字符长度*最大字节数

  • 当插入或更新的长度小于列中定义的长度,则由空格补齐;当插入长度大于定义长度,则报错

最大存储长度为255个字符

数据库字符集

NCHAR

存储固定长度的字符串

  • 可以指定最大字符数,显示指定如NCHAR(length);当不指定时,默认为1,如NCHAR

  • 1中文字符 = 3字节

1英文字符/数字 = 1字节

  • 当插入或更新的长度小于列中定义的长度,则由空格补齐;当插入长度大于定义长度,则报错

最大存储长度为255个字符

UNICODE编码,相当于CHAR in UTF8

VARCHAR

存储可变长度的字符串

  • 强制指定最大字符数,如VARCHAR(max_size)

  • 最大长度取决于当前的数据库编码,最大字符串的长度=每个字符中最大字符长度*最大字节数

  • 当插入或更新的长度小于列中定义的长度,则以实际字符长度进行存储;当插入长度大于定义长度,则报错

  • 最大存储长度为65535个字符

  • 所有列的总长度要小于65535字节

  • 各个VARCHAR列需要预留1-2个字节作为长度前缀

  • 字符串长度<=255时,长度前缀为1字节

  • 字符串长度>255时,长度前缀为2字节

数据库字符集

NVARCHAR

存储可变长度的字符串

  • 强制指定最大字符数,如NVARCHAR(max_size)

  • 1中文字符 = 3字节

1英文字符/数字 = 1字节

  • 当插入或更新的长度小于列中定义的长度,则以实际字符长度进行存储;当插入长度大于定义长度,则报错

  • 最大存储长度为65535个字符

  • 所有列的总长度要小于65535字节

  • 各个VARCHAR列需要预留1-2个字节作为长度前缀

  • 字符串长度<=255时,长度前缀为1字节

  • 字符串长度>255时,长度前缀为2字节

UNICODE编码,相当于VARCHAR in UTF8

使用示例

CHAR,NCHAR,VARCHAR,NVARCHAR_第3张图片
CHAR,NCHAR,VARCHAR,NVARCHAR_第4张图片

你可能感兴趣的:(数据库扫盲,数据库,java,开发语言)