• 猿创征文|我这样看国产【达梦】数据库的


    这几天正好琢磨国产数据库呢,CSDN又有对应的活动,我简述一下达梦数据库的使用,很方便,给了在线环境,不需要自己进行搭建测试,如果为了公司有去国外技术开发需求可以使用这个,用起来也不复杂,并且国内排名也比较高,很多领导都会选择这个数据库。对于程序员来说,掌握国产的第一名的数据库产品使用方法还是很有必要的。毕竟我们是靠技术吃饭的,多一门技能还是更好的。这几年很多部门都在将国外数据库转成国内数据库,这也是个很大的市场呢。

    下面我简述了达梦数据库的常用SQL语句的使用方法,希望能对大家创造一些价值。


    达梦官网:武汉达梦数据库有限公司

    目录

    下载中心

    注册完成

    在线测试

    查看达梦数据库运行状态

    查看达梦数据库版本

    创建用户

    权限给予

    查看用户信息

    切换到DM用户

    建表语句

    约束添加

    查看表结构

    查看外键

    插入语句

    修改语句

    新旧数据查询

    删除语句

    批量添加数据-方便测试

    排序数据

    分组查询

    创建视图

    创建索引

    删除索引

    序列SEQUENCE

    使用总结


    下载中心

    下载中心-武汉达梦数据库有限公司

    这里提供了在线测试,但是需要注册,注册使用手机号注册即可。

    注册完成

    注册完成后有个个人后台,后台里能看到各种教程。

    在线测试

    试玩 | 达梦在线服务平台

    这里提供了19个提示步骤,就是语句的使用方法。

    查看达梦数据库运行状态

    查看数据库运行状态,使用如下语句:

    SELECT status$ as 状态 FROM v$instance;
    

    查看达梦数据库版本

    查看版本信息,使用如下语句:

    SELECT banner as 版本信息 FROM v$version;
    

     

    创建用户

    使用的还是Create语句,与SQL没区别。

    CREATE USER DM IDENTIFIED BY "dameng123";
    

    权限给予

    这里权限给予还是挺麻烦的,幸好直接给语句了,咱们能直接用。

    1. GRANT RESOURCE TO DM;
    2. GRANT SELECT ON dmhr.employee TO DM;
    3. GRANT SELECT ON dmhr.department TO DM;

    查看用户信息

    1. SELECT username,account_status,created FROM dba_users
    2. WHERE username='DM';


    切换到DM用户

    切换用户,使用的是conn命令,也就是我们经常使用的链接数据库的conn变量。

    查看登录用户:

    SELECT user FROM DUAL;
    

    建表语句

    1. CREATE TABLE employee
    2. (
    3. employee_id INTEGER,
    4. employee_name VARCHAR2(20) NOT NULL,
    5. hire_date DATE,
    6. salary INTEGER,
    7. department_id INTEGER NOT NULL
    8. );
    1. CREATE TABLE department
    2. (
    3. department_id INTEGER PRIMARY KEY,
    4. department_name VARCHAR(30) NOT NULL
    5. );

    在建表语句中可以看出,还是稍微与平时使用的SQL有一些区别,例如,在创建int类型数据的时候并没有长度约束。

    约束添加

    非空

      ALTER TABLE employee MODIFY( hire_date not null);
    

    主键

    1. ALTER TABLE employee ADD constraint pk_empid
    2. PRIMARY KEY(employee_id);

    外键

    1. ALTER TABLE employee ADD constraint fk_dept FOREIGN KEY
    2. (department_id) REFERENCES department (department_id);

    查看表结构

    DESC employee; 

    查看外键

    其实,外键这里无所谓,咱们现在开发的过程中几乎没有创建外键约束的。

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

    插入语句

    这里还是使用insert语句,没变化,但是与Oracle一样,做完DML语句之后需要进行commit。

    1. INSERT INTO department VALUES(666, '数据库产品中心');
    2. INSERT INTO employee VALUES
    3. (9999, '王达梦','2022-05-30 00:00:00', 30000, 666);
    4. commit;

    修改语句

    依然使用updata,需要commit才算操作。

    1. UPDATE employee SET salary='35000' WHERE employee_id=9999;
    2. commit;

    新旧数据查询

    SELECT salary,employee_id FROM employee;
    

    删除语句

    1. DELETE FROM department WHERE department_id=666;
    2. commit;

    批量添加数据-方便测试

    1. CREATE TABLE t1 AS
    2. SELECT rownum AS id,
    3. trunc(dbms_random.value(0, 100)) AS random_id,
    4. dbms_random.string('x', 20) AS random_string
    5. FROM dual
    6. connect BY level <= 100000;

    可以看到执行10万次才消耗468毫秒。 

    排序数据

    使用的是order by,正序:ASC,倒序:DESC。

    SELECT * FROM t1 where rownum<5 ORDER BY id DESC;
    

    分组查询

    GROUP BY、HAVING 语句实现分组,这里需要插入一些数据进行测试。

    1. SELECT dept.department_name as 部门, count(*) as 人数
    2. FROM employee emp, department dept
    3. where emp.department_id=dept.department_id
    4. GROUP BY dept.department_name
    5. HAVING count(*) > 20;

    创建视图

    这里才Create View使用方法有一定的区别

    1. CREATE OR replace VIEW v1 AS
    2. SELECT dept.department_name, emp.employee_name,
    3. emp.salary,emp.hire_date
    4. FROM employee emp, department dept
    5. WHERE salary > 10000
    6. AND hire_date >= '2022-08-01'
    7. AND emp.department_id = dept.department_id;

    创建完成v1的视图,可以根据常规的sql语句进行查询即可。

    创建索引

    CREATE INDEX ind_emp_salary ON employee(salary);
    

    删除索引

    DROP INDEX IND_EMP_SALARY;
    

    序列SEQUENCE

    这里也是仿照Oracle使用了SEQUENCE。

    1. CREATE SEQUENCE SEQ1
    2. START WITH 1 INCREMENT BY 1 MAXVALUE 10000
    3. CACHE 5 NOCYCLE;

    可以通过

    SELECT seq1.nextval() FROM dual;
    

    查看序列的当前数字。

    使用总结

    在线测试完成后进行下载安装。安装步骤还是很简单的。

    安装步骤和人大金仓差不多。反正国内的数据库都是类似的安装步骤。

    达梦有自己的DM工具,由于是全中文的,所以可以直接学会使用方法。

    将我们自己的MySQL数据库转移到DM上即可正常使用了。

    国产数据库里面达梦数据库排名第一。所以企业选择数据库的时候就会默认选择排名较高的数据库产品。所以搞明白达梦数据库对于国内程序员还是很有必要的。

  • 相关阅读:
    帆软报表之填报报表
    网易笔试8.20
    DoTween简单的API,以及一些回调
    day04-JavaScript01
    【LeetCode】15. 三数之和
    《算法竞赛进阶指南》,USACO2007 牛站
    数据库实验:SQL的数据视图
    为什么单线程的Redis如此的快(Why is single-threaded Redis so fast)
    java基础题——二维数组的基本应用2
    一个jsqlparse+git做的小工具帮我节省时间摸鱼
  • 原文地址:https://blog.csdn.net/feng8403000/article/details/127118677