MySQL ddl语句的使用

2023-12-06数据库
16

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

The End

相关推荐

liunx mysql root账户提示:Your password has expired. To log in yo
liunx mysql root账户提示:Your password has expired. To log in you must change it using a client that supports expired passwords,要怎么操作呢? 1、修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1 这一行配置让 mysqld 启动...
2024-12-24 数据库
149

快速解决PostgreSQL中的Permission denied问题
下面是针对PostgreSQL中的权限问题的完整攻略。...
2023-12-07 数据库
3413

MySQL时间类型和模式详情
MySQL是一种流行的关系型数据库系统,它提供了多种时间类型和模式,用于存储和处理时间数据。本文将详细介绍MySQL时间类型和模式的详细攻略。...
2023-12-07 数据库
15

VMware中安装CentOS7(设置静态IP地址)并通过docker容器安装mySql数据库(超详细教程)
首先在官网下载CentOS7镜像,并在VMware虚拟机中新建一台CentOS7虚拟机,将镜像挂载到虚拟机中并启动。...
2023-12-07 数据库
11

SpringBoot项目报错:”Error starting ApplicationContext̷
首先,当我们使用Spring Boot开发项目时,可能会遇到Error starting ApplicationContext错误,一般这种错误是由于配置文件、依赖包或者代码逻辑等原因引起的。下面我将提供一条包含两条详细示例说明的完整攻略,用来解决上述问题。...
2023-12-07 数据库
489

Postgresql 赋予用户权限和撤销权限的实例
下面我将详细讲解如何为PostgreSQL数据库中的用户授予权限和撤销权限,包括两个实例。...
2023-12-07 数据库
30