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


结尾

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

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

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

相关推荐
小陈工2 小时前
Python Web开发入门(十七):Vue.js与Python后端集成——让前后端真正“握手言和“
开发语言·前端·javascript·数据库·vue.js·人工智能·python
0xDevNull6 小时前
MySQL数据冷热分离详解
后端·mysql
科技小花6 小时前
数据治理平台架构演进观察:AI原生设计如何重构企业数据管理范式
数据库·重构·架构·数据治理·ai-native·ai原生
一江寒逸6 小时前
零基础从入门到精通MySQL(中篇):进阶篇——吃透多表查询、事务核心与高级特性,搞定复杂业务SQL
数据库·sql·mysql
D4c-lovetrain6 小时前
linux个人心得22 (mysql)
数据库·mysql
阿里小阿希7 小时前
CentOS7 PostgreSQL 9.2 升级到 15 完整教程
数据库·postgresql
荒川之神7 小时前
Oracle 数据仓库雪花模型设计(完整实战方案)
数据库·数据仓库·oracle
做个文艺程序员7 小时前
MySQL安全加固十大硬核操作
数据库·mysql·安全
不吃香菜学java7 小时前
Redis简单应用
数据库·spring boot·tomcat·maven
一个天蝎座 白勺 程序猿7 小时前
Apache IoTDB(15):IoTDB查询写回(INTO子句)深度解析——从语法到实战的ETL全链路指南
数据库·apache·etl·iotdb