MySQL中的DDL常规操作总结

MySQL中的DDL常规操作总结

相信对于一个后端开发人员来说,SQL的DML(Data Manipulation Language)操作是很熟悉的,毕竟在忙于写业务代码的同时,对数据操作最多的就是增加(Create)、检索(Retrieve)、更新(Update)和删除(Delete)。但是由于经常使用DML而造成对DDL(Data Definition Language)使用过少,以至于有时候需要对库、表、列等对象操作时,常常记不清该用哪个SQL语句。因此Mysql总常规的DDL操作总结一下。



前言

由于健忘和不常使用DDL,导致很多时候涉及到对表或者库的结构操作时,经常想起不起应该用哪个SQL进行操作,为此为了不再每次都找度娘,在此篇日志总结一下常用的DDL操作。


一、DDL操作库

  1. 新建数据库 CREATE DATABASE data_base_name;

例如创建一个名为menagerie的数据库:CREATE DATABASE menagerie DEFAULT CHARACTER SET utf8;

  1. 选择使用某个库 USE data_base_name;

例如使用menagerie数据库:USE menagerie;

  1. 删除指定库 DROP DATABASE data_base_name;

例如删除menagerie数据库: DROP DATABASE menagerie;

  1. 查看现存所有库 SHOW DATABASES;
  2. 查看显示指定库 SHOW DATABASES LIKE data_base_name;

例如查看以m开头的库:SHOW DATABASES LIKE ‘m%’;

  1. 修改指定库默认字符集 ALTER DATABASE data_base_name DEFAULT CHARACTER SET utf8;

例如修改库menagerie的字符集为utf8:ALTER DATABASE menagerie DEFAULT CHARACTER SET utf8;

二、DDL操作表(表、字段、索引操作)

  1. 新建表 CREATE TABLE table_name;

例如创建一个名为table_name的表,设置默认存储引擎INNODB,默认字符集为utf8:
DROP TABLE IF EXISTS table_name;
CREATE TABLE table_name(
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT ‘主键’,
name VARCHAR(20) NOT NULL COMMENT ‘姓名(不能为空)’,
phone CHAR(11) DEFAULT NULL COMMENT ‘手机号(默认为NULL)’,
hobby VARCHAR(255) DEFAULT NULL COMMENT ‘爱好(默认为NULL)’,
UNIQUE INDEX unique_phone_index(phone) COMMENT ‘创建唯一索引’,
INDEX name_index(name) COMMENT ‘为name字段创建普通索引’
)ENGINE=INNODB DEFAULT CHARSET=utf8;

  1. 查看表结构 DESCRIBE table_name;

例如查看表table_name的结构:DESCRIBE table_name;

  1. 删除指定表 DROP TABLE table_name;

例如删除表为table_name的表:DROP TABLE table_name;

  1. 查看某个库下现存的表 SHOW TABLES;
  2. 重命名表名 ALTER TABLE old_table RENAME new_table; 或者 RENAME TABLE old_table TO new_table;

例如将table_name重命名为merge_table:
ALTER TABLE table_name RENAME merge_table; 或者 RENAME TABLE table_name TO merge_table;

  1. 查看指定表存在的所有索引 SHOW KEYS FROM table_name;

例如查看表名为table_name所存在的索引: SHOW KEYS FROM table_name;

  1. 修改表默认存储引擎 ALTER TABLE table_name ENGINE = INNODB;
  2. 添加(或修改)表格注释 ALTER TABLE table_name COMMENT = ‘注释’

例如为名为table_name的表增加注释,注释该表是一个测试表:
ALTER TABLE table_name COMMENT = ‘测试表’;

  1. 更改表默认字符集 ALTER TABLE table_name CHARCTER SET = 字符集;

例如将表名为table_name的表默认字符集改为uft8mb4: ALTER TABLE table_name CHARCTER SET = utf8mb4;

  1. 更改某列名字但是不更改其定义 ALTER TABLE table_name RENAME COLUMN old_column_name TO new_column_name

例如将名为table_name的表将name字段改为alias: ALTER TABLE table_name RENAME COLUMN name TO alias;

  1. 更改某列定义但是不更改其名字 ALTER TABLE table_name MODIFY column_name column_type;

例如更改table_name的name字段为VARCHAR(100)并且不能为空:
ALTER TABLE table_name MODIFY name VARCHAR(100) NOT NULL;

  1. 更改某列的名字和定义 ALTER TALBE table_name CHANGE old_column_name new_column_name column_type;

例如修改table_name表的字段name为alias并且类型改为char(100)不能为空:
ALTER TABLE table_name CHANGE name alias char(100) not null;

  1. 向指定表增加字段 ALTER TABLE table_name ADD COLUMN new_column_name column_type;

例如向table_name表增加一个名为sex的字段,类型为char: ALTER TABLE table_name ADD COLUMN
sex char(1) NOT NULL;

  1. 向指定表删除某列 ALTER TABLE table_name DROP COLUMN column_name;

例如删除table_name的sex列: ALTER TABLE table_name DROP sex;

  1. 向指定表中的某个字段增加索引 ALTER TABLE table_name ADD INDEX index_name(column_name);

例如给table_name表的name字段增加一个索引,索引名为name_index:
ALTER TALBE table_name ADD INDEX name_index(name);

  1. 创建索引并添加到指定表中 CREATE INDEX index_name ON table_name(column);

例如为table_name的phone字段创建唯一索引:
CREATE UNIQUE INDEX create_phone_indexs ON table_name (phone);

  1. 删除指定索引 DROP INDEX index_name ON table_name;

例如删除table_name表phone字段的唯一索引:
DROP INDEX create_phone_indexs ON table_name


总结

关于开发中常用DDL操作就总结到这里,后续遇到将会更新文章内容,如果发现有误或者有更好的建议,欢迎留言谈论。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值