• 达梦数据库相关SQL及适配Mysql配置总结


    🍓 简介:java系列技术分享(👉持续更新中…🔥)
    🍓 初衷:一起学习、一起进步、坚持不懈
    🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏
    🍓 希望这篇文章对你有所帮助,欢迎点赞 👍 收藏 ⭐留言 📝

    🍓 更多文章请点击
    在这里插入图片描述在这里插入图片描述

    但是

    一、什么是达梦数据库?

    达梦官网:https://www.dameng.com/
    达梦技术文档:https://eco.dameng.com/document/dm/zh-cn/pm/logical-structure.html

    达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称 DM
    达梦数据库是一款中国自主研发的专业数据库系统,是适用于企业级应用的高可靠性、高性能、高可扩展性的数据库管理系统。在国内先后应用于金融、电信、政府、医疗、制造等领域,并在海外市场也逐渐得到了认可和应用。

    DM的Schema类似MYSQL中的Database概念

    DM数据库的安装方式网上有很多(Windows和Linux),这里只对使用情况进行记录

    二、数据库连接

    2.1 windows中登录

    windows中安装可查看该文档:安装文档来源于网络

    1. 首先查看服务是否启动

      在这里插入图片描述
      或者从开始位置查找
      在这里插入图片描述

    2. 查看服务是否正常启动`

    在这里插入图片描述
    3. 通过DM连接自带的管理工具进行使用

    在这里插入图片描述在这里插入图片描述

    2.2 Linux中登录

    首先找到达梦安装的bin目录下

    需要注意:—通过disql执行该命令后,回车不会停止输入,需要输入/符号来终止

    用户名密码等信息自行修改

     ./disql SYSDBA/SYSDBA@localhost:5236
    

    在这里插入图片描述

    2.3 使用DataGrip进行连接

    1. 因为DataGrip中没有达梦的驱动首先要下载驱动

      驱动下载地址:https://eco.dameng.com/download/

    在这里插入图片描述在这里插入图片描述

    将驱动移动到安装目录,或者不会删除的目录中

    在DataGrip中添加驱动
    在这里插入图片描述

    在这里插入图片描述在这里插入图片描述
    配置模板

    jdbc:dm://{host::localhost}?[:{port::5236}][/DataBaseName?schema={database}]
    

    在这里插入图片描述

    进行保存,然后选择该驱动进行连接

    在这里插入图片描述

    成功

    在这里插入图片描述

    三、兼容Mysql

    3.1 windows版本兼容

    在这里插入图片描述

    选中数据库实例,找到COMPATIBLE_MODE属性:
    对于该属性的说明:是否兼容其他数据库模式。0:不兼容,1:兼容SQL92标准,2:兼容ORACLE,3:兼容MS SQL SERVER,4:兼容MYSQL;我们将其设置成4,变成兼容MySQL模式,保存后重启实例。

    在这里插入图片描述
    重启实例

    在这里插入图片描述
    在这里插入图片描述

    3.2 linux版本兼容

    达梦DM8数据库可以通过修改实例的配置文件dm.ini中的参数COMPATIBLE_MODE用来兼容不同的数据库,此参数为静态参数,修改后只有重启数据库服务才能生效。

    通常情况下,dm.ini在data目录中

    在这里插入图片描述在这里插入图片描述
    将COMPATIBLE_MODE参数修改为4

    对于该属性的说明:是否兼容其他数据库模式。0:不兼容,1:兼容SQL92标准,2:兼容ORACLE,3:兼容MS SQL SERVER,4:兼容MYSQL;我们将其设置成4,变成兼容MySQL模式,保存后重启实例。
    在这里插入图片描述

    1. 重启dm服务
      在bin目录下
    ./DmServiceDMSERVER restart
    
    1. 查询COMPATIBLE_MODE状态—4为兼容Mysql
    SELECT para_name,para_type,para_value FROM V$DM_INI WHERE PARA_NAME ='COMPATIBLE_MODE';
    

    在这里插入图片描述

    四、SQL使用

    DM的Schema类似MYSQL中的Database概念

    需要注意:—通过disql执行该命令后,回车不会停止输入,需要输入/符号来终止

    模式相关

    1. 查询所有模式

    select distinct owner from dba_objects;
    

    2. 创建模式

    create schema TEST AUTHORIZATION SYSDBA;
    

    3. 删除模式

    drop schema TEST ;
    

    4. 指定模式

    SET SCHEMA TEST;
    

    表相关

    1. 查询当前用户所有表

    select table_name,tablespace_name from user_tables;
    

    2. 创建表

    -- 创建employee表
    CREATE TABLE employee
    (
      employee_id INTEGER,
      employee_name VARCHAR2(20) NOT NULL,
      hire_date DATE,
      salary INTEGER,
      department_id INTEGER NOT NULL
    );
    -- 使用 CREATE TABLE 语句创建 department 表
    CREATE TABLE department
    (
      department_id INTEGER PRIMARY KEY,
      department_name VARCHAR(30) NOT NULL
    );
    -- 非空约束
    ALTER TABLE employee MODIFY( hire_date not null);
    -- 主键约束
    ALTER TABLE employee ADD constraint pk_empid PRIMARY KEY(employee_id);
    -- 外键约束
    ALTER TABLE employee ADD constraint fk_dept FOREIGN KEY (department_id) REFERENCES department (department_id);
    
    

    3. 重命名表名

    alter table tests rename to test_rename;
    

    4. 增加表注释

    comment on table test_rename is 'AAAAAAA';
    

    5. 查看表主键外键

    SELECT table_name, constraint_name, constraint_type FROM all_constraints WHERE owner='DM' AND table_name='EMPLOYEE';
    

    6. 表字段增加

    ALTER TABLE "DM"."EMPLOYEE" add "IS_REPEAT" VARCHAR(255);
    COMMENT ON COLUMN "DM"."EMPLOYEE"."IS_REPEAT" IS '是否重复,1、是,0、否';
    
    

    7. 表字段删除

    ALTER TABLE "DM"."EMPLOYEE" DROP COLUMN IS_REPEAT;
    

    8. 查询表注释

    select comments from user_tab_comments where table_name = 'table1';
    

    9. 查询列注释

    select * from user_col_comments where table_name = 'table1';
    

    10 . 增加列注释

    comment on column test_rename.id is 'Primary'; 
    

    其他

    1. 查询当前用户

    select user;
    

    2. 查询数据库版本

    SELECT * FROM V$VERSION;
    

    3. 查看达梦数据库当前状态

    select status$ from v$instance;
    

    4. 查询数据库有哪些用户

    select username from dba_users;
    

    五、SpringBoot集成

    5.1 添加依赖

    <dependency>
        <groupId>com.damenggroupId>
        <artifactId>DmJdbcDriver18artifactId>
        <version>8.1.2.192version>
    dependency>
    

    5.2 yml配置

    spring:
      datasource:
        # DM
        username: ***
        password: ***
        driver-class-name: dm.jdbc.driver.DmDriver
        url: jdbc:dm://127.0.0.1:5236?schema=**
    

    其他和与Mysql使用一样

    六、语法适配

    5.1 单双引号(重点)

    达梦数据库对单双引号有着严格的规定,在执行SQL语句的时候,字符串常量应使用单引号括起,关键字、对象名、字段名、别名等则使用双引号括起。而MySQL中则没有严格的规定,在适配过程中MySQL SQL语句中的单双引号严格按照DM的规定修改。

    在这里插入图片描述在这里插入图片描述

  • 相关阅读:
    一看即懂的JavaScript位运算
    Linux inotify 文件监控
    P3613 【深基15.例2】寄包柜题解
    海思3559万能平台搭建:YUV422的踩坑记录
    css为盒子设置滚动条&隐藏滚动条
    关于winform的chart--x轴时间格式的显示,以及x轴放大缩小的例子
    Vue3 学习
    socket编程详解(二)——客户端
    淘宝/天猫、拼多多、1688产品详情页API、SKU信息获取展示
    TI C2000系列TMS320F2837xD开发板(DSP+FPGA)硬件规格参数说明书
  • 原文地址:https://blog.csdn.net/qq_41805567/article/details/139414385