MySQL 数据库 DDL(数据定义语言)深度指南 —— 企业级数据库结构设计标准

SAP ERP与金蝶云星空的集成案例(新能源光伏行业) 通过建设PLM、SAP、MES、WMS、SCADA、EAM等多系统集成的工业互联网平台作为数字化工厂的控制中枢,不仅可以实现人员、设备、物料、工艺参数、产品等生产全流程追溯管理,同时也可以根据数据采集进行生产现场的控制调节,最大程度降低能耗水平。销售订单创建下推金蝶采购订单创建修改、销售订单创建下推金蝶销售订单创建修改、销售发货过账下推金蝶采购入库单、销售发货过账下推金蝶销售出库单:在SAP ERP系统创建销售订单、销售发货过账单后推送到云星空系统,进行采购/销售订单的创建修改、完成物料的入库和出库流程。 阅读详情

以下是专为 Java 后端开发者(Spring Boot 团队) 深度定制的 MySQL DDL(数据定义语言)完整深入指南,系统、细致、逐项解析 DDL 的每一个核心命令、使用场景、企业级规范与避坑要点,全部附带标准示例 + 中文注释说明,助你彻底掌握数据库结构设计,推动团队统一规范、规避生产事故。


📘 MySQL DDL(数据定义语言)深度指南 —— 企业级数据库结构设计标准

适用对象:Java 后端开发、架构师、DBA、技术负责人
目标:彻底掌握 DDL 命令,规范数据库建模,杜绝“建表随意、字段混乱、索引缺失”等生产隐患
版本要求:MySQL 8.0+
引擎要求:InnoDB(唯一生产推荐引擎)
核心理念:结构即契约,表是系统的第一道防线


一、DDL 是什么?有什么作用?

✅ 定义

DDL(Data Definition Language,数据定义语言) 是用于定义、修改、删除数据库及其内部对象结构的 SQL 子集。
它操作的是“元数据”(Metadata),而非数据本身。

✅ 核心作用

作用说明
创建数据库对象建库、建表、建索引、建视图、建触发器等
修改结构添加/删除字段、修改字段类型、重命名表/字段
删除对象删除表、删除数据库、删除索引
定义约束设置主键、唯一、外键、非空、默认值等完整性规则
建立访问契约数据库结构是系统所有模块的“接口协议”,直接影响 API、ORM、缓存、迁移、测试

💡 关键认知:
DDL 不是“一次性操作”,它是系统架构的基石。
一个错误的 DDL(如字段类型选错、缺少索引、未设逻辑删除)会导致:

  • 查询慢 100 倍
  • 系统崩溃(如 varchar(20) 存手机号)
  • 数据无法恢复(物理删除)
  • 团队协作混乱(字段无注释)

二、DDL 包含哪些内容?(五大核心命令详解)

命令作用是否可回滚是否自动提交
CREATE创建数据库、表、索引、视图等❌ 否✅ 是
ALTER修改现有数据库对象结构❌ 否✅ 是
DROP删除数据库、表、索引等❌ 否✅ 是
TRUNCATE清空表数据(保留结构)❌ 否✅ 是
RENAME重命名数据库、表、索引❌ 否✅ 是

⚠️ 注意:所有 DDL 操作都是自动提交(Autocommit = ON),执行后立即生效,无法回滚!
一旦误删表,除非有备份,否则数据永久丢失!


三、逐项深入详解 + 企业级标准示例(带中文注释)


✅ 1. CREATE —— 创建数据库对象(最核心命令)

📌 1.1 创建数据库(Database)
-- ✅ 企业标准:创建数据库(推荐写法)
CREATE DATABASE IF NOT EXISTS `mall_order_system`
  CHARACTER SET utf8mb4           -- ✅ 必须:支持 emoji、中文、多语言
  COLLATE utf8mb4_unicode_ci      -- ✅ 必须:Unicode 排序,避免中文排序错乱
  DEFAULT ENCRYPTION = 'N'        -- ✅ 明确关闭加密(除非有合规要求)
  COMMENT = '电商平台订单核心数据库,含用户、订单、商品、支付表';

-- ❌ 错误写法(生产事故高发区)
CREATE DATABASE mall_order_system; -- 未指定字符集,可能默认为 latin1,中文乱码!

-- ❌ 错误写法
CREATE DATABASE `MallOrderSystem`; -- 表名大小写混用,Linux 环境下可能找不到

