南大通用GBase 8c迁移指南之MySQL篇

原文链接:

https://www.gbase.cn/community/post/3855

更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

本文章为基于MySQL数据库的应用系统向GBase 8c数据库迁移提供快速指导。两种数据库一些细节内容,读者可以参考MySQL官网资料( MySQL :: MySQL Documentation),以及GBase 8c用户手册来获取细节信息。迁移过程中涉及到的MySQL数据类型等基础映射,篇幅过长,本文不一一赘述。感兴趣的话打在评论区,下次讨论。

下文将介绍常用的数据库、数据表、函数、索引等基础对象相关SQL的迁移映射。

1、创建数据库

在MySQL和GBase 8c中,均使用 CREATE DATABASE 语句进行数据库的创建,具体语法区别如下:

操作

MySQL SQL语句

GBase 8c SQL语句

创建数据库

CREATE DATABASE example CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;CREATE DATABASE example OWNER gbase ENCODING ‘UTF8’ LC_COLLATE 'en_US.UTF-8'  LC_CTYPE 'en_US.UTF-8';

在进行创建数据库SQL语句迁移时需要注意的是:

(1)在MySQL 和GBase 8c中,创建数据库时均可以指定该数据库的字符集和校验规则。

区别于MySQL,在GBase 8c中可使用ENCODING 关键字指定数据库的字符集,使用LC_COLLATE及LC_CTYPE关键字指定数据库的校验规则:

  • LC_COLLATE:该参数的使用会影响到对字符串的排序顺序(如使用ORDER BY执行,以及在文本列上使用索引的顺序)
  • LC_CTYPE:该参数的使用会影响到字符的分类,如大写、小写和数字。

(2)在 GBase 8c中创建数据库时,还可以指定特有的额外属性,例如常用属性如下:

  • OWNER :该参数指定了数据库的所有者。默认缺省时,该数据库的所有者为当前用户。
  • CONNECTION LIMIT:数据库可以接受的并发连接数。系统管理员不受此参数限制。

(3)库结构

在MySQL中,database 与schema 属于同义概念,database与database之间能够关联访问。而在 GBase 8c 中,database 与schema 属于不同的数据库对象,一个database 下可以包含多个schema,并且database与database之间不能关联访问,schema与schema之间可以关联访问。

2、使用数据库

操作数据库的各类SQL语句比较:

操作

MySQL SQL语句

GBase 8c SQL语句

GBase 8c gsql工具

查看数据库

SHOW DATABASES;

SHOW DATABASE example;

SELECT * FROM pg_database;

\l 或\l+

切换数据库

USE example;

重新登录切换,该功能不使用SQL切换

\c example

删除数据库

DROP DATABASE example;

DROP DATABASE example;

3、创建数据表

在MySQL和GBase 8c中,均可以使用 CREATE TABLE 语句进行数据库的创建,具体语法区别如下:

操作

MySQL SQL语句

GBase 8c SQL语句

创建数据表 create table方式

