news 2026/4/9 22:29:24

达梦(DM8) DDL DML DQL DCL 大全

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
达梦(DM8) DDL DML DQL DCL 大全

一、DDL(数据定义语言)

1. 数据库操作

-- 创建数据库 CREATE DATABASE 数据库名 DATAFILE '文件路径' SIZE 大小; -- 修改数据库 ALTER DATABASE MOUNT; ALTER DATABASE OPEN; ALTER DATABASE ADD LOGFILE '文件路径' SIZE 大小; -- 删除数据库 DROP DATABASE;

2. 表操作

-- 创建表 CREATE TABLE 表名 ( 列名1 数据类型 [约束条件], 列名2 数据类型 [约束条件], ... [表级约束] ); -- 创建表示例 CREATE TABLE employee ( emp_id INT PRIMARY KEY, emp_name VARCHAR(50) NOT NULL, dept_id INT, salary DECIMAL(10,2), hire_date DATE DEFAULT SYSDATE, CONSTRAINT fk_dept FOREIGN KEY (dept_id) REFERENCES department(dept_id) ); -- 修改表结构 ALTER TABLE 表名 ADD 列名 数据类型; -- 添加列 ALTER TABLE 表名 DROP COLUMN 列名; -- 删除列 ALTER TABLE 表名 MODIFY 列名 新数据类型; -- 修改列类型 ALTER TABLE 表名 RENAME COLUMN 旧列名 TO 新列名; -- 重命名列 -- 重命名表 ALTER TABLE 旧表名 RENAME TO 新表名; RENAME TABLE 旧表名 TO 新表名; -- 删除表 DROP TABLE 表名 [CASCADE CONSTRAINTS]; -- CASCADE 删除关联约束 -- 清空表 TRUNCATE TABLE 表名;

3. 索引操作

-- 创建索引 CREATE INDEX 索引名 ON 表名(列名); -- 普通索引 CREATE UNIQUE INDEX 索引名 ON 表名(列名); -- 唯一索引 CREATE INDEX 索引名 ON 表名(列名1, 列名2); -- 复合索引 -- 删除索引 DROP INDEX 索引名;

4. 视图操作

-- 创建视图 CREATE VIEW 视图名 AS SELECT语句; -- 创建或替换视图 CREATE OR REPLACE VIEW 视图名 AS SELECT语句; -- 删除视图 DROP VIEW 视图名;

5. 序列操作

-- 创建序列 CREATE SEQUENCE 序列名 START WITH 起始值 INCREMENT BY 步长 MAXVALUE 最大值 MINVALUE 最小值 CYCLE | NOCYCLE CACHE 缓存大小; -- 修改序列 ALTER SEQUENCE 序列名 [修改选项]; -- 删除序列 DROP SEQUENCE 序列名;

二、DML(数据操作语言)

1. INSERT 插入数据

-- 插入完整行 INSERT INTO 表名 VALUES (值1, 值2, ...); -- 插入指定列 INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...); -- 插入查询结果 INSERT INTO 表名 (列1, 列2, ...) SELECT 列1, 列2, ... FROM 源表 WHERE 条件; -- 批量插入 INSERT ALL INTO 表名 VALUES (值1, 值2, ...) INTO 表名 VALUES (值1, 值2, ...) SELECT * FROM DUAL;

2. UPDATE 更新数据

-- 更新所有行 UPDATE 表名 SET 列名 = 新值; -- 条件更新 UPDATE 表名 SET 列1 = 值1, 列2 = 值2, ... WHERE 条件; -- 使用子查询更新 UPDATE 表名 SET 列名 = (SELECT 子查询) WHERE 条件;

3. DELETE 删除数据

-- 删除所有行 DELETE FROM 表名; -- 条件删除 DELETE FROM 表名 WHERE 条件; -- 使用子查询删除 DELETE FROM 表名 WHERE 列名 IN (SELECT 子查询);

4. MERGE 合并数据(达梦特有)

MERGE INTO 目标表 USING 源表 ON (匹配条件) WHEN MATCHED THEN UPDATE SET 列名 = 值 WHEN NOT MATCHED THEN INSERT (列列表) VALUES (值列表);

三、DQL(数据查询语言)

1. 基础查询

-- 查询所有列 SELECT * FROM 表名; -- 查询指定列 SELECT 列1, 列2, ... FROM 表名; -- 使用别名 SELECT 列名 AS 别名 FROM 表名; SELECT 列名 别名 FROM 表名; -- 去重查询 SELECT DISTINCT 列名 FROM 表名;

2. 条件查询

