---------------------------------------------------------------------------------------------

LENGTH_IN_CHAR:
VARCHAR 类型对象的长度是否以字符为单位。取值:1、Y表示是,0、N表示否。默认值为0。可选参数

1 或Y:是,所有VARCHAR类型对象的长度以字符为单位。这种情况下,定义长度并非真正按照字符长度调整,而是将存储长度值按照理论字符长度进行放大。所以会出现实际可插入字符数超过定义长度的情况,这种情况也是允许的。同时,存储的字节长度 8188 上限仍然不变,也就是说,即使定义列长度为 8188 字符,其实际能插入的字符串占用总字节长度仍然不能超过8188;
0 或N:否,所有VARCHAR 类型对象的长度以字节为单位。
---------------------------------------------------------------------------------------------
创建实例的时候,该参数默认为0,varchar类型的字段长度是以字节为单位,那么该参数为0和1的时候,以及编码选择GB18030和UNICODE的时候,varchar类型字段存入的实际情况又是如何呢?下面通过不同的场景测试结果来给出一个确定的答案。
共用的建表语句如下:
create table test(c1 varchar(10)); table test(c1 varchar(10));
一、UNICODE_FLAG=0,LENGTH_IN_CHAR=0
--插入10个英文,正常插入10个英文,正常

insert into test(c1) values('ABCDEFGHIJ'); into test(c1) values('ABCDEFGHIJ');

--插入11个英文,错误插入11个英文,错误

insert into test(c1) values('ABCDEFGHIJA'); into test(c1) values('ABCDEFGHIJA');

--插入5个中文,正常插入5个中文,正常

insert into test(c1) values('测试一下测'); into test(c1) values('测试一下测');

--插入6个中文,错误插入6个中文,错误

insert into test(c1) values('测试一下测试'); into test(c1) values('测试一下测试');

二、UNICODE_FLAG=0,LENGTH_IN_CHAR=1
--插入10个英文,正常插入10个英文,正常

insert into test(c1) values('ABCDEFGHIJ'); into test(c1) values('ABCDEFGHIJ');

--插入11个英文,正常插入11个英文,正常

insert into test(c1) values('ABCDEFGHIJA'); into test(c1) values('ABCDEFGHIJA');

--插入20个英文,正常插入20个英文,正常

insert into test(c1) values('ABCDEFGHIJABCDEFGHIJ'); into test(c1) values('ABCDEFGHIJABCDEFGHIJ');

--插入21个英文,错误插入21个英文,错误

insert into test(c1) values('ABCDEFGHIJABCDEFGHIJA'); into test(c1) values('ABCDEFGHIJABCDEFGHIJA');

--插入10个中文,正常插入10个中文,正常

insert into test(c1) values('测试一下测试一下测试'); into test(c1) values('测试一下测试一下测试');

--插入11个中文,错误插入11个中文,错误

insert into test(c1) values('测试一下测试一下测试一'); into test(c1) values('测试一下测试一下测试一');

--插入10个中文1个英文,错误插入10个中文1个英文,错误

insert into test(c1) values('测试一下测试一下测试A'); into test(c1) values('测试一下测试一下测试A');

三、UNICODE_FLAG=1,LENGTH_IN_CHAR=0
--插入10个英文,正常

insert into test(c1) values('ABCDEFGHIJ'); into test(c1) values('ABCDEFGHIJ');

--插入11个英文,错误

insert into test(c1) values('ABCDEFGHIJA'); into test(c1) values('ABCDEFGHIJA');

--插入5个中文,正常

insert into test(c1) values('测试一'); into test(c1) values('测试一');

--插入5个中文1个英文,正常

insert into test(c1) values('测试一A'); into test(c1) values('测试一A');

--插入6个中文,错误

insert into test(c1) values('测试一下'); into test(c1) values('测试一下');

--插入5个中文2个英文,错误

insert into test(c1) values('测试一AB'); into test(c1) values('测试一AB');

四、UNICODE_FLAG=1,LENGTH_IN_CHAR=1
--插入10个英文,正常

insert into test(c1) values('ABCDEFGHIJ'); into test(c1) values('ABCDEFGHIJ');

--插入20个英文,正常

insert into test(c1) values('ABCDEFGHIJABCDEFGHIJ'); into test(c1) values('ABCDEFGHIJABCDEFGHIJ');

--插入40个英文,正常

insert into test(c1) values('ABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJ'); into test(c1) values('ABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJ');

--插入41个英文,错误

insert into test(c1) values('ABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJA'); into test(c1) values('ABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJA');

--插入10个中文,正常

insert into test(c1) values('测试一下测试一下测试'); into test(c1) values('测试一下测试一下测试');

--插入13个中文,正常

insert into test(c1) values('测试一下测试一下测试一下测'); into test(c1) values('测试一下测试一下测试一下测');

--插入14个中文,错误

insert into test(c1) values('测试一下测试一下测试一下测试'); into test(c1) values('测试一下测试一下测试一下测试');

--插入13个中文1个英文,正常

insert into test(c1) values('测试一下测试一下测试一下测A'); into test(c1) values('测试一下测试一下测试一下测A');

--插入13个中文2个英文,错误

insert into test(c1) values('测试一下测试一下测试一下测AB'); into test(c1) values('测试一下测试一下测试一下测AB');