✅ 企业规范:

  • 数据库名统一用 小写 + 下划线(如 user_service, inventory_db)
  • 必须显式声明 CHARACTER SET utf8mb4 和 COLLATE utf8mb4_unicode_ci
  • 添加 COMMENT 描述用途,便于文档管理
  • 生产环境禁止使用 root 用户创建数据库,应由 DBA 统一管理

📌 1.2 创建表(Table)——重中之重,必须掌握
-- ✅ 企业级标准建表模板(完整版,可直接复制使用)
CREATE TABLE `order` (
    -- 主键:必须使用 BIGINT UNSIGNED,支持 18 亿+记录
    `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID,自增,唯一标识订单',

    -- 订单号:业务唯一标识,使用 VARCHAR(非自增,避免暴露增长规律)
    `order_no` VARCHAR(32) NOT NULL UNIQUE COMMENT '订单编号,格式:ORD202510160001,由业务生成',

    -- 用户ID:外键关联 user 表,必须为 BIGINT,与 user.id 类型一致
    `user_id` BIGINT UNSIGNED NOT NULL COMMENT '下单用户ID,关联 user.id',

    -- 订单金额:金额类字段必须用 DECIMAL,禁止使用 FLOAT/DOUBLE(精度丢失)
    `total_amount` DECIMAL(10,2) NOT NULL COMMENT '订单总金额,单位:元,保留2位小数',

    -- 订单状态:枚举值,使用 TINYINT 节省空间,配合注释说明含义
    `status` TINYINT NOT NULL DEFAULT 0 COMMENT '订单状态:0=待支付, 1=已支付, 2=已发货, 3=已完成, 4=已取消',

    -- 支付方式:字符串枚举,长度合理
    `payment_method` VARCHAR(20) NOT NULL DEFAULT 'ALIPAY' COMMENT '支付方式:ALIPAY, WECHAT, BANK_CARD',

    -- 收货地址:JSON 或 TEXT 存储(结构复杂,不建议拆表)
    `delivery_address` JSON NULL COMMENT '收货地址信息,JSON 格式:{"province":"广东","city":"深圳"...}',

    -- 创建时间:自动填充,使用 TIMESTAMP
    `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '订单创建时间,自动填充',

    -- 更新时间:自动更新,用于记录状态变更
    `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '订单最后更新时间,自动更新',

    -- 逻辑删除:**所有业务表必须包含!禁止物理删除!**
    `is_deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标志:0=正常,1=已删除',

    -- ✅ 主键约束(显式声明,规范)
    PRIMARY KEY (`id`),

    -- ✅ 唯一索引:确保订单号全局唯一
    UNIQUE KEY `uk_order_no` (`order_no`) COMMENT '订单号唯一索引,防止重复下单',

    -- ✅ 普通索引:加速按用户查询订单
    INDEX `idx_user_id` (`user_id`) COMMENT '加速查询用户的所有订单',

    -- ✅ 组合索引:按用户+状态查询(高频场景)
    INDEX `idx_user_status` (`user_id`, `status`) COMMENT '加速:查询用户待支付/已完成订单',

    -- ✅ 时间索引:按创建时间分页/统计
    INDEX `idx_created_at` (`created_at`) COMMENT '加速:按时间范围查询订单(如日报)',

    -- ✅ JSON 字段索引(MySQL 5.7+):对 JSON 中字段建立虚拟列索引
    -- 创建虚拟列:提取省名
    `delivery_province` VARCHAR(50) GENERATED ALWAYS AS (JSON_UNQUOTE(JSON_EXTRACT(`delivery_address`, '$.province'))) STORED,
    INDEX `idx_delivery_province` (`delivery_province`) COMMENT '对收货省份建立索引,加速区域统计'

) ENGINE=InnoDB                    -- ✅ 必须:支持事务、行锁、外键
  DEFAULT CHARSET=utf8mb4          -- ✅ 必须:支持 emoji 和中文
  ROW_FORMAT=DYNAMIC               -- ✅ 推荐:支持大字段、压缩
  AUTO_INCREMENT=10000             -- ✅ 可选:起始 ID 避免泄露业务量(如从10000开始)
  COMMENT='订单主表,记录用户下单核心信息';

-- ⚠️ 重要说明:
-- 1. 所有字段必须有 COMMENT 注释,团队协作的“文档”
-- 2. 所有索引必须有 COMMENT,便于排查慢查询
-- 3. 使用 `KEY` 和 `INDEX` 等价,但团队统一用 `INDEX`
-- 4. `ROW_FORMAT=DYNAMIC` 是 InnoDB 默认,适用于大字段(如 JSON、TEXT)

