更多相关内容可查看
达梦数据库(DM Database)是一款国产数据库,近年来逐渐受到关注。它兼容 Oracle 数据库,但与 MySQL 和 Oracle 在 SQL 语法和功能实现上存在一些差异。
一、达梦数据库下载
官网下载地址:https://www.dameng.com/DM8.html
CPU选X86,操作系统选win64
二、达梦数据库安装
解压并打开光盘映像文件,双击setup.exe
选择语言与时区
无脑下一步即可
这里key可以不选
这里可以按需选择
选择安装路径(必须为空)
三、创建数据库
找到tool路径下的dbca,第一次安装也可以直接初始化
初始化
—
创建数据库实例
这里是创建一个放数据的目录
这里的控制文件/数据文件/日志文件/初始化文件都会有对应的路径
这里可以按需配置一些信息
这里是用户名跟密码
这里两项可以勾选也可不勾选(按需选择)
四、达梦数据库的客户端使用
找到tool文件下的manager,即可使用,如果之前用过navicat,或者别的,其实都差不多,目录结构可看官方文档,这里不做阐述
五、达梦数据库的基本语法
1. 数据库对象的创建与管理
创建数据库
CREATE DATABASE my_database;
创建表
CREATE TABLE employees (
employee_id INT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
hire_date DATE,
salary DECIMAL(10, 2)
);
修改表结构
-- 添加新列
ALTER TABLE employees ADD department VARCHAR(50);
-- 修改列的数据类型
ALTER TABLE employees MODIFY salary DECIMAL(12, 2);
删除表
DROP TABLE employees;
2. 数据操作
插入数据
INSERT INTO employees (employee_id, first_name, last_name, hire_date, salary)
VALUES (1, 'John', 'Doe', '2024-01-15', 50000.00);
查询数据
查询数据使用 SELECT
语句。达梦数据库支持多种查询方式,包括简单查询、条件查询和连接查询:
-- 查询所有数据
SELECT * FROM employees;
-- 条件查询
SELECT * FROM employees WHERE salary > 40000;
-- 连接查询
SELECT e.first_name, e.last_name, d.department_name
FROM employees e
JOIN departments d ON e.department_id = d.department_id;
更新数据
UPDATE employees
SET salary = salary * 1.05
WHERE hire_date < '2023-01-01';
删除数据
DELETE FROM employees WHERE employee_id = 1;
六、达梦数据库的高级语法
1. 视图与索引
创建视图
视图是一个虚拟表,它基于 SQL 查询的结果集。在达梦数据库中,可以通过以下语法创建视图:
CREATE VIEW high_salary_employees AS
SELECT first_name, last_name, salary
FROM employees
WHERE salary > 50000;
使用视图
查询视图数据的方式与查询表数据相同:
SELECT * FROM high_salary_employees;
创建索引
索引可以提高查询性能。在达梦数据库中,可以通过以下语法创建索引:
CREATE INDEX idx_salary ON employees (salary);
2. 存储过程与触发器
创建存储过程
存储过程是一组 SQL 语句的集合,可以重复使用。以下是一个存储过程的示例:
CREATE PROCEDURE increase_salary(IN percentage DECIMAL(5, 2))
BEGIN
UPDATE employees
SET salary = salary * (1 + percentage / 100);
END;
调用存储过程
调用存储过程时,需要指定输入参数:
CALL increase_salary(10);
创建触发器
触发器是在表的某些事件(如插入、更新、删除)发生时自动执行的存储过程。以下是一个触发器的示例:
CREATE TRIGGER salary_update_trigger
AFTER UPDATE ON employees
FOR EACH ROW
BEGIN
IF NEW.salary > OLD.salary THEN
INSERT INTO salary_audit (employee_id, old_salary, new_salary, update_date)
VALUES (NEW.employee_id, OLD.salary, NEW.salary, SYSDATE);
END IF;
END;
3. 数据库事务与锁
事务管理
达梦数据库支持事务的开始、提交和回滚。以下是事务的基本操作:
-- 开始事务
START TRANSACTION;
-- 执行多个 SQL 语句
UPDATE employees SET salary = salary + 1000 WHERE employee_id = 1;
-- 提交事务
COMMIT;
-- 回滚事务
ROLLBACK;
锁管理
达梦数据库提供了多种锁机制,包括行级锁和表级锁。锁的使用可以通过 SQL 语句设置:
-- 行级锁
SELECT * FROM employees WHERE employee_id = 1 FOR UPDATE;
-- 表级锁
LOCK TABLE employees IN EXCLUSIVE MODE;
七、与其他数据库的比较
1. 达梦与 MySQL
数据库对象创建
- 达梦数据库:支持
CREATE DATABASE
和CREATE TABLE
,语法类似于 Oracle。- MySQL:也支持
CREATE DATABASE
和CREATE TABLE
,但在数据类型和默认值上可能有差异。数据操作
- 达梦数据库:SQL 语法与 Oracle 更为接近,例如支持
TO_DATE
函数来处理日期。- MySQL:使用
STR_TO_DATE
函数来处理日期,函数名称和语法与达梦有所不同。索引与视图
- 达梦数据库:支持视图和索引的创建和管理,语法与 Oracle 相似。
- MySQL:支持视图和索引,语法上也有些许差别。例如,MySQL 不支持索引的
CREATE INDEX
语法中的某些选项。
2. 达梦与 Oracle
数据库对象创建
- 达梦数据库:与 Oracle 非常相似,包括数据类型和约束的设置。
- Oracle:支持更多的数据类型和复杂的约束设置。
存储过程与触发器
- 达梦数据库:存储过程和触发器的创建语法与 Oracle 基本一致。
- Oracle:提供了更多的 PL/SQL 功能和优化选项,例如复杂的异常处理和游标操作。
事务管理
- 达梦数据库:支持标准的事务控制语句,如
START TRANSACTION
和COMMIT
。- Oracle:使用
BEGIN
和END
来定义事务块,但语法上与达梦数据库相似。
3. 达梦与 SQL Server
数据库对象创建
- 达梦数据库:支持 SQL 标准的
CREATE DATABASE
和CREATE TABLE
。- SQL Server:使用
CREATE DATABASE
和CREATE TABLE
,但数据类型和默认值的定义有所不同。存储过程与触发器
- 达梦数据库:创建存储过程和触发器的语法类似于 Oracle。
- SQL Server:使用 T-SQL 进行存储过程和触发器的创建,语法上有明显的差异。
事务管理
- 达梦数据库:使用标准的 SQL 事务控制语句。
- SQL Server:支持
BEGIN TRANSACTION
和COMMIT
,但在异常处理和锁定策略上有其特定的实现。
八、优势体现
1. 性能
- 高性能查询处理:达梦数据库通过优化的查询处理器和执行计划算法,能够高效地处理大规模的数据查询。它支持各种索引机制,如B-Tree索引、位图索引等,有助于提高查询性能。
- 支持并行处理:达梦数据库支持并行计算,可以在多核处理器上同时执行多个任务,从而加快数据处理速度。
- 数据缓存和内存管理:达梦数据库通过有效的缓存机制和内存管理来提高系统的响应速度和处理能力。例如,它会缓存热点数据,以减少磁盘I/O操作。
- 事务处理能力:达梦数据库支持高并发的事务处理,采用了高效的锁机制和日志管理,确保了在高负载下也能保持良好的性能。
2. 安全性
- 用户权限管理:达梦数据库提供了细粒度的权限管理功能,可以对不同的用户和角色设置不同的访问权限,从而控制数据的访问和操作。
- 数据加密:支持数据在存储和传输过程中的加密,保护数据不被非法访问。包括列级加密和透明数据加密等。
- 审计功能:达梦数据库具备审计功能,可以记录用户的操作行为和系统事件,帮助追踪和审计数据访问和修改记录。
- 防御机制:包括防止SQL注入、恶意攻击等安全防护措施,增加数据库系统的安全性。
3. 兼容性
- 与标准SQL兼容:达梦数据库支持标准SQL语法,确保与许多现有的SQL应用程序和工具兼容。
- 跨平台支持:达梦数据库可以运行在多种操作系统上,包括Windows和Linux。这使得它在不同的环境中都能进行部署和操作。
- 兼容其他数据库:在迁移或集成过程中,达梦数据库提供了工具和功能以支持与其他数据库(如Oracle、MySQL等)的数据迁移和兼容性处理。
- 支持多种编程接口:达梦数据库支持多种编程语言和接口,如JDBC、ODBC等,方便与各种应用程序进行集成。
九、总结
也是国内更推行的国产数据库流行趋势,是国内自主研发的一款RDBMS,其实本质跟oracle使用起来不会有太多的差异,对oracle有了解的自然用起来也会得心应手