MySQL中DDL语句是指用于定义数据库、表、列、索引等各种对象的语句,包括创建、删除、修改等操作。下面我们将从以下几个方面详细讲解MySQL DDL语句的使用。
MySQL中DDL语句是指用于定义数据库、表、列、索引等各种对象的语句,包括创建、删除、修改等操作。下面我们将从以下几个方面详细讲解MySQL DDL语句的使用。
创建数据库
创建数据库的语句如下所示:
CREATE DATABASE IF NOT EXISTS mydb;
其中,IF NOT EXISTS为可选参数,如果指定则表示只有当该数据库不存在时才会创建。
创建表
创建表的语法如下所示:
CREATE TABLE IF NOT EXISTS stu_info (
id INT UNSIGNED AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
age TINYINT UNSIGNED NOT NULL,
gender ENUM('男','女') NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
该语句创建了一个名为stu_info的表,包含id、name、age、gender等列,其中id为主键。可选参数IF NOT EXISTS、ENGINE和DEFAULT CHARSET分别表示如果表已经存在则不再重新创建、使用InnoDB引擎存储,并采用utf8mb4字符集。
修改表
修改表的语法比较复杂,常见的修改操作包括增加列、修改列属性、删除列、重命名列等,示例如下:
--增加列
ALTER TABLE stu_info ADD COLUMN email VARCHAR(50) NOT NULL DEFAULT '';
--修改列属性
ALTER TABLE stu_info MODIFY COLUMN name VARCHAR(30) NOT NULL DEFAULT '';
--删除列
ALTER TABLE stu_info DROP COLUMN email;
--重命名列
ALTER TABLE stu_info CHANGE COLUMN gender sex ENUM('男','女','不详') NOT NULL;
删除表
删除表的语句如下所示:
DROP TABLE IF EXISTS stu_info;
其中,IF EXISTS为可选参数,如果指定则表示只有当表存在时才会删除。
创建索引
创建索引的语句如下所示:
CREATE INDEX idx_name ON stu_info (name);
其中,idx_name为索引名称,stu_info为表名,name为要创建索引的列名。
示例
下面我们通过一个示例来演示DDL语句的使用。假设我们要创建一个名为mydb的数据库,并在其中创建一个名为stu_info的表,表包含id、name、age、gender等列。我们可以通过以下代码来实现:
CREATE DATABASE IF NOT EXISTS mydb;
USE mydb;
CREATE TABLE IF NOT EXISTS stu_info (
id INT UNSIGNED AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
age TINYINT UNSIGNED NOT NULL,
gender ENUM('男','女') NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
假设我们要向stu_info表中增加email列并创建相应的索引。我们可以通过以下代码来实现:
ALTER TABLE stu_info ADD COLUMN email VARCHAR(50) NOT NULL DEFAULT '';
CREATE INDEX idx_email ON stu_info (email);
以上就是MySQL DDL语句的使用攻略。通过学习和掌握DDL语句,我们可以灵活地对数据库的结构进行管理,并有效提升数据库的性能和安全性。
本文标题为:MySQL ddl语句的使用


基础教程推荐
- 浅谈PostgreSQL表分区的三种方式 2023-07-21
- 关于MySQL的存储过程与存储函数 2023-07-27
- Windows故障转移群集 和 SQLServer AlwaysOn 配置搭建详细教程 2023-07-29
- 浅谈一下MyISAM和InnoDB存储引擎的区别 2023-07-27
- oracle中如何删除亿级数据 2023-07-23
- redis分片机制 2023-09-13
- 深入理解MySQL数据类型的选择优化 2022-08-31
- 关于MySQL与Golan分布式事务经典的七种解决方案 2023-08-06
- mysql远程登录root账户报错1045的解决 2023-07-26
- Oracle面试题及答案超全整理 2023-07-24