当前位置: 首页 > news >正文

达梦(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操作,具体使用时请参考官方文档版本说明。

http://www.cnnetsun.cn/news/557491.html

相关文章:

  • AI威胁检测省钱攻略:按秒计费云端GPU,比买服务器省万元
  • 从理论到实践:AI安全检测完整项目实战,环境一键直达
  • C 层函数调用与概念梳理
  • GTE中文语义相似度服务监控可视化:自定义看板
  • AI智能体异常检测对比:3个模型快速评测
  • GTE中文语义相似度计算详细步骤:构建智能问答系统基础
  • nodejs基于vue 的酒店管理系统设计与实现_v2fvn
  • GTE模型输出解释:理解余弦相似度评分含义
  • 基于 YOLOv8 的电网绝缘子破损与闪络缺陷智能检测系统识别项目 [目标检测完整源码]
  • 导师不会说的7款AI神器:1天生成3万字计算机论文,真实文献揭秘!
  • 中文文本情感分析API开发:StructBERT
  • StructBERT情感分析置信度解读:结果可信度评估
  • DOM XSS漏洞解析:利用innerHTML的location.search注入点
  • GTE中文语义相似度服务实战:社交媒体话题聚类分析
  • Stable Diffusion+智能侦测联动教程:2块钱玩转AI视觉创作
  • GTE中文语义相似度服务性能对比:CPU与GPU版本差异分析
  • GTE中文语义相似度计算快速入门:语义搜索系统构建
  • 深度学习环境配置从入门到放弃?不如直接用云端镜像
  • 3个AI智能体对比评测:云端GPU 2小时搞定,成本不到5块
  • UEBA模型部署避坑指南:云端GPU免环境配置,新用户首小时免费
  • AI智能实体侦测全家桶:12种预训练模型任选,按需付费
  • AI智能体行为分析实战:云端3步搞定,2块钱玩转大数据
  • AI智能体绘画实战:云端GPU 10分钟出图,2块钱玩一下午
  • Mac用户福音:云端跑AI侦测模型,不换电脑也能用
  • 中文情感分析API:安全配置
  • StructBERT情感分析API集成:快速接入现有系统教程
  • 中文情感分析API:高可用设计
  • StructBERT轻量级情感分析:企业案例
  • 中文情感分析模型部署:StructBERT CPU优化版性能测试
  • 基于PLC的立体车库设计(源码+万字报告+讲解)(支持资料、图片参考_相关定制)