SELECT * FROM 表名 WHERE 条件; -- 比较运算符 =, !=或<>, >, <, >=, <= -- 逻辑运算符 AND, OR, NOT -- 范围查询 BETWEEN 值1 AND 值2 NOT BETWEEN 值1 AND 值2 -- 集合查询 IN (值1, 值2, ...) NOT IN (值1, 值2, ...) -- 模糊查询 LIKE '模式' -- % 匹配任意字符, _ 匹配单个字符 NOT LIKE '模式' -- 空值判断 IS NULL IS NOT NULL

3. 排序和限制

-- 排序 SELECT * FROM 表名 ORDER BY 列1 [ASC|DESC], 列2 [ASC|DESC]; -- 限制返回行数(达梦特有) SELECT * FROM 表名 LIMIT n; -- 前n行 SELECT * FROM 表名 LIMIT m, n; -- 从m+1行开始的n行 SELECT TOP n * FROM 表名; -- 前n行

4. 分组和聚合

-- 聚合函数 COUNT(*), COUNT(列名), SUM(列名), AVG(列名), MAX(列名), MIN(列名) -- 分组查询 SELECT 分组列, 聚合函数(列名) FROM 表名 WHERE 条件 GROUP BY 分组列 HAVING 分组条件; -- 示例 SELECT dept_id, COUNT(*), AVG(salary) FROM employee GROUP BY dept_id HAVING AVG(salary) > 5000;

5. 连接查询

-- 内连接 SELECT * FROM 表1 INNER JOIN 表2 ON 连接条件; -- 左外连接 SELECT * FROM 表1 LEFT JOIN 表2 ON 连接条件; -- 右外连接 SELECT * FROM 表1 RIGHT JOIN 表2 ON 连接条件; -- 全外连接 SELECT * FROM 表1 FULL JOIN 表2 ON 连接条件; -- 交叉连接 SELECT * FROM 表1 CROSS JOIN 表2;

6. 子查询

-- WHERE子句中的子查询 SELECT * FROM 表1 WHERE 列名 IN (SELECT 列名 FROM 表2 WHERE 条件); -- FROM子句中的子查询(派生表) SELECT * FROM ( SELECT 列1, 列2 FROM 表名 WHERE 条件 ) AS 别名; -- SELECT子句中的子查询 SELECT 列1, (SELECT 聚合函数 FROM 表2) AS 别名 FROM 表1;

7. 集合运算

-- 并集 SELECT 语句1 UNION SELECT 语句2; -- 去重 SELECT 语句1 UNION ALL SELECT 语句2; -- 不去重 -- 交集 SELECT 语句1 INTERSECT SELECT 语句2; -- 差集 SELECT 语句1 MINUS SELECT 语句2;

四、DCL(数据控制语言)

1. 用户管理

-- 创建用户 CREATE USER 用户名 IDENTIFIED BY 密码 [DEFAULT TABLESPACE 表空间名]; -- 修改用户 ALTER USER 用户名 IDENTIFIED BY 新密码; ALTER USER 用户名 ACCOUNT LOCK|UNLOCK; -- 删除用户 DROP USER 用户名 [CASCADE]; -- CASCADE删除用户所有对象

2. 权限管理

-- 系统权限授予 GRANT 权限1, 权限2, ... TO 用户名|角色名; -- 系统权限回收 REVOKE 权限1, 权限2, ... FROM 用户名|角色名; -- 对象权限授予 GRANT 权限 ON 对象名 TO 用户名|角色名 [WITH GRANT OPTION]; -- 对象权限回收 REVOKE 权限 ON 对象名 FROM 用户名|角色名 [CASCADE CONSTRAINTS];

3. 角色管理

-- 创建角色 CREATE ROLE 角色名; -- 给角色授权 GRANT 权限 TO 角色名; -- 将角色授予用户 GRANT 角色名 TO 用户名; -- 删除角色 DROP ROLE 角色名;

五、常用系统权限

数据库级权限

  • CREATE SESSION- 创建会话

  • CREATE TABLE- 创建表

  • CREATE VIEW- 创建视图

  • CREATE PROCEDURE- 创建存储过程

  • CREATE USER- 创建用户

  • CREATE ROLE- 创建角色

  • DROP USER- 删除用户

  • DROP ANY TABLE- 删除任意表

  • ALTER DATABASE- 修改数据库

  • SELECT ANY TABLE- 查询任意表

  • INSERT ANY TABLE- 插入任意表

  • UPDATE ANY TABLE- 更新任意表

  • DELETE ANY TABLE- 删除任意表

对象级权限

  • SELECT- 查询权限

  • INSERT- 插入权限

  • UPDATE- 更新权限

  • DELETE- 删除权限

  • ALTER- 修改结构权限

  • INDEX- 创建索引权限

  • REFERENCES- 创建外键权限

  • EXECUTE- 执行权限


