达梦数据库
Last updated on October 16, 2023 am
达梦数据库
***INTRODUCE:***达梦数据是国内领先的数据库产品开发服务商,致力于成为国际顶尖的全栈数据产品及解决方案提供商。公司拥有核心源代码的自主知识产权,并已完成数十项国家级或省部级科研开发项目与奖项。其产品在金融、能源、航空、通信、党政机关等数十个领域得到应用,2019年至2021年公司产品市占率位居中国数据库管理系统市场国内数据库厂商前列。
达梦线上实验室仿真
欢迎来到达梦数据库线上实验室。
如果您是初次接触达梦数据库,我们强烈建议您加入本次线上实验室的试玩旅程。在这里,您将置身于达梦公司自主研发的新一代大型通用关系型数据库 DM8 的仿真环境中,通过 “用户权限”,“操作数据表”,“检索数据”,“创建索引”,“事务特性” 五大板块,初步体验 DM8 的基本特性。同时我们也提供了创建物化视图、存储过程等一系列“SQL 高级特性”供高级玩家探索。
实验环境:
操作系统:CentOS Linux release 7.3.1611 (Core)
达梦数据库实例:DM Database Server 64 V8
检查数据库版本及服务状态
查看数据库运行状态:
1 |
|
运行结果:
查看数据库版本:
1 |
|
运行结果:
创建用户并授权
- 创建用户:
1 |
|
- 授予基本权限:
1 |
|
- 授予用户对指定表的查询权限:
1 |
|
- 查看用户信息:
1 |
|
切换用户
- 切换用户:
1 |
|
- 查看当前登录用户:
1 |
|
创建表并添加约束
- 创建职员表:
1 |
|
- 创建部门表:
1 |
|
- 更新表中字段可以为空:
1 |
|
- 非空约束
1 |
|
- 主键约束
1 |
|
- 外键约束
1 |
|
- 查看表结构
1 |
|
- 查看表的主键外键
1 |
|
验证数据表的CRUD功能
- 插入数据
1 |
|
- 修改数据
1 |
|
- 提交事务
1 |
|
- 修改数据
1 |
|
- 验证更新表记录能力
1 |
|
- 删除数据
1 |
|
- 验证删除表数据能力
1 |
|
批量插入及选择排序
达梦数据库支持各种数据检索功能,本小节首先批量插入数据,然后验证基本的选择排序功能。
- 批量插入数据
1 |
|
创建一个名为 t1
的新表,并向其中批量插入 100,000 条随机数据。
具体地,这个 SQL 语句包含以下几个部分:
CREATE TABLE t1 AS SELECT ...
:创建一个名为t1
的新表,并使用SELECT
语句从dual
表生成数据。rownum AS id
:使用rownum
函数生成一个序号列,并将其命名为id
。trunc(dbms_random.value(0, 100)) AS random_id
:使用dbms_random.value
函数生成一个在 0 和 100 之间的随机数,并将其取整后命名为random_id
。dbms_random.string('x', 20) AS random_string
:使用dbms_random.string
函数生成一个长度为 20 的随机字符串,并将其命名为random_string
。FROM dual connect BY level <= 100000
:使用dual
表和connect by level
语句生成 100,000 条数据。
在 FROM
子句中,使用 DUAL
表生成单行数据,然后使用 CONNECT BY
语法生成 100,000 行数据。在 CONNECT BY
子句中,使用 LEVEL
函数生成一个序号列,并使用 LEVEL
函数的值来控制生成的行数。
在 SELECT
子句中,使用 dbms_random
包中的函数生成随机数和随机字符串,并使用 trunc
函数对随机数取整。最后,将生成的数据插入到新表 t1
中。
需要注意的是,在达梦数据库中,语法和函数可能与 Oracle 数据库不同,请根据具体情况选择合适的语法和函数。
- 查看插入的数据
使用count(*) 聚集函数统计t1表中的总数据记录
1 |
|
- 排序数据
1 |
|
验证分组查询
- 批量插入数据
1 |
|
- 分组查询
1 |
|
创建视图
达梦数据库支持标准的视图功能,本小节将验证其对标准视图的支持能力。
- 定义视图
需要查询薪资大于 10000 且入职时间大于等于 2013 年 8 月 1 日 员工的部门名称、姓名、薪资、入职时间。
1 |
|
视图的作用:
它的作用是从 employee 和 department 两个表中筛选出满足一定条件的记录,并将它们合并成一个结果集。具体来说,这个视图包含了四个字段,分别是:
- department_name:部门名称,来自 department 表;
- employee_name:员工姓名,来自 employee 表;
- salary:员工薪水,来自 employee 表;
- hire_date:员工入职日期,来自 employee 表。
通过这个视图,我们就可以方便地查询所有符合以上三个条件的员工的信息,包括他们所在的部门、姓名、薪水和入职日期。视图可以看做是一个虚拟的表格,它不存储任何数据,而是通过查询操作来获取数据的。因此,我们可以像查询普通表格一样来查询这个视图,而不用关心它是如何生成的。
- 通过视图简化查询符合多个条件的数据
1 |
|
创建索引
验证达梦数据库如何创建及删除索引,并通过索引提升查询效率。
创建普通索引
1 |
|
事务
以下是常用的达梦数据库事务相关语句:
1.开始事务:START TRANSACTION
或者 BEGIN TRANSACTION
1 |
|
2.回滚事务:ROLLBACK
1 |
|
3.提交事务:COMMIT
1 |
|
4.设置事务隔离级别:SET TRANSACTION ISOLATION LEVEL
1 |
|
5.保存点:SAVEPOINT
和 ROLLBACK TO SAVEPOINT
1 |
|
6.设置事务的名称:SAVEPOINT
1 |
|
以上是常用的达梦数据库事务相关语句,您可以根据实际需求选择使用。请注意,在使用事务时,还需要注意锁定和事务隔离级别等问题,以避免出现并发问题和数据不一致的情况。
待补充… …