【MySQL】表的操作

目录

  • 一、创建表
  • 二、查看表
    • [2.1 查看当前数据库中的所有表](#2.1 查看当前数据库中的所有表)
    • [2.2 查看具体一张表的详细信息](#2.2 查看具体一张表的详细信息)
    • [2.3 查看一张表创建时的命令](#2.3 查看一张表创建时的命令)
  • 三、删除表
  • 四、修改表
    • [4.1 增加字段(增加列)](#4.1 增加字段(增加列))
    • [4.2 修改字段(修改表的列属性)](#4.2 修改字段(修改表的列属性))
    • [4.3 删除字段(删除表指定列)](#4.3 删除字段(删除表指定列))
    • [4.4 修改表名称](#4.4 修改表名称)
  • 结尾

一、创建表

cpp 复制代码
CREATE TABLE [IF NOT EXISTS] table_name (
	field1 datatype,
	field2 datatype,
	field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;

说明

  • field 表示列名
  • datatype 表示列的类型
  • character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
  • collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准

在下图中,创建了一个数据库usr,并创建了一个表usr1,当表被创建完毕后,我们发现系统中创建了一些文件,这些文件就是因为创建表而产生的。当然使用不同存储引擎创建的表,创建对应的文件是不一样的。



二、查看表

2.1 查看当前数据库中的所有表

cpp 复制代码
show tables

2.2 查看具体一张表的详细信息

cpp 复制代码
desc 表名

当我们查看一张表的详细信息时,会获取到表中所有的列名、字段对应的类型、是否允许为空等信息,这些内容会在后面讲述。


2.3 查看一张表创建时的命令

cpp 复制代码
show create table usr1 \G

这里的\G可以替换为;,但是\G输出的信息更加适合我们阅读。

我们发现这里的命令和我们创建表的命令并不是一模一样的,这是因为用户在mysql中下达的指令,会在mysqld中进行词法语法分析,然后对用户的指令进行优化


三、删除表

cpp 复制代码
drop table 表名

当数据库中将一个表删除后,在系统中对应的文件也会被删除。


四、修改表

4.1 增加字段(增加列)

cpp 复制代码
ALTER TABLE tablename 
ADD (column datatype [DEFAULT expr][,column datatype]...);

说明:

  • tablename 表示表的名称
  • column 表示列名
  • datatype 表示数据类型

在下图中,我首先在表中插入了两行数据,然后再在表中增加了一个字段,也就是增加了一列,默认在原表中存在的数据,在新增的这一列中的数据都是为空的。


4.2 修改字段(修改表的列属性)

cpp 复制代码
ALTER TABLE tablename 
MODIFY (column datatype [DEFAULT expr][,column datatype]...);

说明:

  • tablename 表示表的名称
  • column 表示列名
  • datatype 表示修改后字段的数据类型

在下图中,我就演示将字段name的数据类型由varchar(32)改为了varchar(64),当我们查看这张表创建时的命令时,我们发现它关于name的数据类型发生了改变,并且没有了注释,这是因为使用 ALTER TABLE 更改了字段的属性但没有包括注释,那么生成的创建语句中将不会包含该字段的注释,所以有需要的情况下,每次修改字段属性时都包括 comment 子句。


4.3 删除字段(删除表指定列)

cpp 复制代码
ALTER TABLE tablename DROP (column);

说明:

  • tablename 表示表的名称
  • column 表示列名

在下图中,我就演示了将表usr1中的birthday字段删除,再次查看表的详细信息时,字段birthday确实没了,并且连带着这个列的所有的信息也全部被删除了。


4.4 修改表名称

cpp 复制代码
ALTER TABLE oldtablename RENAME TO newtablename ;

说明:

  • oldtablename 表示旧的表的名称
  • newtablename 表示新的表的名称
  • RENAME TO中的TO可以省略

在下图中,我就演示了将表usr1的表名由usr1修改为了user1,并且在修改命令中省略了TO。


结尾

如果有什么建议和疑问,或是有什么错误,大家可以在评论区中提出。

希望大家以后也能和我一起进步!!🌹🌹

如果这篇文章对你有用的话,希望大家给一个三连支持一下!!🌹🌹

相关推荐
一 乐6 小时前
婚纱摄影网站|基于ssm + vue婚纱摄影网站系统(源码+数据库+文档)
前端·javascript·数据库·vue.js·spring boot·后端
1.14(java)7 小时前
SQL数据库操作:从CRUD到高级查询
数据库
Full Stack Developme8 小时前
数据库索引的原理及类型和应用场景
数据库
IDC02_FEIYA9 小时前
SQL Server 2025数据库安装图文教程(附SQL Server2025数据库下载安装包)
数据库·windows
辞砚技术录9 小时前
MySQL面试题——联合索引
数据库·面试
萧曵 丶10 小时前
MySQL 主键不推荐使用 UUID 的深层原因
数据库·mysql·索引
小北方城市网10 小时前
分布式锁实战指南:从选型到落地,避开 90% 的坑
java·数据库·redis·分布式·python·缓存
毕设十刻10 小时前
基于Vue的人事管理系统67zzz(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
TDengine (老段)12 小时前
TDengine Python 连接器入门指南
大数据·数据库·python·物联网·时序数据库·tdengine·涛思数据
萧曵 丶12 小时前
事务ACID特性详解
数据库·事务·acid