数据库常用DDL语言

数据库常用DDL语言

    • [1. 常用DDL语言](#1. 常用DDL语言)
      • [1.1 新增数据库字段](#1.1 新增数据库字段)
      • [1.2 添加外键约束](#1.2 添加外键约束)
      • [1.3 添加主键约束](#1.3 添加主键约束)
      • [1.4 添加唯一键约束](#1.4 添加唯一键约束)

数据库常用DDL语言语法总结。

1. 常用DDL语言

1.1 新增数据库字段

sh 复制代码
ALTER TABLE test1 
ADD COLUMN rule_id int
DEFAULT null
COMMNET '规则id'
AFTER id;

语句内容含义:

  • ALTER TABLE test1:其中test1为需要修改的表名
  • ADD COLUMN rule_id int:其中rule_id为需要添加的字段名,int为需要添加字段的类型
  • DEFAULT null:新增字段默认值为null
  • AFTER id:新增字段添加在id字段后面

1.2 添加外键约束

sh 复制代码
ALTER TABLE test2
ADD CONSTRAINT FK_rule_id_test1_id
FOREIGN KEY(rule_id)
REFERENCES test1(id)
ON DELETE (CASCADE | SET NULL | RESTRICT | NO ACTION)
ON UPDATE (CASCADE | SET NULL | RESTRICT | NO ACTION)

语句内容含义:

  • ALTER TABLE test2:其中test2为需要修改的表名
  • ADD CONSTRAINT FK_rule_id_test1_id:其中FK_rule_id_test1_id为添加的外键约束名称
  • FOREIGN KEY(rule_id):其中rule_id表示大肠还是得炒一下豪吃
  • `REFERENCES test1(id):其中test1表示提供外键的主表名称,id表示主表中的字段名称
  • ON DELETE (CASCADE | SET NULL | RESTRICT | NO ACTION):当主表对应值删除时,子表如何操作,CASCADE表示级联删除,SET NULL表示修改子表中的值为NULL,RESTRICT表示拒绝删除要求,NO ACTION表示无操作,这几种对应操作只能选择其一。
  • ON UPDATE (CASCADE | SET NULL | RESTRICT | NO ACTION):这个和上边DELETE同理,区别在于这个是更新主表对应值时触发。

1.3 添加主键约束

sh 复制代码
ALTER TABLE test1
ADD PRIMARY KEY (rule_id, event_id)

语句内容含义:

  • ALTER TABLE test1:其中test1表示需要修改的表名
  • ADD PRIMARY KEY (rule_id, event_id):其中(rule_id, event_id)表示添加联合主键

1.4 添加唯一键约束

sh 复制代码
ALTER TABLE test1
ADD CONSTRAINT UK_test1_name
UNIQUE (name)

语句内容含义:

  • ALTER TABLE test1:其中test1表示需要修改的表名
  • ADD CONSTRAINT UK_test1_name:其中UK_test1_name表示新增的唯一索引名称
  • UNIQUE (name):其中name表示要将唯一索引加到哪一列
相关推荐
手握风云-7 小时前
MySQL数据库精研之旅第十六期:深度拆解事务核心(上)
数据库·mysql
boonya7 小时前
Redis核心原理与面试问题解析
数据库·redis·面试
我没想到原来他们都是一堆坏人8 小时前
(未完待续...)如何编写一个用于构建python web项目镜像的dockerfile文件
java·前端·python
沙二原住民8 小时前
提升数据库性能的秘密武器:深入解析慢查询、连接池与Druid监控
java·数据库·oracle
三毛20048 小时前
玳瑁的嵌入式日记D33-0908(SQL数据库)
jvm·数据库·sql
Mr_Xuhhh8 小时前
sqlite3的使用
jvm·oracle·sqlite
叫我龙翔8 小时前
【MySQL】从零开始了解数据库开发 --- 库的操作
数据库·mysql·数据库开发
Jerry&Grj8 小时前
SpringBoot埋点功能技术实现方案深度解析:架构设计、性能优化与扩展性实践
java·微服务·性能优化·springboot·架构设计·埋点技术
没有bug.的程序员8 小时前
Redis Stream:轻量级消息队列深度解析
java·数据库·chrome·redis·消息队列
用户8160791833339 小时前
告别“魔法”:包你解决 Gradle 的下载慢问题
java