MySQL从零开始了解数据库开发之表的操作解析

 更新时间:2025年09月06日 10:13:38   作者:叫我龙翔  
这篇文章介绍了MySQL中数据表的基本操作,包括创建、修改和删除表的相关语法和注意事项,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

今天我们来学习数据表的操作

创建数据表

创建数据表的语法:

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] table_name
[
(create_definition,...)
][table_options][select_statement]

说明:

  • TEMPORARY:表示创建的表是一个临时表
  • IF NOT EXISTS:避免创建重复的表
  • create_definition:这是表的列属性,MySQL要求创建表时至少存在一列
  • table_options:表的一些特性参数,其中大多数选项涉及的是表数据的存储方式和储存位置,比如ENGINE指定储存引擎,多数情况下用户无需指明表选项
  • select_statement:SELECT语句描述部分,用于快速创建表

接下来来看白属性create_definition的具体格式:

col_name type[NOT NULL | NULL] [DEFAULT default_value][AUTO_INCREMENT][PRIMARY KEY][reference_definition]
  • col_name:列名称
  • type:字段类型
  • NOT NULL | NULL :指出列是否允许为空值,系统一般默认允许为空值,所以当不允许为空值时,必须使用NOT NULL
  • DEFAULT default_value:表示列的默认值
  • AUTO_INCREMENT:表示是否自动编号,每个表只能有一个 AUTO_INCREMENT列,并且必须被索引
  • PRIMARY KEY:是否为主键,一个表只能有一个主键,如果表中没有PRIMARY KEY ,而某些应用程序需要主键,那么MySQL将会返回第一个没有任何NULL列的UNIQUE键作为主键
  • reference_definition:为字段添加注释

查看表结构

对于一个创建成功的数据表可以使用

SHOW [FULL] COLUMNS FROM 数据表名 [FROM 数据库名]
# 或者是
SHOW [FULL] COLUMNS FROM 数据库名.数据表名

进行查看。同样也可以选择使用DESCRIBE语句查看数据表结构

DESCRIBE 数据表名 [列名]

修改数据表结构

修改表结构是指增加/修改/删除字段,修改字段名/类型以及修改表名,这可以使用ALTER TABLE语句来实现,语法格式如下。

ALTER [IGNORE] TABLE 数据表名 alter_spec[,alter_spec]... | table_options

说明:

  • IGNORE:可选项,表示如果出现重复关键的行,则执行一行,其他重复的行被删除。
  • 数据表名:用于指定要修改的数据表的名称。
  • alter_spec:用于定义要修改的内容,其语法格式为
    ADD [COLUMN] col_name create_definition [FIRST | AFTER col_name]           -- 添加新列,可指定位置(FIRST表示第一列,AFTER表示在某列之后)
    ADD [COLUMN] ( col_name create_definition, ...)                              -- 同时添加多列
    ADD INDEX [index_name] (index_col_name, ...)                                    -- 添加普通索引
    ADD PRIMARY KEY (index_col_name, ...)                                          -- 添加主键
    ADD UNIQUE [INDEX] [index_name] (index_col_name, ...)                           -- 添加唯一索引
    ALTER [COLUMN] columnname {SET DEFAULT literal | DROP DEFAULT}               -- 修改列的默认值(设置或删除)
    CHANGE [COLUMN] old_col_name new_column_name col_definition [FIRST | AFTER col_name]  -- 修改列名和列定义,可指定位置
    MODIFY [COLUMN] col_name col_definition [FIRST | AFTER col_name]      -- 修改列定义,可指定位置
    DROP [COLUMN] col_name                                                     -- 删除指定列
    DROP PRIMARY KEY                                                             -- 删除主键
    DROP INDEX index_name                                                         -- 删除索引
    RENAME [TO] new_table_name                                                     -- 重命名表

重命名表

重命名表的语法为:

RENAME TABLE 数据表名1 to 数据表名2

修改数据表名的操作与修改数据库名一样,不建议使用,因为底层一旦修改啊,上层的所有业务都要进行修改,可能会造成意料之外的问题。

复制表

创建表的CREATE TABLE语句还有另一种语法结构:在一个已经存在的数据表的基础上创建该表的备份,也就是复制表。这种语法的格式如下

CREATE TABLE [IF NOT EXISTS] 数据表名 , {LIKE 源数据表名 | (LIKE 源数据表名)}

该语句的功能是根据源数据表生成一个数据表。注意这个数据表只是复制结构,并没有拷贝内容:

如果要拷贝内容的话可以使用:

CREATE TABLE 数据表名 AS SELECT * from 源数据表

删除表

删除表的语法很简单:

DROP TABLE [IF EXISTS]

实际使用时避免真正删除数据表!

到此这篇关于MySQL从零开始了解数据库开发 --- 表的操作的文章就介绍到这了,更多相关mysql表的操作内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Mysql my.cnf配置文件参数详解

    Mysql my.cnf配置文件参数详解

    Linux 操作系统中 MySQL 的配置文件是 my.cnf,一般会放在 /etc/my.cnf 或 /etc/mysql/my.cnf 目录下,这篇文章主要介绍了Mysql my.cnf配置文件参数详解,需要的朋友可以参考下
    2023-11-11
  • Mysql支持的数据类型(列类型总结)

    Mysql支持的数据类型(列类型总结)

    MySQL支持大量的列类型,它可以被分为3类:数字类型、日期和时间类型以及字符串(字符)类型。本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述
    2016-12-12
  • MySQL 日期时间加减的示例代码

    MySQL 日期时间加减的示例代码

    本文主要介绍了MySQL日期时间加减,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • MySQL5.7 集群配置的步骤

    MySQL5.7 集群配置的步骤

    这篇文章主要介绍了MySQL5.7 集群配置的步骤,帮助大家更好的理解和学习使用MySQL,感兴趣的朋友可以了解下
    2021-03-03
  • Mysql中条件字段有索引,但使用不了索引的几种场景详解

    Mysql中条件字段有索引,但使用不了索引的几种场景详解

    这篇文章主要介绍了Mysql中条件字段有索引,但使用不了索引的几种场景,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • mysql kill进程后出现killed死锁问题及解决

    mysql kill进程后出现killed死锁问题及解决

    这篇文章主要介绍了mysql kill进程后出现killed死锁问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • 解决数据库有数据但查询出来的值为Null问题

    解决数据库有数据但查询出来的值为Null问题

    这篇文章主要介绍了解决数据库有数据但查询出来的值为Null问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • MySQL在哪些情况下不使用索引的示例

    MySQL在哪些情况下不使用索引的示例

    尽管索引可以显著提高数据库的查询性能,但在某些情况下,MySQL可能不会使用索引,本文就来介绍一下MySQL在哪些情况下不使用索引,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • MySQL中使用case when 语句实现多条件查询的方法

    MySQL中使用case when 语句实现多条件查询的方法

    今天在一个应用中使用到了一个比较特殊的数据查询要求。需要的朋友可以参考下。
    2010-12-12
  • mysql blocked because of many connection errors解决记录

    mysql blocked because of many connection errors解决记录

    这篇文章主要为大家介绍了mysql blocked because of many connection errors解决方法记录,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10

最新评论