CREATE TABLE `my_table` (

  `id` int NOT NULL AUTO_INCREMENT COMMENT 'id',

  `user_id` int NOT NULL COMMENT '用户id',

  `name` varchar(50) DEFAULT NULL COMMENT '用户名',

  `address` varchar(50) DEFAULT NULL COMMENT '地址',

  `password` varchar(20) DEFAULT 'passwd' COMMENT '密码',

  PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE "my_table" ( 

  "id" SERIAL NOT NULL,

  "user_id" int NOT NULL,

  "name" varchar(50),

  "address" varchar(50),

  "passwd" varchar(20) DEFAULT 'password',

  CONSTRAINT "my_table_pkey" PRIMARY KEY ("id")

);

COMMENT ON COLUMN "my_table"."id" IS 'id';

COMMENT ON COLUMN "my_table"."user_id" IS '用户id';

COMMENT ON COLUMN "my_table"."name" IS '用户名';

COMMENT ON COLUMN "my_table"."address" IS '地址';

COMMENT ON COLUMN "my_table"."passwd" IS '密码';

创建数据表 create table ...…like方式

create table `my_table_like` like `my_table`;

create table my_table_like (like my_table);

创建数据表 create table …… as方式

create table `my_table_as` as select * from `my_table` ;

create table my_table_as as select * from my_table ;

注意在进行创建数据表SQL语句迁移时,需要以下语法的更改:

(1)命名规则和大小写

在MySQL中,有关数据库、表名和字段的命名,会采用“` `”符号(即键盘上Esc键下面的印有~符号的键)进行标记。而这在GBase 8c中是不允许的,GBase 8c中要么使用双引号,要么直接不加任何标记。

在GBase 8c中,如果表名,字段名不加双引号,则建表的时候都会被默认转换为小写,如果需要在命名中指定为大写,则必须在该命名前后使用双引号进行标识。

 (2)存储引擎相关

  • 向GBase 8c迁移时,需要移除MySQL语句中存储元素相关子句,例如 ENGINE 和TYPE。
  • 在GBase 8c中,不支持表级别设置字符集,向GBase 8c迁移时,需要移除MySQL语句中CHARSET 相关子句。

(3)CREATE TABLE LIKE\AS

GBase 8c中也支持CREATE TABLE LIKE\AS 语法, 但在LIKE 语句的使用上与MySQL 有所不同,在GBase 8c中,LIKE 子句的前后需要使用“()”小括号进行标识,并且不会自动复制原表列上的COMMENT 注解。

4、视图相关语句

MySQL与GBase 8c 均支持视图,基本创建方式相同,但需要注意的是,在 GBase 8c 中, 默认rule下,不支持直接在视图上修改数据:

操作

MySQL SQL语句

GBase 8c SQL语句

创建视图

CREATE VIEW v_my_table AS SELECT * FROM my_table;

CREATE VIEW v_my_table AS SELECT * FROM my_table;

通过视图修改数据

INSERT INTO v_my_table(user_id,name,address) VALUES(2222,'bbb','xxxx');

支持该SQL 语法,但需要调整默认RULE

删除视图

DROP VIEW v_my_table ;

DROP VIEW v_my_table ;

5、索引相关语句

MySQL与GBase 8c 均支持索引功能,但在创建与删除操作中,有细微的差异,基本语法区别如下:

操作

MySQL SQL语句

GBase 8c SQL语句

创建索引

CREATE INDEX i_user_id USING BTREE ON my_table (user_id);

CREATE INDEX i_user_id ON my_table (user_id) USING BTREE;

CREATE INDEX i_user_id ON my_table USING BTREE (user_id);

删除索引

DROP INDEX i_user_id ON my_table;

DROP INDEX i_user_id;

在进行创建、删除索引语句迁移时需要注意的是:

(1)USING index_type 语法的位置

在MySQL中,USING index_type子句可以在 table_name(col_name) 两个子句的之前或之后的位置。形如:

... USING index_type table_name(col_name) ...

... table_name(col_name) USING index_type ...

而在GBase 8c 中,USING index_type子句需要 table_name(col_name) 子句的中间位置。

... table_name USING index_type (col_name) ...

(2)DROP INDEX ON table

在GBase 8c 中删除索引对象时,不需要指定 ON table 子句,迁移时需要进行移除。

(3)其他属性

在GBase 8c 中创建索引对象时,不支持FULLTEXT 和 SPATIAL属性,迁移时需要进行移除。

原文链接:

https://www.gbase.cn/community/post/3855

更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 南大通用gbase培训是南京大学信息管理学院推出的一项培训项目。该培训旨在为学生提供更广阔的就业机会和实践经验,同时提高他们在数据库领域的专业能力。 在南大通用gbase培训中,学生将学习关于gbase数据库的基本知识和技能。他们将了解到gbase在大数据领域中的应用以及其在企业级数据库管理中的重要性。通过课堂学习和实践训练,学生将熟悉gbase的架构、数据处理和查询等方面,掌握gbase数据库的使用方法和管理技巧。 南大通用gbase培训强调实践应用,学生将有机会亲自操作gbase数据库,并参与一些实际项目的开发和管理。这将帮助学生将所学知识应用到实际工作中,增强他们的实践能力和团队合作能力。 此外,南大通用gbase培训还为学生提供了与企业合作的机会。他们将有机会参观和交流一些知名企业的数据库管理团队,了解他们在数据库方面的需求和挑战。这将为学生日后的职业发展奠定基础,提高他们在数据库领域的竞争能力。 综上所述,南大通用gbase培训为学生提供了学习和实践gbase数据库的机会。通过这个培训项目,学生可以提高他们在数据库领域的专业能力,并增加就业机会。这是一个对于想要从事数据库管理和开发工作的学生来说非常有价值的培训项目。 ### 回答2: 南大通用gbase培训是指南京大学与浪潮集团共同合作开展的一项培训计划,旨在培养学员掌握使用gbase数据库技术的能力。gbase数据库是由浪潮集团自主研发的一种高性能、高可用的关系型数据库管理系统。 这项培训计划主要面向计算机相关专业的学生和从业人员,通过系统的学习和实践,使学员全面了解gbase数据库技术的原理和应用。培训内容包括数据库基本概念、数据模型设计、SQL语言基础、数据库管理、数据备份与恢复等方面的知识。学员还将进行实际案例分析和实验操作,提升在实际工作中使用gbase数据库的能力。 南大通用gbase培训具有以下几个特点:一是培训内容丰富全面,既有理论知识的讲解,也有实际案例分析和实验操作,使学员既能理解数据库基本原理,又能掌握实际应用技能。二是培训由南京大学计算机学院的教授和浪潮集团的专业工程师共同组成的师资团队进行授课,确保培训质量和专业性。三是培训期间还提供社交交流和团队合作的机会,促进学员之间的互动和合作,增强学习效果。 通过参加南大通用gbase培训,学员可以获得国内领先的数据库技术培训,提升在数据库领域的竞争力和求职竞争力。同时,这项培训也有助于加深学员对数据库技术的理解,提高其在实际工作中的应用能力,为个人职业发展打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值