hincky的主页 hincky的主页
  • 学习笔记

    • Vue笔记
    • Vuepress
    • nginx
  • 语言类

    • java
    • go
    • python
    • 设计模式
  • 框架类

    • Spring
    • Spring Security
    • Mybatis
  • 容器技术

    • docker
    • k8s
    • helm
    • prometheus
    • grafana
    • jenkins
  • 命令集合

    • linux命令
    • docker命令
    • git命令
    • vim命令
    • k8s命令
  • 数据库

    • sql
    • mysql
  • 协议

    • 网络模型
    • http/1.1
    • WebSocket
    • http/2
    • TLS/SSL
    • tcp
    • IP
    • tcpdump抓包命令
    • wireshark抓包工具
  • 通用

    • Git
  • 技术分享

    • git push/pull总是超时怎么办
    • idea debug技巧
    • postman使用
    • 问题总结
    • idea使用技巧
  • Oauth2

    • Oauth2原理
  • 项目列表

    • redis项目
    • 微服务项目
  • 分类
  • 标签
  • 归档
  • 随笔
GitHub (opens new window)

Hincky

当有趣的人,做想做的事
  • 学习笔记

    • Vue笔记
    • Vuepress
    • nginx
  • 语言类

    • java
    • go
    • python
    • 设计模式
  • 框架类

    • Spring
    • Spring Security
    • Mybatis
  • 容器技术

    • docker
    • k8s
    • helm
    • prometheus
    • grafana
    • jenkins
  • 命令集合

    • linux命令
    • docker命令
    • git命令
    • vim命令
    • k8s命令
  • 数据库

    • sql
    • mysql
  • 协议

    • 网络模型
    • http/1.1
    • WebSocket
    • http/2
    • TLS/SSL
    • tcp
    • IP
    • tcpdump抓包命令
    • wireshark抓包工具
  • 通用

    • Git
  • 技术分享

    • git push/pull总是超时怎么办
    • idea debug技巧
    • postman使用
    • 问题总结
    • idea使用技巧
  • Oauth2

    • Oauth2原理
  • 项目列表

    • redis项目
    • 微服务项目
  • 分类
  • 标签
  • 归档
  • 随笔
GitHub (opens new window)
  • 数据库

    • sql

    • MySQL开发规范

      • 规范快速指引
        • 完整开发规范
        • 简版开发规范
      • mysql

      • MySQL调优

      • kafka

    • 网络协议以及抓包工具

    • Git笔记

    • 技术分享

    • Oauth2

    • 计算机相关技术
    • 数据库
    • MySQL开发规范
    zerolee1993
    2022-11-11
    目录

    规范快速指引

    # 你想做些什么?

    1. 我想新建一张表

    2. 我需要为已有表增加或修改字段

    3. 我需要为表建立或删除索引

    4. 我需要备份数据

    5. 我要修改线上数据

    6. 我正在开发业务功能


    # 我想新建一张表

    > 建表语句参考

    CREATE TABLE `table_name` (
      `id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
      `column_name1` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'tinyint 示例',
      `column_name2` INT UNSIGNED NOT NULL COMMENT 'int 示例',
      `column_name3` VARCHAR(100) NOT NULL DEFAULT '' COMMENT 'varchar 示例',
      `column_name4` DECIMAL(16,2) NOT NULL DEFAULT 0.00 COMMENT 'decimal 示例',
      `column_name5` DATETIME NOT NULL COMMENT 'datetime 示例',
      `is_deleted` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '逻辑删除 (1:已删,0:未删)',
      `gmt_create` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
      `gmt_modified` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
      PRIMARY KEY (`id`),
      UNIQUE KEY `uk_column_name` (`column_name`),
      KEY `idx_column_name` (`column_name`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='表备注';
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    > 需要注意的事项

    • 参考:建表需要注意什么

    • 参考:如何命名

    • 参考:如何选择列的类型

    • 参考:如何建立索引


    # 我需要为已有表增加或修改字段

    > 需要注意的事项

    • 参考:如何命名?

    • 参考:如何选择列的类型?

    • 参考:如何建立索引?

    • 修改字段时,将多个 ALTER 语句合并为一个执行

    • 所有表和字段都要添加注释,修改字段含义或对字段表示的状态追加时,需要及时更新字段注释


    # 我需要为表建立或删除索引

    > 建立索引语句参考

    ALTER TABLE table_name ADD INDEX idx_column1_column2(`column1`,`column2`);
    ALTER TABLE table_name ADD UNIQUE uk_column1_column2(`column1`,`column2`);
    
    1
    2

    > 删除索引语句参考

    ALTER TABLE table_name DROP INDEX idx_xxx;
    
    1

    > 需要注意的事项

    • 参考:如何建立索引?

    # 我需要备份数据

    > 备份语句参考

    CREATE TABLE bak_table_name_yyyyMMdd  LIKE table_name;
    ALTER TABLE bak_table_name_yyyyMMdd COMMENT 'xxxx备份,请保留至yyyyMMdd';
    INSERT INTO bak_table_name_yyyyMMdd SELECT * FROM table_name [WHERE ...];
    
    1
    2
    3

    > 需要注意的事项

    • 备份部分数据时,可以在 INSERT 语句最后增加 WHERE 条件
    • 备份表必须以 bak_ 为前缀,并以 _yyyyMMdd 实时日期为后缀。例如 bak_test01_20190409
    • 最好将备份表更改备注,注明备份原因,及最后保留日期,方便清理

    # 我要修改线上数据

    > 需要注意的事项

    • 参考:操作线上数据时需要注意什么?

    # 我正在开发业务功能

    > 需要注意的事项

    • 参考:开发需要注意什么?
    编辑 (opens new window)
    #MySQL开发规范
    牛客网题目整合
    完整开发规范

    ← 牛客网题目整合 完整开发规范→

    最近更新
    01
    人生前期重要的能力
    05-17
    02
    防火墙命令
    04-11
    03
    docker-compose部署mysql主从集群
    03-22
    更多文章>
    Theme by Vdoing | Copyright © 2022-2023 Hincky | MIT License | 粤ICP备2022120427号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式