达梦数据库varchar和nvarchar的验证


测试SQL

create tablespace zhaobsh datafile '/opt/dmdbms/data/DAMENG/zhaobsh.dbf' size 128
# 需要注意 达梦数据库的大小限制为:
# 第1 行附近出现错误[-2422]:数据文件[/opt/dmdbms/data/DAMENG/zhaobsh.dbf]大小无效,取值范围为(128~67108863)M.
重建用户
create user zhaobsh identified by Testxxxx default tablespace zhaobsh ;
grant dba to zhaobsh ; 重建表等信息:
create table zhaobsh (zhaobshvarchar varchar(30),zhaobshnvarchar nvarchar(30)) ;
insert into zhaobsh values ('123abc','123abc') ;
insert into zhaobsh values ('abcd赵1234','abcd赵1234') ;
insert into zhaobsh values ('abcde한국12345','abcde한국12345') ;
insert into zhaobsh values ('abcde한국12345',N'abcde한국12345') ;

分析数据文件

SELECT CHECKPOINT(100);

据说可以将脏数据落盘, 先执行一下, 不然可能数据库里面没有插入的数据

需要注意 现代数据库都是写入log就是落盘成功
数据文件的更改要等待checkpoint 或者是开启关闭数据库时进行.

winhex的分析

Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F

00080060                  86 00 32  33 61 62 63 86 31 32 33        ?23abc?23
00080070 61 62 63 01 00 00 00 00 00 FF FF FF FF 7F FF FF abc  
00080080 F9 2E 00 00 00 00 00 2C 00 B2 00 62 63 64 D5 D4 ? , ?bcd赵
00080090 31 32 33 34 8A 61 62 63 64 D5 D4 31 32 33 34 02 1234奱bcd赵1234
000800A0 00 00 00 00 00 FF FF FF FF 7F FF FF F9 2E 00 00  ?
000800B0 00 00 00 3C 00 EE 00 62 63 64 65 83 36 84 33 82 < ?bcde???
000800C0 37 F4 30 31 32 33 34 35 92 61 62 63 64 65 83 36 7?12345抋bcde?
000800D0 84 33 82 37 F4 30 31 32 33 34 35 03 00 00 00 00 ???12345
000800E0 00 FF FF FF FF 7F FF FF F9 2E 00 00 00 00 00 3C  ? <
000800F0 00 FF FF 62 63 64 65 83 36 84 33 82 37 F4 30 31 bcde????1
00080100 32 33 34 35 92 61 62 63 64 65 83 36 84 33 82 37 2345抋bcde???
00080110 F4 30 31 32 33 34 35 ?12345

简要分析-ASCII

1. ASCII的编码
感觉达梦数据库比较奇怪, 他的行首的第一个信息应该是有一个其他的作用, 所以第一个我总是找不到在哪里.
86 00 32 33 61 62 63 86 31 32 33 61 62 63
感觉86 就像是一个风恶魔, 表示行的分割
但是第一列的00 我理解不太了.
但是可以看到在ASCII 里面 varchar和 nvarchar 其实表示是一样的 都是一个字节一个汉字.

简要分析-中文

B2 00 62 63 64 D5 D4 31 32 33 34
8A 61 62 63 64 D5 D4 31 32 33 34
在中文的表现看来. varchar和nvarchar 其实是一直的
都是展示的 赵的 GBK的编码
赵 简体中文(GB2312、GBK) gb2312 D5D4
需要注意 GB18030 和 GBK应该是兼容的:
赵 简体中文(GB18030) GB18030 D5D4 说明 varchar 和 nvarchar 都是 ASCII 占用一个字节, 中文占用两个字节.

简要分析-韩文

EE 00 62 63 64 65 83 36 84 33 82 37 F4 30 31 32 33 34 35
92 61 62 63 64 65 83 36 84 33 82 37 F4 30 31 32 33 34 35 注意他存储的是:
한국 简体中文(GB18030) GB18030 83 36 84 33 82 37 F4 30 因为我选择的是 GB18030的数据库字符集 所以韩文明显存储的就是 GB18030的信息
需要说明的是
韩文是 四字节的 编码.
所以 两个韩文其实使用了 8个字节进行存储 同事也说明.
不管是varchar 和 nvarchar 在进行 韩文的存储时也是一样的.

插入是增加 N 的效果

FF FF 62 63 64 65 83 36 84 33 82 37 F4 30 31 32 33 34 35
92 61 62 63 64 65 83 36 84 33 82 37 F4 30 31 32 33 34 35 跟上面一个一样,其实达梦数据库不管带不带 N 都是一样的进行存储, 基本上是没有问题的.

总结

感觉虽然达梦和Oracle的语法很像.
但是感觉他对varchar和nvarchar的处理与 MySQL是很相似的. 多种使用方法下其实是一致的体验.
GB18030其实也是一个很好的字符集, 至少东亚圈的部分显示都可以做到.
国际化更加深远的部分就不得而知了 过段时间学习下一年GB18030的编码详细情况.

