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语句的使用 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • linux 后台运行node服务指令方法

    要在Linux系统中后台运行node服务,需要用到以下两个重要的指令: nohup:nohup命令可以在程序后台运行,并且把程序的输出重定向到nohup.out文件中,防止进程被终止。 &:在Linux终端中,如果在命令后面添加 &,那么该命令将在后台运行。 下面是具体的步骤: 打开终端并进入工作目录。 输入以下指令,用于后台运行node服务…

    database 2023年5月22日
    00
  • 解决java.sql.SQLException: validateConnection false问题的方法汇总(最全)

    关于“解决java.sql.SQLException: validateConnection false问题的方法汇总(最全)” 的完整攻略,以下是具体步骤: 问题描述 在使用JDBC连接数据库的过程中,我们可能会遇到java.sql.SQLException: validateConnection false的异常。这种异常通常是由于连接池配置不当、数据库…

    database 2023年5月21日
    00
  • SQL Server 游标语句 声明/打开/循环实例

    SQL Server 中的游标是一种用于遍历数据集中结果集中的每一行数据的数据库对象。游标可以通过声明、打开和循环步骤来使用。在 SQL Server 中,有四种类型的游标,包括静态游标、键定游标、动态游标和快速转发游标。下面是游标的完整攻略: 1. 声明游标 声明游标是指定义游标对象及其属性的过程。SQL Server 中游标的一般语法如下: — 声明游…

    database 2023年5月21日
    00
  • Flume+Kafka+Storm+Redis 大数据在线实时分析

    1、实时处理框架 即从上面的架构中我们可以看出,其由下面的几部分构成: Flume集群 Kafka集群 Storm集群 从构建实时处理系统的角度出发,我们需要做的是,如何让数据在各个不同的集群系统之间打通(从上面的图示中也能很好地说明这一点),即需要做各个系统之前的整合,包括Flume与Kafka的整合,Kafka与Storm的整合。当然,各个环境是否使用集…

    Redis 2023年4月13日
    00
  • SQL SERVER 分组求和sql语句

    下面我来详细讲解 SQL SERVER 分组求和 sql 语句的完整攻略。 什么是分组求和? 分组求和是对数据库表中的数据进行分类统计的方法。通过指定一个或多个列作为“分组”,将数据分为多个组别,并对每个组别应用一个求和函数来计算它们的总和。 分组求和的语法 SQL SERVER 中的分组求和的语法如下: SELECT column_name1, SUM(c…

    database 2023年5月21日
    00
  • 如何使用Python在MySQL中使用时间戳?

    在MySQL中,可以使用时间戳来存储日期和时间信息。在Python中,可以使用MySQL连接来执行时间戳查询。以下是在Python中使用时间戳的完整攻略,包括时间戳的基本语法、使用时间戳的示例以及如何在中使用时间戳。 时间戳的基本语法 在MySQL中,可以使用TIMESTAMP数据类型来存储日期和时间信息。以下是创建TIMESTAMP`列的基本语法: CRE…

    python 2023年5月12日
    00
  • Sql Server 应用程序的高级Sql注入第1/2页

    让我来详细讲解一下 “Sql Server 应用程序的高级Sql注入第1/2页” 的攻略。这篇文章主要涉及 SQL 注入攻击的高级技术,是一种比较危险的攻击方式,需要进行充分的防范。 以下是详细攻略: 第1页: 进行 SQL 注入攻击的基本步骤 这一部分内容主要介绍了进行 SQL 注入攻击的基本步骤,其中主要包括: 寻找 SQL 注入点 组合 SQL 语句 …

    database 2023年5月21日
    00
  • MySQL字段自增自减的SQL语句示例介绍

    下面是“MySQL字段自增自减的SQL语句示例介绍”的完整攻略: 什么是MySQL字段自增自减? 在MySQL中,我们可以设置表的某个字段为“自增长”(Auto Increment)或“自减少”(Auto Decrement)。当插入一条新的记录时,这个字段的值会自动增加或减少。这在处理ID或序号等场合非常有用。 自增 创建自增字段 要创建一个自增字段,可以…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部