✅ 为什么用 DECIMAL(10,2) 而不是 FLOAT?

SELECT 0.1 + 0.2 = 0.3; -- FLOAT 结果:0.30000000000000004(精度丢失!)
SELECT CAST(0.1 AS DECIMAL(10,2)) + CAST(0.2 AS DECIMAL(10,2)) = 0.3; -- 结果:TRUE

金融系统必须用 DECIMAL!

✅ 为什么用 TIMESTAMP 而不是 DATETIME?

  • TIMESTAMP:自动时区转换,存储为 UTC,适合分布式系统
  • DATETIME:原样存储,无时区,适合本地单机系统
    推荐:分布式系统用 TIMESTAMP,单机用 DATETIME

📌 1.3 创建索引(Index)——性能生命线
-- ✅ 方式一:建表时创建索引(推荐,结构完整)
CREATE TABLE `product` (
    `id` BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY COMMENT '商品ID',
    `name` VARCHAR(100) NOT NULL COMMENT '商品名称',
    `category_id` BIGINT UNSIGNED NOT NULL COMMENT '分类ID',
    `price` DECIMAL(8,2) NOT NULL COMMENT '价格',
    `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    
    -- ✅ 普通索引
    INDEX `idx_category_id` (`category_id`),
    
    -- ✅ 复合索引(顺序很重要!)
    INDEX `idx_category_price` (`category_id`, `price`),
    
    -- ✅ 前缀索引(对长字符串优化)
    INDEX `idx_name_prefix` (`name`(10)), -- 只对前10个字符建索引,节省空间
    
    -- ✅ 唯一索引
    UNIQUE INDEX `uk_name` (`name`) -- 商品名唯一(如 SKU)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ✅ 方式二:为已存在表添加索引(ALTER)
ALTER TABLE `order`
ADD INDEX `idx_status_created` (`status`, `created_at`) COMMENT '加速:按状态+时间查询未完成订单';

-- ✅ 方式三:删除索引(谨慎!)
ALTER TABLE `order`
DROP INDEX `idx_status_created`; -- 删除后需重建,影响性能

-- ✅ 查看索引(调试必备)
SHOW INDEX FROM `order`;

✅ 索引命名规范(团队统一):

  • 普通索引:idx_字段名 → idx_user_id
  • 复合索引:idx_字段1_字段2 → idx_user_status
  • 唯一索引:uk_字段名 → uk_order_no
  • 前缀索引:idx_字段名_prefix → idx_name_prefix

⚠️ 索引陷阱:

  • ❌ 在 WHERE 中使用函数:WHERE YEAR(created_at) = 2025 → 索引失效
  • ✅ 正确写法:WHERE created_at BETWEEN '2025-01-01' AND '2025-12-31'

✅ 2. ALTER —— 修改已有结构(高风险操作)

警告:ALTER 在大表上执行会锁表,导致服务不可用!
生产环境必须在低峰期执行,或使用 pt-online-schema-change 工具

-- ✅ 企业标准:添加字段(推荐)
ALTER TABLE `user`
ADD COLUMN `avatar_url` VARCHAR(255) NULL COMMENT '用户头像URL,可为空' AFTER `phone`;

-- ✅ 添加字段 + 默认值
ALTER TABLE `order`
ADD COLUMN `source` VARCHAR(20) NOT NULL DEFAULT 'WEB' COMMENT '订单来源:WEB, APP, MINIPROGRAM' AFTER `payment_method`;

-- ✅ 修改字段类型(谨慎!)
ALTER TABLE `user`
MODIFY COLUMN `phone` VARCHAR(20) COMMENT '手机号,从 VARCHAR(15) 扩容到 20,支持国际号';

-- ✅ 修改字段名(推荐:先加新字段,再迁移数据,最后删旧字段)
-- ❌ 不推荐直接 rename,易导致 ORM 映射失败
-- ✅ 推荐流程:
-- 1. ALTER TABLE user ADD COLUMN mobile_phone VARCHAR(20) ...
-- 2. UPDATE user SET mobile_phone = phone WHERE phone IS NOT NULL
-- 3. ALTER TABLE user DROP COLUMN phone

-- ✅ 修改表字符集(仅在必要时)
ALTER TABLE `user` 
CONVERT TO CHARACTER SET utf8mb4 
COLLATE utf8mb4_unicode_ci;

-- ✅ 修改表引擎(从 MyISAM 转为 InnoDB)
ALTER TABLE `old_log` ENGINE=InnoDB;

-- ✅ 删除字段(谨慎!)
ALTER TABLE `user`
DROP COLUMN `temp_field`; -- 删除后不可恢复,确保无业务依赖!

-- ✅ 添加外键约束(推荐,但需注意性能影响)
ALTER TABLE `order`
ADD CONSTRAINT `fk_order_user_id`
FOREIGN KEY (`user_id`) REFERENCES `user` (`id`)
ON DELETE RESTRICT
ON UPDATE CASCADE
COMMENT '外键约束:用户删除时,禁止删除其订单';

✅ 企业规范:

  • 所有 ALTER 操作必须写入 数据库变更脚本(SQL 文件),纳入 Git 管理
  • 大表(>100万行)必须使用 在线 DDL 工具(如 Percona Toolkit)
  • 禁止在业务高峰期执行 ALTER
  • 修改字段类型前,必须做数据备份与测试

✅ 3. DROP —— 删除对象(最危险命令)

-- ✅ 删除表(谨慎!)
DROP TABLE IF EXISTS `temp_user_backup`; -- ✅ 安全写法:存在才删

-- ❌ 危险写法(生产事故)
DROP TABLE `user`; -- 一删全无,无法恢复!

-- ✅ 删除索引
ALTER TABLE `order`
DROP INDEX `idx_temp`; -- 删除不再使用的索引,释放空间

-- ✅ 删除数据库(仅限测试环境)
DROP DATABASE IF EXISTS `test_db`;

-- ✅ 删除视图
DROP VIEW IF EXISTS `v_user_order_summary`;

✅ 企业铁律:

  • 生产环境禁止直接 DROP TABLE / DROP DATABASE
  • 所有删除操作必须:
    1. 提交变更申请
    2. 通知所有依赖方(前端、BI、数据团队)
    3. 备份数据(mysqldump)
    4. 在 凌晨 2:00-4:00 执行
    5. 执行后验证服务是否正常

💡 替代方案:
用 RENAME 替代 DROP,实现“软删除”:

RENAME TABLE `old_user_table` TO `old_user_table_20251016_bak`;

✅ 4. TRUNCATE —— 清空表数据(保留结构)

-- ✅ 清空所有数据,重置自增 ID(比 DELETE 快 100 倍)
TRUNCATE TABLE `user_session`; -- 清空用户登录会话表(临时数据)

-- ✅ 与 DELETE 的区别:
DELETE FROM `user_session`; -- 逐行删除,慢,可回滚,不重置自增 ID
TRUNCATE TABLE `user_session`; -- 释放存储空间,重置 AUTO_INCREMENT,不可回滚

-- ✅ 使用场景:
-- ✅ 日志表、会话表、临时缓存表
-- ❌ 禁止用于订单、用户、商品等核心业务表!

✅ 企业规范:

  • TRUNCATE 适用于 非核心、非事务、可再生 的表
  • 执行前必须确认无外键依赖
  • 必须记录操作日志(谁、何时、为何执行)

✅ 5. RENAME —— 重命名对象(安全的结构迁移)

-- ✅ 重命名表(推荐用于版本迁移)
RENAME TABLE `user_old` TO `user_v1`, `user_new` TO `user`;

-- ✅ 重命名索引(MySQL 8.0+ 支持)
ALTER TABLE `order`
RENAME INDEX `idx_status` TO `idx_order_status`;

-- ✅ 重命名数据库(谨慎)
RENAME DATABASE `old_app` TO `new_app`; -- ❌ MySQL 8.0+ 已移除此语法!

-- ✅ 替代方案(安全):
CREATE DATABASE `new_app`;
mysqldump old_app | mysql new_app;
DROP DATABASE `old_app`;

✅ 企业建议:

  • 使用 RENAME 实现“灰度切换”:先建新表,迁移数据,再重命名
  • 避免直接改表名,应通过 数据库迁移工具(如 Flyway、Liquibase)管理

四、DDL 企业级最佳实践总结(必须遵守)

类别规范说明
命名规范全小写 + 下划线如 user_order,禁止 UserOrder、userOrder
字符集utf8mb4 + utf8mb4_unicode_ci支持 emoji、中文、多语言,禁止 utf8
引擎InnoDB禁止 MyISAM(无事务、无行锁)
主键BIGINT UNSIGNED AUTO_INCREMENT避免 UUID、VARCHAR 主键(索引碎片)
逻辑删除所有表必须含 is_deleted TINYINT(1) DEFAULT 0禁止物理删除
注释每个字段、索引、表必须有 COMMENT团队协作的“活文档”
索引每个 WHERE、ORDER BY、JOIN 字段必须建索引使用 EXPLAIN 验证
字段类型金额用 DECIMAL,时间用 TIMESTAMP,枚举用 TINYINT精度第一,性能第二
变更管理所有 DDL 必须写入 SQL 文件,Git 管理,Code Review禁止直接在生产库执行
执行时间生产 DDL 必须在 凌晨低峰期 执行避免锁表导致服务不可用
备份执行 DDL 前,必须备份数据库mysqldump -u root -p dbname > backup.sql

五、DDL 常见生产事故案例与避坑指南

事故场景原因后果解决方案
VARCHAR(20) 存手机号长度不足国际号无法存储,用户注册失败改为 VARCHAR(20) 或 VARCHAR(30)
FLOAT 存金额精度丢失付款 0.1+0.2=0.30000000000000004改为 DECIMAL(10,2)
未建索引查询用户订单全表扫描100ms → 3s,CPU 100%CREATE INDEX idx_user_id ON order(user_id)
误删表 user无备份数据永久丢失禁止直接 DROP,用 RENAME 替代
ALTER TABLE 锁表大表(500万行)服务不可用 20 分钟使用 pt-online-schema-change
未设 is_deleted物理删除订单审计无法追溯所有表强制加逻辑删除字段

六、团队落地行动清单(可打印张贴)

动作负责人时间
✅ 发布《DDL 编写规范手册》技术负责人3天内
✅ 所有新表必须包含:id, created_at, updated_at, is_deleted开发团队立即执行
✅ 所有 DDL 变更必须写入 sql/migration/ 目录,Git 提交DevOps持续进行
✅ 每次发布前,DBA 审核 DDL 脚本DBA每次上线前
✅ 新人入职培训必须包含本指南技术导师新人入职第1天
✅ 每月一次“DDL 事故复盘会”架构师每月第一个周五

七、附录:DDL 模板(可直接复制)

-- 📌 通用表模板(复制即用)
CREATE TABLE `your_table_name` (
    `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
    `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `is_deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除:0=正常,1=已删除',
    
    -- 在此处添加业务字段...
    `field1` VARCHAR(50) NULL COMMENT '字段1说明',
    `field2` DECIMAL(10,2) NOT NULL COMMENT '字段2说明',
    
    PRIMARY KEY (`id`),
    INDEX `idx_field1` (`field1`),
    INDEX `idx_created_at` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='表用途说明';

✅ 终极忠告:
你写的每一条 DDL,都在为未来埋下一颗雷,或铺下一块基石。
一个规范的表结构,能让团队少走三年弯路。
请以敬畏之心,对待每一个 CREATE、ALTER、DROP。

手把手教你学Simulink--电机电磁兼容与可靠性​场景示例:基于Simulink的电机轴电压与轴电流抑制仿真 本文带你完成了电机轴电压与轴电流抑制的Simulink仿真,实现了:✅ 揭示了共模电压 → 寄生电容 → 轴电压 → 轴承电蚀的完整链路✅ 搭建了含寄生参数的高频电机等效模型共模电压最小化PWM(源头抑制)dv/dt滤波器(路径阻断)轴接地(终端泄放) ✅ 通过仿真验证了轴电压从68 V降至<3 V的显著效果 ✅ 为高可靠性电机系统提供低成本、高效益的轴承保护方案。 阅读详情

相关推荐

SolidWorks草图绘制实战:如何用图片参考快速搞定智能小车底板设计

本文详细介绍了在SolidWorks中利用图片参考进行草图绘制的实战方法,以智能小车底板设计为例,帮助设计师快速将概念转化为精准三维模型。通过插入、对齐参考图片并高效描图,结合参数化约束与尺寸驱动,大幅提升设计效率和准确性,尤其适合新手入门与老手优化工作流。

rust6ferris的博客 217

MySQL概述 -- 数据模型&SQL简介&DDL数据库操作

在MySQL数据库服务器当中存储数据,需要先去创建数据库,然后在这个数据库下再去创建对应的表结构,然后再将数据存放在这个表结构当中,而且在一个数据库服务器当中,我们可以创建多个数据库,而且多个数据库之间是相互独立的互不影响的,而一个数据库下面我们又可以创建多张表,一张表当中又可以存储多条数据,这就是MySQL的数据模型。而在这个数据库下面,我们就可以来创建表结构来存放数据,一个数据库下面我们是可以创建多张表结构的,而表结构当中存储的就是一条一条的数据。参照页面原型和需求进行编码,实现业务功能。

weixin_53622554的博客 1838

XS5018A TX ISP芯片同轴高清模拟输出图像处理芯片用户指南

当看门狗开启且系统异常,看门狗模块得不到喂狗信号时,自动产生看门狗复位信号,复位​​​​​​​。分量上与人眼对光谱的响应通常是有偏差的,通常通过一个色彩校正矩阵校正光谱响应的交叉效。但实际上由于电路的作用,复位模块对整个芯片及各个功能模块的复位进行统一管理,负责产生各个模块的软复位信。每个区域前景色可以在 16 个色表中查找,单个区域的前景色统一,各个区域的前。较弱的坏点被放大成刺眼的白点和明显的黑点,强烈推荐开启动态坏点校正功能。四种制式,通过寄存器配置,可以很方便的实现四种制式的切换、且可以对截止。

2403_88922712的博客 1959

MySQL数据表操作全指南:建表、修改、删除一步到位【MySQL系列】

本文系统讲解MySQL数据库表的创建、修改与删除操作,涵盖DDL语句基础、字段类型选择、主外键约束设计及规范化建模原则。详细解析CREATE、ALTER、DROP语句的语法与使用场景,介绍数值、字符串、时间等常见字段类型的适用情况。重点说明主键、外键等约束策略的设计要点,并通过用户表、订单表等实战案例展示表结构的迭代演进过程。文章强调规范化设计的重要性,同时指出在高并发场景下可适度反范式化优化性能,为数据库表结构的日常维护提供实用指导。

程序员熊建锟。AI技术知名博主。优快云优质创作者(粉丝1W+)、腾讯云开发者先锋;阿里云专家博主;华为云“云享专家”、51CTO专家博主 1524

博图HMI多语言文本列表一键生成攻略:从Excel模板到TIA Portal的完整流程

本文详细介绍了如何利用Excel模板和TIA Portal API实现博图HMI多语言文本列表的一键生成。通过标准化Excel模板设计、解析TIA Portal的XML结构,并结合C#代码实现自动化导入,大幅提升多语言项目的开发效率。特别适用于需要支持多语言版本的自动化设备HMI界面开发。

weixin_26934905的博客 218

Vivado里LDPC IP核怎么配?手把手教你从6144bit数据到完整参数设置

本文详细介绍了在Vivado中配置LDPC IP核的完整流程,从6144bit数据的参数计算到实际IP核设置。通过分析基本图选择、扩展因子计算和移位参数确定等关键步骤,帮助工程师高效完成LDPC编译码的硬件实现,并提供了时序控制、仿真验证和性能优化的实用技巧。

weixin_30352645的博客 517

2.数据定义语言DDL

数据库定义语言DDL(Data Definition Language)是用于描述数据库中要存储的现实世界实体的语言 主要由create(添加)、alter(修改)、drop(删除)和 truncate(删除) 四个关键字完成。

时光醉在梦里的博客 2697

影刀RPA进阶:Excel多条件筛选与数据提取实战

本文详细介绍了如何利用影刀RPA实现Excel多条件筛选与数据提取的自动化。通过拆解文本、数值、日期及颜色筛选等核心指令,并结合实战案例,指导用户构建稳健的销售数据提取机器人,从而高效处理复杂数据报表,提升工作效率。

onion的博客 527

数据库每日学习 Day2--- 数据模型、SQL的分类、数据库的CRUD操作(DDL)、表的CRUD操作(DDL)

数据模型、SQL的分类、数据库的CRUD操作(DDL)、表的CRUD操作(DDL) 数据模型 SQL的分类 数据库的CRUD操作(DDL) 表的CRUD操作(DDL)

weixin_42252770的博客 379

WPF实现棋盘式图片切换效果

实现效果如下: 思路:在自定义控件中放置两个Image控件,点击前后翻页按钮时对图片进行裁剪,随机打乱顺序后添加动作。 步骤: 1、MyImageControl控件 /// <summary> /// MyImageControl.xaml 的交互逻辑 /// </summary> public partial class MyImageControl : UserControl { public static r

dnazhd的博客 1125

【Dify】36氪新闻热榜智能自动化采集与AI处理

本文介绍如何利用Dify等自动化工具实现36氪新闻热榜的智能采集与处理。通过HTTP请求节点获取数据,JSON解析节点结构化处理,AI处理节点生成智能摘要,最终格式化输出结果。工作流程包含数据获取、解析、AI摘要、文本整理和内容输出五个环节,支持批量化、定制化的新闻处理需求。该方案适用于行业监测、内容创作、舆情管理等场景,显著提升信息获取效率,实现"所需即得"的自动化新闻服务。系统采用OpenAI GPT和Dify API作为核心模型,无需复杂人工干预即可完成全流程处理。

Mr数据杨 595

ChartDB:企业级多数据库统一可视化架构解决方案

在数字化转型的浪潮中,企业面临的数据孤岛问题日益突出。不同业务系统采用MySQL、PostgreSQL、Oracle等异构数据库,技术栈的碎片化导致架构师难以形成全局数据视图。传统数据库设计工具局限于单一数据库类型,无法应对多云混合部署、微服务架构下的数据治理挑战。ChartDB应运而生,通过统一的驱动接口和可视化引擎,为企业提供跨数据库平台的完整数据架构解决方案。 ## 数据架构可视化的战略价

gitblog_00675的博客 398

RK3568平台开发系列讲解(DMA篇)DMA engine使用

DMA传输属于异步传输,在启动传输之前,slave driver需要将此次传输的一些信息(例如src/dst的buffer、传输的方向等)提交给dma engine(本质上是dma controller driver),dma engine确认okay后,返回一个描述符(由struct dma_async_tx_descriptor抽象)。DMA_PREP_PQ_DISABLE_P、DMA_PREP_PQ_DISABLE_Q、DMA_PREP_CONTINUE,PQ有关的操作,TODO。

内核笔记 1721

揭秘NeatLogic ITOM平台:企业级开源运维管理系统的完整指南

在当今数字化时代,企业IT运维管理面临着前所未有的挑战。传统ITSM工具功能单一,CMDB系统数据孤岛严重,自动化运维工具又缺乏流程整合。有没有一套系统能够**一站式解决IT运维管理的所有需求**?这就是NeatLogic ITOM平台要回答的问题。 NeatLogic是一套**渐进式ITOM平台**,专为不同规模和类型的用户设计,提供从ITSM服务管理、CMDB配置管理到自动化运维、巡检监控的

gitblog_00403的博客 311

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

要努力去发光,而不是被照亮~ 112

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

在Codex 让AI模型 拥有长期智能记忆

本文介绍Claude-Mem V15新功能——智能记忆召回,解决AI遗忘、重复提示、执行不一致等问题。通过本地部署claude-mem,实现自动记录决策(如数据库选型)、跨会话智能召回,支持记忆写入、检索、遗忘全流程闭环。相比传统记忆方案,其基于Hooks自动捕获工具调用,结构化存储,可追溯、可共享、可清理,显著提升工程效率与协作一致性,是长期项目中理想的“工作黑匣子”与“工程脑”。

米莱虾 253

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Spring Boot 数据源与 MyBatis(-Plus) 自定义配置详解

本文详解 Spring Boot 中单数据源环境下 HikariCP 与 MyBatis-Plus 的自定义配置。通过手动声明 SqlSessionFactory,实现下划线转驼峰、日志输出、一级缓存策略等精细化控制。结合 HikariCP 核心参数调优(如最大连接数、连接生命周期),确保高性能与稳定性。适用于仅需访问单一数据库的场景,避免多数据源复杂性,兼顾性能与可维护性。

BADAO_LIUMANG_QIZHI的博客 190

45-存储过程与函数

匿名块跑完就没了,想下次再用只能复制粘贴。给块起个名字存进数据库,就成了存储过程与函数:一次编译、处处调用、权限收口,还能让 Java 侧少拼 SQL。这篇讲封装、调用、限制与排错的完整套路。CREATE OR REPLACE 覆盖式创建,事务由调用方控制;参数三模式 IN 只进、OUT 只出、IN OUT 双向,OUT 参数调用时要备好变量接;调用三姿势 EXEC、CALL、匿名块,命名传参=>最清晰;函数必有 RETURN,想在 SQL 里调用就不能碰 DML 和事务控制;

yuhou25的博客 151

数据库乐观锁深度解析:MySQL、PostgreSQL 实战 + Spring Boot 集成指南

Oracle 提供了ORA_ROWSCN伪列(System Change Number),记录最后修改行的 SCN,类似 PostgreSQL 的xmin。实践中通常仍使用 version 字段方案,逻辑与 MySQL 完全相同。-- Oracle:通过 ORA_ROWSCN 实现乐观锁-- 更新时比对 SCN// 自定义注解// AOP 切面@Aspect@Component@Slf4jtry {

yjc_1111的专栏 392

大数据工具介绍

Hive作为离线数仓的元数据管理与SQL接口,依托HDFS存储、Spark/MapReduce计算;Spark是统一的分布式计算引擎,承担复杂数据处理;DataX实现异构数据源间离线同步;ClickHouse擅长极速单表分析;Doris则提供实时、多表关联的综合分析能力;Flink作为原生流处理引擎,支持毫秒级实时计算与状态管理。两者共同构建起从离线批处理到实时流处理的完整数据链路。

yyk33324的博客 261

数据库主键选型指南:BIGINT vs VARCHAR

主键选型关乎数据库性能与架构演进。BIGINT(如雪花算法)在顺序写入、二级索引开销和分布式生成上优势显著,适合高并发核心链路;而传统 VARCHAR UUIDv4 因随机性导致频繁页分裂、存储膨胀,性能堪忧。UUIDv7 通过时间戳有序性实现高效追加写入,结合 BINARY(16) 存储可兼顾性能与安全,成为现代微服务新选择。关键在于:主键应稳定、无业务含义,优先选用趋势递增的紧凑类型,并根据场景合理采用双主键模式或 ULID 等替代方案。

小李同学的博客 299

自动化运维选型:四条技术路线的能力边界,以及它们为什么不能互相替代

自动化运维怎么选型?拆解配置管理、基础设施即代码、作业调度与场景化编排四条技术路线边界,分析账本归属与时间语义差异,给出四种架构组合与判断点,帮企业看清为何不能互相替代。

trainsignalcn的专栏 305

不用再为文本搜索单独维护一套系统!全文检索深度解析

为了给商品、客服工单或者企业知识库增加一个搜索框,企业往往需要在业务数据库之外,再部署一套Elasticsearch。数据库保存商品、订单和用户等真实业务数据,搜索引擎保存另一份文本索引;两套系统之间,还需要通过CDC、消息队列或者同步程序持续传输数据。一个看似简单的搜索需求,最后可能变成两套集群、两份数据和一条必须保持稳定的数据链路。由此产生的问题并不少:数据库已经完成更新,搜索结果却可能尚未同步;业务查询同时涉及文本、库存、权限和订单状态时,应用需要在两个系统之间来回组合结果;

TiDB 社区干货传送门 179

WordPress 全站 HTTPS 后仍显示「不安全」或锁被划掉:先清混合内容,再核证书链与强制跳转

浏览器地址栏仍提示「不安全」、锁被划掉或控制台 Mixed Content 告警——明明证书已装、后台也勾了全站 HTTPS——这和今天槽位里写过的表单「提交成功但收不到邮件」、「建立数据库连接时出错」,以及登录 Cookie/CDN 重定向环、502/503、PHP 白屏、WP-Cron、媒体上传、固定链接 404、Woo 支付回调不是一类故障。PHP 与数据库多半正常,卡在。更稳的顺序是:先分清是→ 用开发者工具清出所有http://

20年技术经验|专注小程序+外贸独立站|已服务500家企业,分享创业中有趣的产品和技术经验。 375

48-逻辑结构表空间段区块

默认 10%,意思是块里的空闲空间低于 10% 时就不再插入新行,留着给已有行的 UPDATE 变胖用。注意 INSERT 过程中每次申请新区,都是一次潜在的空间报错点,如果表空间满了,此刻就会抛 ORA-01653。剩下的空间被谁占了?段的每个区可以落在表空间的任一数据文件,所以 2T 的表在 32G 单文件上限(smallfile)的世界里照样能活——多加文件就行。,一张只有两个 CLOB 字段的表,实际在库里是三个段(表段 + 两个 LOBSEGMENT),空间统计漏算 LOB 段是新手常犯的错。

yuhou25的博客 282

市场调查与统计分析专业大学期间考证怎么安排?

市场调查与统计分析专业的考证规划,适合从一份完整的调查报告倒推:能不能设计问卷、判断样本是否合理、清洗数据,再把分析结果转化为业务建议?围绕这条能力链安排证书,比单纯按“热门程度”报名更有针对性。结合2026年的学习安排,并为2027年的实习、升学和求职预留时间,大学期间可以重点考虑六类证书:全国计算机等级考试证书、大学英语四级或六级成绩报告单、CDA数据分析师、初级统计专业技术资格证书、微软办公软件国际认证中的Excel相关证书,以及软考数据库系统工程师资格证书。

cc572502653的博客 157
上一篇: MySQL 数据库 SQL 语句完整分类指南(企业级标准版)
下一篇: MySQL 数据库 DML(数据操作语言)深度指南 —— 企业级数据变更安全与性能实践
龙茶清欢
博客等级 码龄7年 3720粉丝 375原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙茶清欢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值