达梦数据库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. OpenSSL命令总结

    OpenSSL命令总结 疑今者察之古,不知来者视之往. 导航 介绍 对称加密 公钥加密 信息摘要 数字证书 杂项 介绍 密码学标准和互联网协议一样,是一种大家都遵守的约定和标准,比如PKCS#1中规定 ...

  2. Asp .Net Core系列:基于MySQL的DBHelper帮助类和SQL Server的DBHelper帮助类

    目录 MySQLDBHelper MSSQLDBHelper MySQLDBHelper app.config中添加配置 <connectionStrings> <add name= ...

  3. 确定了-C#是2023年度的编程语言!

    大家好,我是沙漠尽头的狼.在朋友圈看到桂素伟大佬发的喜讯截图,站长赶紧翻译向大家报喜,确定了-C#是2023年度的编程语言! 在TIOBE指数的历史上,C#首次获得了年度编程语言的奖项.祝贺!二十多年 ...

  4. java中final关键字的使用

              1 :在java中final可以修饰类,方法,变量(包括成员变量和局部变量) 第一点:修饰类 特点:修饰的类不能被继承而且成员变量也是可以根据自己需要设置fianl 但final类 ...

  5. 计算机网络分层结构--OSI模型、TCP/IP 模型、五层模型

    计算机网络分层结构 OSI参考模型与TCP/IP参考模型 五层参考模型

  6. MES/MOM国内市场现状趋势与新生态模式参考

    本文分享自华为云社区<工业互联网系列(七)MES/MOM国内市场现状趋势与新生态模式参考>,作者:云起MAE . 国内工业互联网平台服务整体围绕数字化及数据价值挖掘的底层逻辑没有变,变的是 ...

  7. 18篇文章系统解读:中台规划如何撬动企业IT基础设施转型升级

    摘要:通过这个系列,让大家对中台的价值.针对的问题痛点.中台规划的方法思路和技巧.一些中台业务实践有个基本的认识,让客户清楚的意识到企业中台的业务价值,进而通过企业中台规划牵引客户IT基础设施投资. ...

  8. ByteHouse:基于ClickHouse的实时数仓能力升级解读

     更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群   ByteHouse是火山引擎上的一款云原生数据仓库,为用户带来极速分析体验,能够支撑实时数据分析和海量数据离 ...

  9. Linux 下 Docker 操作遭到守护程序套接字时访问权限被拒绝

    Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker. ...

  10. PySpark 入门:通过JDBC连接数据库(DataFrame)

    这里以关系数据库MySQL为例.首先,本博客教程(Ubuntu 20.04 安装MySQL 8.X),在Linux系统中安装好MySQL数据库.这里假设你已经成功安装了MySQL数据库.下面我们要新建 ...