达梦数据库varchar和nvarchar的验证


测试SQL

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

分析数据文件

  1. SELECT CHECKPOINT(100);
  2. 据说可以将脏数据落盘, 先执行一下, 不然可能数据库里面没有插入的数据
  3. 需要注意 现代数据库都是写入log就是落盘成功
  4. 数据文件的更改要等待checkpoint 或者是开启关闭数据库时进行.

winhex的分析

  1. Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F
  2. 00080060 86 00 32 33 61 62 63 86 31 32 33 ?23abc?23
  3. 00080070 61 62 63 01 00 00 00 00 00 FF FF FF FF 7F FF FF abc  
  4. 00080080 F9 2E 00 00 00 00 00 2C 00 B2 00 62 63 64 D5 D4 ? , ?bcd
  5. 00080090 31 32 33 34 8A 61 62 63 64 D5 D4 31 32 33 34 02 1234bcd1234
  6. 000800A0 00 00 00 00 00 FF FF FF FF 7F FF FF F9 2E 00 00  ?
  7. 000800B0 00 00 00 3C 00 EE 00 62 63 64 65 83 36 84 33 82 < ?bcde???
  8. 000800C0 37 F4 30 31 32 33 34 35 92 61 62 63 64 65 83 36 7?12345bcde?
  9. 000800D0 84 33 82 37 F4 30 31 32 33 34 35 03 00 00 00 00 ???12345
  10. 000800E0 00 FF FF FF FF 7F FF FF F9 2E 00 00 00 00 00 3C  ? <
  11. 000800F0 00 FF FF 62 63 64 65 83 36 84 33 82 37 F4 30 31 bcde????1
  12. 00080100 32 33 34 35 92 61 62 63 64 65 83 36 84 33 82 37 2345bcde???
  13. 00080110 F4 30 31 32 33 34 35 ?12345

简要分析-ASCII

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

简要分析-中文

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

简要分析-韩文

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

插入是增加 N 的效果

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

总结

  1. 感觉虽然达梦和Oracle的语法很像.
  2. 但是感觉他对varcharnvarchar的处理与 MySQL是很相似的.
  3. 多种使用方法下其实是一致的体验.
  4. GB18030其实也是一个很好的字符集, 至少东亚圈的部分显示都可以做到.
  5. 国际化更加深远的部分就不得而知了
  6. 过段时间学习下一年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. Map的特性(有序和无序)讨论

    目录 什么是红黑树? 在 Java 中,基础java.util.Map 接口本身并不保证元素的顺序.具体的实现类 HashMap 和 TreeMap 的行为(无序.有序)有所不同: HashMap 类 ...

  2. 【Python】人工智能-机器学习——不调库手撕贝叶斯分类问题

    1. 作业内容描述 1.1 背景 数据集大小150 该数据有4个属性,分别如下 Sepal.Length:花萼长度(cm) Sepal.Width:花萼宽度单位(cm) Petal.Length:花瓣 ...

  3. flutter BLoC框架

    BLoC(Business Logic Component)是一种在Flutter中用于管理状态和处理业务逻辑的设计模式和架构模式. BLoC 的核心思想是将应用程序的状态.业务逻辑和UI分离开来,以 ...

  4. LeetCode 栈与队列篇(12、155、84、239)

    20. 有效的括号 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. ...

  5. 异步、多线程、Await/Async、Task

    异步多线程经常被拿来说事,网上文章也是多如牛毛,我也是停留在很菜的水平,痛下决心好好"恶补"一下这块知识. 还是先放两个官方文档压压惊:使用 Async 和 Await 的异步编程 ...

  6. 基于LiteOS Studio零成本学习LiteOS物联网操作系统

    摘要:大家在学习物联网操作系统开发的时候,都不得不准备一套开发板和仿真器,也是一笔不小的投资.LiteOS社区现在对外开放了对Qemu模拟器的适配工程,在不使用开发板的情况下,也可以搭建LiteOS开 ...

  7. 懂分析、会预测,你见过这样的华为云DAS吗?

    摘要:数字化时代下,华为云数据管理服务DAS基于AI技术,于近期推出了智能SQL分析(包括慢SQL发现.SQL透视).workload级别索引推荐.存储空间预测等运维特性,加上原有的数据库运维能力,构 ...

  8. Solon 的常用配置

    一.服务端基本属性 #服务端口(默认为8080) server.port: 8080 #服务的 http 信号端口(默认为 ${server.port}) server.http.port: 8080 ...

  9. 高性能 Jsonpath 框架,Snack3 3.2.54 发布(支持 kotlin data 类反序化)

    Snack3,一个高性能的 JsonPath 框架 借鉴了 Javascript 所有变量由 var 申明,及 Xml dom 一切都是 Node 的设计.其下一切数据都以ONode表示,ONode也 ...

  10. web应用模式 api接口 接口测试工具postman restful规范

    目录 web应用模式 前后端混合开发 流程说明(重要) 前后端分离开发 流程说明(重要) api接口 接口测试工具postman 基本介绍 编码格式 restful规范(重要) 简介 主要内容 练习 ...