一、前言
在《国产数据库技术》课程的学习中,达梦数据库(DM)作为典型的国产关系型数据库代表,凭借其高兼容性、高安全性的特性,成为国产数据库领域的核心研究对象。本次学习围绕达梦数据库的安装配置与SQL程序设计展开,通过实操掌握了数据库搭建、数据查询及程序开发的核心技能,深刻体会到国产数据库在企业级应用中的独特优势与实用价值。
二、达梦数据库核心实操环节
(一)环境搭建:安装与实例配置
达梦数据库的安装流程清晰,在Linux(如银河麒麟)系统下可通过rpm包快速部署。
1. 安装步骤:执行 rpm -ivh dm8_2025xxxx.rpm 完成安装,通过 dminit 命令初始化实例,指定数据存放路径、端口号等参数。
2. 实例启动:使用 systemctl start DmServiceDMSERVER 启动服务,通过 disql 工具连接数据库(命令: disql SYSDBA/SYSDBA@localhost:5236 )。
配图建议:插入 disql 连接成功的界面截图,标注用户名、端口号及登录成功提示信息。
(二)数据操作:SQL查询与函数应用
掌握基础SQL语法是操作达梦数据库的关键,结合内置函数能高效实现数据处理需求。
1. 基础查询:以 employee 表为例,查询部门编号为10的员工姓名与薪资,SQL语句如下:
sql
SELECT employee_name, salary FROM employee WHERE dept_id = 10;
2. 函数用法:使用 SUM() 函数统计部门总薪资, ROUND() 函数保留两位小数:
sql
SELECT dept_id, ROUND(SUM(salary), 2) AS total_salary FROM employee GROUP BY dept_id;
配图建议:插入SQL语句执行结果截图,标注查询字段、函数计算结果及格式化效果。
(三)进阶技能:DMSQL程序设计思路
DMSQL程序设计需遵循“定义变量—逻辑处理—结果输出”的步骤,以查询员工信息为例:
1. 定义变量:利用 %TYPE 定义与表列类型一致的变量,如 v_name employee.employee_name%TYPE; 。
2. 数据查询:通过 SELECT...INTO 语句将查询结果赋值给变量。
3. 结果输出:使用 PRINT 语句输出变量值,完成程序逻辑。
配图建议:插入完整DMSQL程序代码截图,标注变量定义、查询语句及输出指令的关键部分。
三、学习难点与解决技巧
1. 实例配置参数混淆:初期易因端口冲突、路径错误导致实例启动失败,通过查看日志文件(路径: /dmdata/log )定位问题,核对初始化参数后重新配置即可解决。
2. DMSQL语法报错:程序编写时常出现变量类型不匹配、循环语法错误,通过拆解代码分步调试,结合达梦官方文档核对语法规则,逐步排查解决。
四、总结
本次达梦数据库学习,从环境搭建到程序设计,完整覆盖了国产数据库的核心应用场景。达梦数据库不仅兼容Oracle等主流数据库的语法特性,还针对国产操作系统做了深度优化,展现出强劲的适配能力。未来将继续深入学习备份还原、权限管理等进阶内容,夯实国产数据库技术基础,为国产化软件应用落地贡献自己的力量。
达梦数据库常用 SQL 语句速查表
以下为达梦数据库(DM)的常用 SQL 语句分类整理,采用表格形式呈现,便于快速查阅。
数据库管理
| 类别 |
SQL 语句 |
示例 |
| 创建数据库 |
CREATE DATABASE |
CREATE DATABASE testdb; |
| 删除数据库 |
DROP DATABASE |
DROP DATABASE testdb; |
| 切换数据库 |
USE |
USE testdb; |
| 查看数据库列表 |
SELECT * FROM V$DATABASE; |
- |
表管理
| 类别 |
SQL 语句 |
示例 |
| 创建表 |
CREATE TABLE |
CREATE TABLE t1 (id INT, name VARCHAR(20)); |
| 删除表 |
DROP TABLE |
DROP TABLE t1; |
| 修改表结构 |
ALTER TABLE |
ALTER TABLE t1 ADD COLUMN age INT; |
| 查看表结构 |
DESC 或 SELECT * FROM USER_TAB_COLUMNS |
DESC t1; |
| 重命名表 |
RENAME TABLE |
RENAME TABLE t1 TO t2; |
数据操作
| 类别 |
SQL 语句 |
示例 |
| 插入数据 |
INSERT INTO |
INSERT INTO t1 VALUES (1, '张三'); |
| 更新数据 |
UPDATE |
UPDATE t1 SET name='李四' WHERE id=1; |
| 删除数据 |
DELETE FROM |
DELETE FROM t1 WHERE id=1; |
| 查询数据 |
SELECT |
SELECT * FROM t1; |
索引管理
| 类别 |
SQL 语句 |
示例 |
| 创建索引 |
CREATE INDEX |
CREATE INDEX idx_name ON t1(name); |
| 删除索引 |
DROP INDEX |
DROP INDEX idx_name; |
| 查看索引 |
SELECT * FROM USER_INDEXES |
- |
用户与权限
| 类别 |
SQL 语句 |
示例 |
| 创建用户 |
CREATE USER |
CREATE USER user1 IDENTIFIED BY '123456'; |
| 删除用户 |
DROP USER |
DROP USER user1; |
| 授权 |
GRANT |
GRANT SELECT ON t1 TO user1; |
| 撤销权限 |
REVOKE |
REVOKE SELECT ON t1 FROM user1; |
事务控制
| 类别 |
SQL 语句 |
示例 |
| 开启事务 |
BEGIN 或 START TRANSACTION |
BEGIN; |
| 提交事务 |
COMMIT |
COMMIT; |
| 回滚事务 |
ROLLBACK |
ROLLBACK; |
备份与恢复
| 类别 |
SQL 语句 |
示例 |
| 导出数据 |
EXP(命令行工具) |
EXP USERID=sysdba/SYSDBA FILE=backup.dmp |
| 导入数据 |
IMP(命令行工具) |
IMP USERID=sysdba/SYSDBA FILE=backup.dmp |
注意事项
- 达梦数据库语法与 Oracle 高度相似,部分语句可能略有差异。
- 权限管理需谨慎操作,避免误删重要数据。
- 事务操作需确保业务逻辑完整性。
如需更详细的语法说明,可参考达梦官方文档或使用 HELP 命令查询。
所有评论(0)