mysql常用DDL语句

该博客记录数据库基础操作学习笔记。包含创建数据库,介绍关键参数;给出建表语句完整示例;阐述修改表的操作,如重命名、增删列等;还提及索引操作,包括增加和删除索引。


mysql英文原版refman,详尽DDL见13.1 Data Definition Statements 传送门

一、创建数据库

  • 示例

    CREATE DATABASE IF NOT EXISTS dbname DEFAULT CHARSET utf8 COLLATE utf8_general_bin;
    
  • 关键参数说明:

    • 数据库名
    • 字符集 charset
    • 字符序/排序规则 collate

二、建表语句

  1. 完整示例

    --删除原表
    DROP TABLE IF EXISTS `person`;
    --建表
    

CREATE TABLE person (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(16) COLLATE utf8_bin NOT NULL COMMENT ‘姓名’,
sex enum(‘F’,‘M’) COLLATE utf8_bin DEFAULT NULL COMMENT ‘性别’,
pid varchar(32) COLLATE utf8_bin DEFAULT NULL COMMENT ‘身份id’,
birthday date DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

```
* 说明
	* 建表时可以指定表默认使用的引擎,字符集和字符序,每个char/varcharß字段可以单独设置这些属性

三、修改表

  1. 重命名表名

    格式:
    RENAME TABLE 原表名 TO 新表名;
    示例:
    RENAME TABLE person TO people;
    
    
  2. 新增列

    示例:给person表新增列address
    ALTER TABLE person ADD COLUMN address VARCHAR(255) COMMENT '地址' NOT NULL;
    
    
  3. 修改列

    示例:修改person表的sex列数据类型为enum
    ALTER TABLE person CHANGE COLUMN sex enum('M','F') NOT NULL;
    
    
  4. 新增注释

    示例:给表person增加注释[个人信息表]
    ALTER TABLE person COMMENT='个人信息表'
    
    
  5. 删除列

    示例:删除person表的birthday列
    ALTER TABLE person DROP COLUMN birthday;
    
    

四、索引

  1. 增加索引

    示例:给表person的pid创建唯一
    CREATE UNIQUE INDEX ind_person_pid ON person(pid);
    
    ----------------------------
    UNIQUE为索引类型,可替换索引类型为:
    UNIQUE|FULLTEXT|SPATIAL,mysql 支持的其他索引类型分别为primary key,非唯一索引(默认)
    
    
  2. 删除索引

    示例:删除表person的ind_person_pid索引
    DROP INDEX ind_person_pid ON person;
    
    
<think>我们已经有了用户的问题:如何在MySQL中查看表或数据库的DDL语句。同时,我们有一些关于DDL的背景知识引用。用户需要的是查询DDL语句的方法,即如何获取已经存在的表或数据库的创建语句。根据MySQL的知识,我们知道:1.对于数据库:可以使用`SHOWCREATEDATABASE`语句来查看创建数据库的DDL。2.对于表:可以使用`SHOWCREATETABLE`语句来查看创建表的DDL。引用[3]提到了创建数据库和表的DDL语句(如`CREATEDATABASE`和`CREATETABLE`),但用户需要的是查看已经存在的数据库或表的DDL语句。引用[4]中提到了修改表的DDL(`ALTERTABLE`),但同样没有直接给出查看DDL的方法。因此,我们需要直接回答用户的问题,提供查看DDL的语法。步骤:1.查看数据库的创建DDL:使用`SHOWCREATEDATABASE数据库名;`2.查看表的创建DDL:使用`SHOWCREATETABLE表名;`另外,我们也可以使用一些其他工具或方法(如mysqldump)来获取,但用户的问题是在MySQL中查看,所以直接使用SQL语句。注意:回答时,我们需要用行内公式或独立公式来展示SQL语句(根据系统指令,行内数学表达式用$...$,但系统指令主要针对数学表达式,而SQL代码我们通常用代码块。回顾系统指令示例示例中代码是用代码块展示的。因此,我们应该用代码块展示SQL语句。)但是,系统指令要求:1.行内数学表达式用$...$(适用于变量、公式等)2.独立公式用$$...$$并单独成段(数学公式)3.对于代码,示例中使用了```python...```,所以我们可以用代码块。因此,在回答中,对于SQL语句,我们使用代码块。另外,根据要求,要生成相关问题。结构:1.首先回答如何查看数据库的DDL2.然后回答如何查看表的DDL3.可以给出一个实际的例子(如果需要的话,但用户没有要求案例,所以可以简单说明)4.生成相关问题注意:用户引用的内容并不是直接解决这个问题,所以我们主要根据自己的知识来回答,但可以引用一些作为背景(如引用中提到的DDL定义等,但用户问题聚焦在查询方法上)。由于用户之前的对话历史中可能没有相关回答,所以我们可以直接开始。</think> ### 如何在 MySQL 中查看表或数据库的 DDL 语句 #### 1. 查看数据库的 DDL 语句 使用 `SHOW CREATE DATABASE` 命令: ```sql SHOW CREATE DATABASE `数据库名`; ``` 执行后会显示创建该数据库的完整 SQL 语句,包括字符集等配置参数[^3]。 #### 2. 查看表的 DDL 语句 使用 `SHOW CREATE TABLE` 命令: ```sql SHOW CREATE TABLE `表名`; ``` 结果包含完整的建表语句,包括字段定义、索引、约束等所有结构信息[^1][^3]。 #### 3. 其他相关方法 - **信息模式查询**:通过 INFORMATION_SCHEMA 系统表获取元数据 ```sql SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '数据库名' AND TABLE_NAME = '表名'; ``` - **命令行工具**:使用 mysqldump 导出结构 ```bash mysqldump -d -u用户 -p 数据库名 表名 ``` #### 4. 查看表结构变更历史 对于使用 `ALTER TABLE` 修改的表结构(如引用[4]中的字段添加操作),MySQL 默认不存储历史 DDL,但可通过 binlog 日志追溯: ```sql SHOW BINLOG EVENTS; # 需开启二进制日志 ``` > ⚠️ 注意:需要用户具备 `SHOW VIEW` 权限才能执行这些命令[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值