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日

相关文章

  • ubuntu系统中安装mysql5.6(通过二进制)

    下面是详细讲解 Ubuntu 系统中安装 MySQL 5.6 的完整攻略,通过二进制文件进行安装。 1. 下载 MySQL 5.6 的二进制文件 可以通过 MySQL 官方网站下载 MySQL 5.6 的二进制文件。在这里,我们需要下载 Ubuntu 18.04 的二进制文件。 命令行中执行以下命令: sudo wget https://dev.mysql.…

    database 2023年5月22日
    00
  • C#连接SQL Sever数据库与数据查询实例之数据仓库详解

    C#连接SQL Server数据库与数据查询实例之数据仓库详解 概述 在C#应用程序中,连接SQL Server数据库和进行数据查询是非常常见的操作。本文将详细介绍如何进行C#与SQL Server数据库的连接,并进行简单的数据查询。 连接SQL Server数据库 首先,我们需要引入System.Data.SqlClient命名空间,因为这个命名空间中包含…

    database 2023年5月21日
    00
  • Mysql 执行一条语句的整个过程详细

    Mysql 执行一条语句的整个过程可以分为以下几个步骤: 客户端发送 SQL 语句到服务器,其中包括数据库名、表名、操作类型等信息。 服务器接收到 SQL 语句后,解析 SQL 语句,生成执行计划。 服务器根据执行计划执行 SQL 语句,包括查询、插入、更新、删除等操作。 执行完成后,服务器将结果返回给客户端。 下面分别以查询和插入两个例子来详细讲解整个过程…

    database 2023年5月21日
    00
  • mysql8.0.20配合binlog2sql的配置和简单备份恢复的步骤详解

    mysql8.0.20配合binlog2sql的配置和简单备份恢复的步骤详解 MySQL是常用的开源关系型数据库管理系统,在使用MySQL进行数据管理的过程中,经常需要进行数据备份和恢复操作,以保障数据的安全性和稳定性。其中,binlog2sql是一种常见的MySQL备份恢复工具,可以将二进制日志文件binlog转换成SQL语句,并执行这些SQL语句,生成一…

    database 2023年5月21日
    00
  • 详解SQL死锁检测的方法

    详解SQL死锁检测的方法 什么是SQL死锁 SQL死锁是指两个或多个事务在互相等待对方所占用的资源时,造成彼此都无法继续执行的情况。当没有外力干涉时,死锁情况将会一直持续下去,导致性能下降,任务无法完成,甚至是应用崩溃。 如何检测SQL死锁 在SQL Server中,可以通过以下几种方式检测SQL死锁: 1. SQL Server Profiler 通过SQ…

    database 2023年5月21日
    00
  • MySQL数据库的事务和索引详解

    MySQL是一种关系型数据库管理系统,支持事务处理和索引。在使用MySQL开发应用程序时,理解事务和索引的概念非常重要。下面是MySQL数据库的事务和索引的详细攻略。 事务 事务是一系列数据库操作的集合,要么全部成功,要么全部失败。MySQL支持基于ACID规则的事务处理。ACID是指原子性(Atomicity)、一致性(Consistency)、隔离性(I…

    database 2023年5月19日
    00
  • Linux下的高可用性方案研究

    Linux下的高可用性方案研究 什么是高可用性? 高可用性(High Availability)是指系统或者服务能够在长时间内不间断的运行,并提供高水平的性能和可用性。为了达到高可用性,需要在系统或者服务中设计和实现冗余和负载均衡等机制,以保证即使出现故障,仍然可以保持系统或者服务的运行和提供服务。 高可用性方案 高可用性方案通常包括以下几个方面: 负载均衡…

    database 2023年5月22日
    00
  • MySQL索引失效的几种情况详析

    MySQL索引失效的几种情况详析 一、全值匹配被模糊查询所取代 在使用MySQL查询时,如果需要使用索引进行优化查询,应当尽可能的使用全值匹配的方式进行查询,而不是使用模糊查询。因为模糊查询无法利用索引,会导致索引失效。例如: — 使用全值匹配查询 SELECT * FROM users WHERE username=’Tom’; — 使用模糊查询 SE…

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