综合测试结果得出结论如下:
配置 字段长度 英文存储个数 中文存储个数 实际字节数 备注
UNICODE_FLAG=0
LENGTH_IN_CHAR=0
VARCHAR(10) 10 5 10 中文占2字节
UNICODE_FLAG=0
LENGTH_IN_CHAR=1
VARCHAR(10) 20 10 20 中文站2字节,以字符为单位,
自动扩充为双倍字节数
UNICODE_FLAG=1
LENGTH_IN_CHAR=0
VARCHAR(10) 10 3.3 10 中文占3字节
UNICODE_FLAG=1
LENGTH_IN_CHAR=1
VARCHAR(10) 40 13.3 40 中文站3字节,以字符为单位,
自动扩充为4倍

达梦数据库LENGTH_IN_CHAR(对象的长度是否以字符为单位)总结相关推荐

  1. DM达梦数据库dminit使用手册

    功能简介(dminit是什么?) dminit 是 DM 数据库初始化工具.在安装 DM 的过程中,用户可以选择是否创建初始数据库.如果当时没有创建,那么在安装完成之后,可以利用创建数据库工具 dmi ...

  2. 达梦mpp相当于oracle什么,DM7 达梦数据库 大规模并行处理 MPP (1) -- 基本概念和原理...

    1 概述 达梦大规模并行处理 MPP(DM Massively Parallel Processing,缩写 DM MPP)是基于达梦数据库管理系统研发的完全对等无共享式集群组件,支持将多个 DM 数 ...

  3. 达梦数据库初始化实例参数说明(页大小 (page_size)、簇大小 (extent_size)、大小写敏感 (case_sensitive)、字符集 (charset))

    目录 一.实例设置方法 二.各参数设置不同值的区别 1. 页大小 2. 簇大小 3. 标识符大小写敏感 4. 字符集选项 5. VARCHAR 类型长度是否以字符为单位 一.实例设置方法 达梦数据库利 ...

  4. 达梦数据库中字符和字节的介绍

    参数简介 在使用DMINIT初始化数据库的时候,我们有以下这两个跟字符集有关的参数,UNICODE_FLAG和LENGTH_IN_CHAR. UNICODE_FALG : 此参数表示了数据库中所有数据 ...

  5. 中标麒麟运行java,开发知识-中标麒麟安装达梦数据库(DM8)

    环境说明 操作系统版本:NeoKylin Linux Advanced Server release V7Update6 (Chromium) 1.前期准备工作 1.1数据库下载 1.2创建安装用户 ...

  6. 达梦数据库安装学习总结--DCA上篇

    达梦数据库DCA概述 达梦数据库是一款完全自主原创的国产数据库,国产的操作系统及国产的数据库在国内使用不断扩大,升级及发展也日新月异,其中达梦数据库在政府及事业单位就得到广泛应用. DCA课程学习使用 ...

  7. 麒麟操作系统V10安装达梦数据库

    麒麟操作系统V10安装达梦数据库 1.下载达梦数据库 https://www.dameng.com/ucenter/docs.html 2.选择DM8开发版,rh7. 3.用xshell连接系统. 4 ...

  8. 达梦数据库(dm8)命令行安装过程

    操作系统:麒麟V10 达梦数据库:dm8(企业版) 本机IP地址:192.168.174.180 一.达梦数据库的环境初始化(操作系统及相关配置) 1. 配置主机名,并修改本地hosts文件 host ...

  9. linux安装达梦数据库v8

    linux安装达梦数据库v8 操作系统.数据库 1.下载达梦数据库 2.安装前准备 2.1.建立数据库用户和组 2.2.修改文件打开最大数 2.3.挂载镜像 2.4.新建安装目录 3.数据库安装 4. ...

最新文章

  1. MySQL-mysql 8.0.11安装教程
  2. OpenMP在ARM-Linux以及NDK中的编译和使用
  3. linux rz xshell
  4. Select网络模型下的简单CS实例
  5. 算法系列之选择排序算法
  6. 2022-03-07 学习docker开发vue前端
  7. jeesit 基于springMVC + mybatis配置多数据源的问题
  8. SPSS正态分布,泊松分布,指数分布,均匀分布检验
  9. 计算机显卡驱动异常,解决显卡驱动无法正常安装的问题
  10. 杂七杂八之Ubuntu-16.04安装 vs code
  11. Java方式实现上传微信素材
  12. caj格式转换成pdf免费的有吗
  13. 3第三课:区块链的激励机制
  14. 2021年焊工(初级)考试试卷及焊工(初级)复审考试
  15. 5455. 最多 K 次交换相邻数位后得到的最小整数
  16. 13.14.4 文本文件到电子表格。python编程快速上手--让繁琐工作自动化 第2版。【美】阿尔·斯维加特 Al Sweigart 著 王海鹏 译 中国工信出版集团 人民邮电出版社
  17. 游戏设计的艺术:一本透镜的书——第十六章 故事和游戏结构能用间接控制巧妙地联合起来
  18. overleaf怎么输入中文_【LATEX】在线latex排版工具Overleaf-制作中文简历-详细教程...
  19. 如何:创建 C# 控制台应用程序
  20. 关于lichong_87的外键级联更新-延迟检查和触发器的实现一点补充

热门文章

  1. SpringBoot---Eureka
  2. 服务器运维技术-02 Linux基本使用
  3. 强推win10损害用户利益?这锅微软不背
  4. 数据库修改表中的数据(SqlServer)
  5. Springboot 项目学习
  6. PlatoFarm几大创新经济模型,给予当下元宇宙市场的启发
  7. 光明区支持现代服务业高质量发展若干措施(征求意见稿)
  8. 3DMAX软件可以运用到哪些行业?次世代游戏建模怎么样?
  9. 剑指offer_12_打印1到最大的n位数
  10. 解决斜杠符号被转义的问题