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语句,我们可以灵活地对数据库的结构进行管理,并有效提升数据库的性能和安全性。