达梦数据库varchar和nvarchar的验证的更多相关文章

  1. 达梦数据库产品支持技术学习分享_Week1

    本周主要从以下几个方面进行本人对达梦数据库学习的分享,学习进度和学习情况因人而异,仅供参考. 一.达梦数据库的体系架构 二.达梦数据库的安装 三.达梦数据库的数据类型 四.达梦数据库的DDL.DML. ...

  2. [转帖]达梦数据库(DM6)和ORACLE 10g的异同点

    达梦数据库(DM6)和ORACLE 10g的异同点    https://bbs.aliyun.com/detail/351337.html   花花浪子 级别: 小白 发帖 0 云币 -41 加关注 ...

  3. 达梦数据库(DM8)大规模并行集群MPP 2节点安装部署

    达梦数据库大规模并行集群MPP 2节点安装部署   1.环境准备   os 数据库版本 ip mpp角色 centos7.x86 DM8 192.168.30.100 mpp1 centos7.x86 ...

  4. Linux部署达梦数据库(完全版)

    环境准备 数据库下载去http://www.dameng.com 1.下载好达梦数据库iso上传(通过xftp)到你自己存在的目录(/opt) 2.将你上传的iso文件挂载到其它的目录下面(mount ...

  5. 基于Enterprise Library的Winform开发框架实现支持国产达梦数据库的扩展操作

    由于一个客户朋友的需求,需要我的Winform开发框架支持国产达梦数据库的操作,这个数据库很早就听过,但是真正一般项目用的很少,一般在一些特殊的项目可能需要用到.由于我的Winform开发框架,是基于 ...

  6. 国产达梦数据库的结合Enterprise Library的应用开发

    在上篇<基于Enterprise Library的Winform开发框架实现支持国产达梦数据库的扩展操作>介绍了如何在Enterprise Library的数据访问层上支持这种神秘的国产数 ...

  7. DB 查询分析器 6.03 如何灵活、快捷地操作国产达梦数据库

    DB 查询分析器 6.03 如何灵活.快捷地操作国产达梦数据库 马根峰 (广东联合电子服务股份有限公司, 广州 510300) 摘要       本文详细地介绍了"万能数据库查询分析器&qu ...

  8. 达梦数据库DM7小结

    除了很多主流的数据库,我们很熟悉之外,越来越多的国产数据库也涌现出来. 这次就小结一些有关武汉的达梦数据库7这个开发版数据库的有别或者需要注意的地方进行一个简单备注吧. 1.第一件大事就是下载.数据库 ...

  9. Shell脚本使用汇总整理——达梦数据库备份脚本

    Shell脚本使用汇总整理——达梦数据库备份脚本 Shell脚本使用的基本知识点汇总详情见连接: https://www.cnblogs.com/lsy-blogs/p/9223477.html 脚本 ...

  10. .NETCore 访问国产达梦数据库

    前言 武汉达梦数据库有限公司成立于2000年,为中国电子信息产业集团(CEC)旗下基础软件企业,专业从事数据库管理系统的研发.销售与服务,同时可为用户提供大数据平台架构咨询.数据技术方案规划.产品部署 ...

随机推荐

  1. maven系列:多环境配置与应用

    目录 一.多环境配置步骤 定义多环境 使用多环境(构建过程) 二.跳过测试(了解) 应用场景 跳过测试命令 2.3 细粒度控制跳过测试 多环境配置有什么好处? maven提供配置多种环境的设定,帮助开 ...

  2. 云图说|ModelArts开发环境,让AI开发、探索、教学更简单

    摘要:ModelArts开发环境,以云原生的资源使用和开发工具链的集成,目标为不同类型AI开发.探索.教学用户. 本文分享自华为云社区<[云图说]| 第280期 ModelArts开发环境,让A ...

  3. 优化了MYSQL大量写入问题,老板奖励了1000块给我

    摘要:大家提到Mysql的性能优化都是注重于优化sql以及索引来提升查询性能,大多数产品或者网站面临的更多的高并发数据读取问题.然而在大量写入数据场景该如何优化呢? 今天这里主要给大家介绍,在有大量写 ...

  4. vue2升级vue3: TSX Vue 3 Composition API Refs

    在vue2时代,$refs 直接操作子组件 this.$refs.gridlayout.$children[index]; 虽然不推荐这么做,但是确实非常好用.但是vue2快速迁移到vue3,之前的这 ...

  5. 讲透学烂二叉树(三):二叉树的遍历图解算法步骤及JS代码

    二叉树的遍历是指不重复地访问二叉树中所有结点,主要指非空二叉树,对于空二叉树则结束返回. 二叉树的遍历分为 深度优先遍历 先序遍历:根节点->左子树->右子树(根左右),有的叫:前序遍历 ...

  6. 十大 CI/CD 安全风险(二)

    在上一篇文章中,我们主要介绍了 CI/CD 中流程控制机制不足和身份及访问管理不足两大安全风险,并为企业及其开发团队在缓解相应风险时给出了一些建议.今天我们将继续介绍值得企业高度关注的 CI/CD 安 ...

  7. PPT 动画入门

    元素动画 进入动画 元素从无到有的过程 退出动画 元素从有到无的过程 退出动画和进入动画,一对一 强调动画 在元素上变化的过程(如放大) 动作路径 3D动画 三维动画 低版本不支持 组合动画 切换动画 ...

  8. MongoDB 读写分离——SpringBoot读写分离

    application.yml data: mongodb: uri: mongodb://127.0.0.1:27017,127.0.0.1:27018,127.0.0.1:27019/fecg_d ...

  9. Linux环境使用Apache部署静态html页面

    Linux环境使用Apache部署静态html页面 安装httpd yum -y install httpd 启动Apache并验证 systemctl start httpd service htt ...

  10. STM32CubeMX教程15 ADC - 多重ADC转换

    1.准备材料 开发板(正点原子stm32f407探索者开发板V2.4) STM32CubeMX软件(Version 6.10.0) keil µVision5 IDE(MDK-Arm) ST-LINK ...