暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8c 配置大小写和中英文排序

ClickHouse周边 2025-04-15
404

1. 概述

       GBase 8c 多模多态企业级分布式数据库具备高性能、高可用、弹性伸缩、高安全性等特性,可以部署在物理机、虚拟机、容器、私有云和公有云,为关键行业核心系统、互联网业务系统和政企业务系统提供安全、稳定、可靠的数据存储和管理服务。GBase 8c支持行存、列存、内存等多种存储模式;支持单机、主备式、分布式等多种部署形态。想了解更多产品架构信息,请点击 GBase 8c 多模多态分布式数据库简介与安装 。

       本文介绍的配置大小写和关键字主要针对单机、主备式部署形态。

2.配置大小写
       为满足兼容MySQL 的大小写问题GBase 8c 支持库字符集 UTF8 的表名、列名、数据大小写。

2.1 表名大小写

       GBase 8c 表名默认为小写,为满足兼容 MySQL 大小写问题,支持库session级别参数dolphin.lower_case_table_names,默认值1(小写/大小写不敏感),设置为0 支持大写。配置后重连生效。

       dolphin.lower_case_table_names默认为1时 
       dolphin.lower_case_table_names设置为0时 
    alter database mysql_test set dolphin.lower_case_table_names to 0;

           另外 GBase 8c dolphin.lower_case_table_names=1)表名默认为小写时 ,创建时表名加双引号,也支持识别为大写。

    2.2 列名大小写

           GBase 8c 默认支持列名大小写不敏感。

      # 创建兼容 MySQL 的数据库
      CREATE DATABASE mysql_test DBCOMPATIBILITY 'B' encoding 'UTF-8';


      # 创建 test 测试表(列名大小写混写)
      create table test(Id int, NaMe varchar(10),ADDRESS text);
      select * from test;
      insert into test values(1,'张三','北京');
      insert into test values(2,'李四','天津');
      select id,name from test;
      update test set NAME='李四' where ID=1;
      select id,name,addRess from test;


      delete from test where ID=1 and NAME='李四';
      select id,name,addRess from test;
             从上面用例可以看出,在创建表时,可以指定列名大小写混写,查询时显示自定义的列名;在增删改操作时大小写任意混写,也是可以与之匹配到用户自定义的列名,在场景中满足MySQL的兼容。
      2.3 数据大小写

             GBase 8c 默认数据大小写敏感。为满足兼容 MySQL 数据大小写不敏感,支持表级别编码 utf8_general_ci,查询不区分大小写。

      3.中英文排序

            GBase 8c 兼容MySQL,字符集UTF8,Collation序规则默认C,Ctype字符类型默认C下 。指定字段默认排序,默认首字符按照英文在前大写字符在全部小写字符之前)中文在后。

            首字符按照英文在前(前缀字符相同的英文,小写在大写之前),中文在后演示示例

        ORDER BY  NLSSORT(name,'NLS_SORT=SCHINESE_PINYIN_M') 

              首字符按照英文在前(前缀字符相同的英文,写在写之前),中文在后演示示例

          ORDER BY  NLSSORT(name,'NLS_SORT=generic_m_ci') 

                GBase 8c 兼容MySQL,字符集UTF8,Collation排序规默认zh_CN.utf8Ctype字符类型默认zh_CN.utf8下 。指定字段默认排序,默认首字符按照中文在前,英文在后(前缀字符相同的英文,小写在大写之前)

                首字符按照英文在前(前缀字符相同的英文,小写在大写之前),中文在后演示示例

            ORDER BY  NLSSORT(name,'NLS_SORT=SCHINESE_PINYIN_M') 

                  首字符按照英文在前(前缀字符相同的英文,写在写之前),中文在后演示示例

              ORDER BY  NLSSORT(name,'NLS_SORT=generic_m_ci') 


              声明
                     因小编个人水平有限,专栏中难免存在错漏之处,请勿直接复制文档中的参数、命令或方法应用于线上环境中操作。

              近期文章推荐
              GBase 8c 多模多态分布式数据库简介与安装

              文章转载自ClickHouse周边,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

              评论