六、事务控制

1. 事务语句

BEGIN TRANSACTION; -- 开始事务(达梦通常自动开始) COMMIT; -- 提交事务 ROLLBACK; -- 回滚事务 SAVEPOINT 保存点; -- 设置保存点 ROLLBACK TO 保存点; -- 回滚到保存点

2. 事务特性控制

-- 设置事务隔离级别 SET TRANSACTION ISOLATION LEVEL READ COMMITTED; -- 设置只读事务 SET TRANSACTION READ ONLY;

七、实用技巧和注意事项

1. 达梦特有功能

-- 虚拟列(计算列) CREATE TABLE 表名 ( 列1 INT, 列2 INT, 列3 AS (列1 + 列2) VIRTUAL ); -- 分区表 CREATE TABLE 表名 (...) PARTITION BY RANGE(列名) (...); -- 闪回查询(查询历史数据) SELECT * FROM 表名 AS OF TIMESTAMP '时间戳'; -- 伪列 SELECT ROWNUM, ROWID, * FROM 表名;

2. 性能优化提示

  1. 索引使用:WHERE、JOIN、ORDER BY中的列考虑建索引

  2. **避免SELECT ***:只查询需要的列

  3. 批量操作:使用批量INSERT/UPDATE提高效率

  4. 分区策略:大数据量表使用分区

  5. 统计信息:定期更新统计信息:DBMS_STATS.GATHER_TABLE_STATS()

3. 兼容性注意事项

  1. 达梦兼容Oracle和MySQL语法,但部分语法有差异

  2. 字符串连接使用||CONCAT()

  3. 分页查询建议使用LIMITROWNUM

  4. 系统函数前缀不同(如:SYSDATEUSER等)

这个大全涵盖了达梦数据库的主要SQL操作,具体使用时请参考官方文档版本说明。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/1 7:41:25

轻量级办公处理神器,绝了

今天给大家推荐一款好用的轻量级word办公处理软件&#xff0c;无需第三方支持&#xff0c;仅8M大小&#xff0c;有需要的小伙伴可以下载收藏。 DocLite 轻量级Word办公处理软件 软件支持*.doc,*.docx,*.rtf,*.txt,*.htm,*.html 等常见文档格式&#xff0c;无需第三方依赖&…

作者头像 李华
网站建设 2026/4/7 19:06:46

零信任+AI检测最佳组合:云端GPU快速验证,降本80%方案

零信任AI检测最佳组合&#xff1a;云端GPU快速验证&#xff0c;降本80%方案 引言&#xff1a;企业安全的新挑战与低成本验证方案 作为企业架构师&#xff0c;当你听到厂商说"零信任方案必须搭配AI检测引擎才能生效"时&#xff0c;第一反应可能是&#xff1a;这套方…

作者头像 李华
网站建设 2026/3/30 18:32:22

AI智能体农业监测案例:1小时部署教程

AI智能体农业监测案例&#xff1a;1小时部署教程 引言&#xff1a;当农业遇上AI智能体 想象一下&#xff0c;你是一位农学研究员&#xff0c;站在一片广阔的农田前。作物长势参差不齐&#xff0c;有的区域叶片发黄&#xff0c;有的区域土壤干燥。传统方法需要你手动测量每块区…

作者头像 李华
网站建设 2026/3/28 16:10:53

AI智能体商业应用案例:3步部署实战演示

AI智能体商业应用案例&#xff1a;3步部署实战演示 引言&#xff1a;为什么企业管理者需要了解AI智能体&#xff1f; 作为企业管理者&#xff0c;你可能经常听到技术团队讨论"AI智能体"&#xff0c;但面对复杂的术语和漫长的演示排期&#xff0c;很难快速判断这项技…

作者头像 李华
网站建设 2026/3/24 4:16:30

GTE中文语义相似度服务API实战:PHP集成详细步骤

GTE中文语义相似度服务API实战&#xff1a;PHP集成详细步骤 1. 背景与需求分析 1.1 中文语义相似度的应用场景 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;语义相似度计算是理解文本间内在关系的核心任务之一。无论是智能客服中的意图匹配、推荐系统中的内容…

作者头像 李华
网站建设 2026/3/27 12:01:33

ChatGPT安全应用秘籍:云端快速部署私有化检测助手

ChatGPT安全应用秘籍&#xff1a;云端快速部署私有化检测助手 引言&#xff1a;企业安全的新选择 作为企业安全主管&#xff0c;你是否经常面临这样的困境&#xff1a;一方面需要利用先进的大语言模型&#xff08;LLM&#xff09;来分析海量安全日志&#xff0c;另一方面又担…

作者头像 李华