【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。


结尾

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

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

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

相关推荐
qq_141826973233 分钟前
python通过curl访问deepseek的API调用案例
java·数据库·python
可喜~可乐1 小时前
C# SQLite高级功能示例
数据库·sql·sqlite·c#
cooldream20091 小时前
深入理解主从数据库架构与主从复制
数据库·oracle·数据库架构·系统架构师
Eternity......2 小时前
spark MySQL数据库配置
数据库·mysql·spark
Freedom℡2 小时前
使用scp命令拷贝hadoop100中文件到其他虚拟机中
数据库·hadoop·spark
Qdgr_2 小时前
电厂除灰系统优化:时序数据库如何降低粉尘排放
数据库·时序数据库
慧一居士2 小时前
Memcached 服务搭建和集成使用的详细步骤示例
数据库·架构·nosql·memcached
脑子慢且灵2 小时前
MySQL:关系模型的基本理论
数据库·sql·mysql
码农飞哥2 小时前
互联网大厂Java求职面试实战:Spring Boot与微服务场景深度解析
java·数据库·spring boot·安全·微服务·消息队列·互联网医疗
Ai 编码助手2 小时前
可视化+智能补全:用Database Tool重塑数据库工作流
数据库