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


结尾

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

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

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

相关推荐
Databend1 小时前
从 Snowflake 到 Databend Cloud:全球游戏平台借助 Databend 实现实时数据处理
数据库
凭君语未可1 小时前
MySQL中的事务隔离级别有哪些
数据库·mysql
笑远1 小时前
Oracle Data Guard(数据保护)详解
数据库·oracle
拾柒SHY1 小时前
iwebsec-SQL数字型注入
数据库·sql·web安全·网络安全
Pandaconda1 小时前
【后端开发面试题】每日 3 题(十五)
数据库·分布式·后端·python·面试·后端开发·幂等性
运维小贺2 小时前
MySQL超详细介绍(近2万字)
运维·数据库·mysql
猫咪-95272 小时前
Mysql表的简单操作
服务器·数据库·mysql
Dreamboat-L3 小时前
深入解析 SQL 事务:确保数据一致性的关键
数据库·sql·oracle
tan_jianhui3 小时前
用Maven创建只有POM文件的项目
java·数据库·maven
小狗很可爱3 小时前
将Django连接到mysql
android·mysql·django