> 文档中心 > 国产数据库详细篇之ShenTong数据库

国产数据库详细篇之ShenTong数据库


开篇

说到数据库,我们基本都知道mysql、oracle、sqlserver、postgre这四大老牌数据库了;
mysql: 关系型数据库管理系统,有瑞典Mysql AB公司开发,目前属于oracle旗下产品;
sqlserver:Microsoft 公司推出的SQL Server 数据库管理系统
oracle和postgre 是美国开发的

那么问题来了,你知道我们国产的数据库吗?听说过没有?有哪些稍微好一点点的数据库?

可能你听都没听过,别急,本篇带领大家了解下国产系统之ShenTong数据库

下载

官网地址:http://www.shentongdata.com/index.php

在这里插入图片描述
我们选择个通用版本的,在window 10上运行,其他版本的
龙芯、申威都是国产化信创处理器(我们目前先不用,毕竟也没有环境搭建)

注意点:你在下载之前需要先注册下,这个可以随便用一个手机号来注册,不用验证码,还挺方便的;

下载完之后解压会得到一个目录:
在这里插入图片描述

安装

你可以对着这个快速入门说明文档进行安装;
这里有2个特别强调的地方:
1.在安装之前一定要安装jdk1.8,如果不安装会报错;
2.一定要安装在C盘,千万不能切换路径,本人亲自测试过,切换路径会安装不成功

我们就按照它的步骤一步一步完成;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对着操作就可以了,全程没有报错就是安装成功了

安装完成后,记得在windows 服务中将服务开通,主要开通的是两个:
在这里插入图片描述

连接数据库

安装成功后默认创建一个
数据库: OSRDB
用户名:SYSDBA
密码:szoscar55

我们在启动目录下,点击【SQL交互工具】

在这里插入图片描述
输入账号密码后,可以进入了;测试版有效期是90天
在这里插入图片描述

数据库操作

Shentong数据库默认是2003端口;
创建表
我们来简单创建下一个表:testdb
在这里插入图片描述
输入语句:

create table testdb(id integer primary key,name varchar(100))

点击执行后,发现在SYSDBA目录下创建了一张表,并且表名和字段名都是大写的,这个和oracle类似
在这里插入图片描述
我们插入一条数据并且查询看看

insert into testdb (id, name) values (1, '小明')select *  from testdb

插入表、查询表
在这里插入图片描述
是不是发现它和mysql、oracle、postgre语法一样。目前我们只是初步了解了他的界面类型,因为没有深入了解,可能还有点陌生;

删除表
在SYSDBA生成的表数据,直接使用drop table xx删除表

数据迁移

有没有思考过一个问题:如果我正在学习mysql,但是公司突然要国产化,那么原来mysql的数据如何迁移到国产化数据库?

别慌,shenTong数据库提供了很多工具,其中之一就是数据迁移工具,它可以有效地帮助我们进行数据迁移。(这是物理层面上的迁移,还没涉及到代码)

下面演示下如何将mysql的数据库迁移到ShenTong数据库

打开迁移攻工具

在这里插入图片描述

创建项目

项目名称随便写,我这取名叫:mydb,项目路径千万不要变动
点击下一步
在这里插入图片描述
到这一步我们要手动选择下相应的数据库驱动,由于测试是用mysql,所以源数据库都要设置成mysql可连接的,这样他才能识别到
在这里插入图片描述
如果源数据不存在会报错:
在这里插入图片描述

点击下一步
在这里插入图片描述
下一步
在这里插入图片描述
下一步
在这里插入图片描述
到这一步,我们要打勾,选择需要迁移的表,如果所有都需要,就在最上面打勾

在这里插入图片描述
最后点击【完成】

查看迁移数据

我们回到SQL交互工具上,点击刷新,我们发现已经有了jango的数据库了。而且所有的字段都是大写的
在这里插入图片描述
我们发现jango数据库(包括下面的表)是在总目录下,而不是在SYSDBA下(手动命令创建的时候是在SYSDBA下);原因应该理解吧:我们的源数据库是一个整体,包含了数据库名以及数据库下的所有表字段,所以它不可能再作为某个数据库的下一级了。只能存在根目录下的下一级;

我们来查一下数据,以auth_user表为例
选择【JANGO】->【在新窗口中编写对象脚本】->【创建】

输入以下命令:

select * from auth_user

发现居然报错了,提示表不存在;你觉得你没输错对吧,在jango数据库进去应该能查得到;
在这里插入图片描述
确实,你没有任何语法错误,但是就是找不到表,这是因为Shentong和其他数据库不一样的地方。

迁移后的数据如果你要查询某个表数据,你要精确的指定它是哪个库哪个表

正确的sql语句是:

select * from jango.auth_user

在这里插入图片描述
增删改查也是一样,要加上数据库名
在这里插入图片描述
如果我们要删除整个数据呢,怎么处理?

我们测试发现,无论是从最上级的OSRDB处还是JANGO处用命令都无法进行删除,会提示【错误描述:ERROR, 不能在正常模式下删除数据库】

那么有没有好的方法进行全部删除呢?有,Shentong数据库提供了一个数据库工作平台,用这个工作平台可以查看操作

在这里插入图片描述

还是同样的那些配置,进入后,发现它跟eclipse长得很像
在这里插入图片描述
这个工具,你可以查看数据库视图,以及可以删除整个数据库;实用性还是蛮方便的;

下一篇我们讲下springboot + shentong数据库的用法