【MySQL】表操作

表操作

一、创建表

1、语句

sql 复制代码
CREATE TABLE 表名 (
    列名1 数据类型 [约束条件],
    列名2 数据类型 [约束条件],
    ...
    [表选项]
);

2、语句介绍

  • CREATE TABLE:创建表的SQL命令。
  • 表名:表的名称,必须是唯一的,并且符合MySQL的命名规则(通常只能包含字母、数字和下划线,不能以数字开头)。
  • 列名:表中的列(字段)名称,每个列都有一个相应的数据类型和可选的约束条件。
  • 数据类型:定义列中数据的类型,如INT(整数)、VARCHAR(可变长度字符串)、DATE(日期)等。
  • 约束条件:可选的,用于限制列中的数据,如NOT NULL(非空)、UNIQUE(唯一)、PRIMARY KEY(主键)、FOREIGN KEY(外键)、AUTO_INCREMENT(自动递增)等。
  • 表选项:可选的,用于设置表的附加属性,如字符集、排序规则和存储引擎等。

3、注意事项

  • 表名和列名尽量使用小写字母和下划线,以符合常见的命名规范。
  • 在设计表结构时,应充分考虑数据的完整性和一致性,合理使用约束条件。
  • 根据具体需求选择合适的存储引擎,例如InnoDB(默认)和MyISAM。

4、介绍

  • 在MySQL中,创建表(table)是数据库设计和数据组织的基础步骤之一。表是存储结构化数据的主要方式,类似于Excel中的工作表或关系数据库中的关系。
  • 默认情况下,使用InnoDB存储引擎在默认数据库中创建表。如果表存在、没有默认数据库或数据库不存在,则会发生错误。
  • MySQL对表的数量没有限制。底层文件系统可能对表示表的文件数量有限制。单个存储引擎可能会施加特定于引擎的约束。InnoDB最多允许40亿个表。

5、示例


二、查看表结构

1、语句

sql 复制代码
DESCRIBE table_name;
  • table_name是要查看的表的名称。

2、介绍

  • 在MySQL中,DESCRIBE命令(或其简写形式DESC)是一个非常实用的工具,用于获取有关数据库表的详细结构信息。该命令仅适用于表对象,不能用于视图、存储过程、函数等其他数据库对象。

3、返回的信息

信息 说明
字段名称(Field) 表的每一列的名称
数据类型(Type) 每列中存储数据的类型,例如INT、VARCHAR、DATE等
是否允许空值(Null) 指示每列是否允许存储NULL值。
键(Key) 指示列是否为主键(PRI)、外键或索引的一部分。如果列是主键,则显示为PRI;如果是索引的一部分,则可能显示为MUL(表示该列在多个索引中出现)或其他相关标识
默认值(Default) 插入新行时,如果未指定列值,则使用默认值。如果列没有默认值,则此列可能为空
附加信息(Extra) 有关列的其他信息,例如是否允许自动增量(auto_increment)、是否具有唯一性约束等

4、示例

  • 添加数据

三、添加字段

1、语句

sql 复制代码
ALTER TABLE table_name
ADD COLUMN column_name column_definition [FIRST | AFTER existing_column];

2、语句介绍

  • table_name:要修改的表的名称。
  • column_name:要添加的新字段的名称。
  • column_definition:新字段的定义,包括数据类型和其他约束(如 NOT NULL、DEFAULT 值等)。
  • FIRST:可选,表示将新字段添加到表的第一个位置。
  • AFTER existing_column:可选,表示将新字段添加到existing_column之后。

3、示例

四、修改

1、语句

sql 复制代码
-- 使用 MODIFY COLUMN 修改字段定义
ALTER TABLE table_name
MODIFY COLUMN column_name new_column_definition [FIRST | AFTER existing_column];

-- 使用 CHANGE COLUMN 修改字段名称和定义
ALTER TABLE table_name
CHANGE COLUMN old_column_name new_column_name new_column_definition [FIRST | AFTER existing_column];

2、语句介绍

  • MODIFY COLUMN 和 CHANGE COLUMN 子句都可以修改字段。
  • MODIFY COLUMN 可以改变字段的定义,但不能改变字段的名称。
  • CHANGE COLUMN 可以改变字段的名称和定义。

3、示例



五、删除

1、语句

sql 复制代码
ALTER TABLE table_name
DROP COLUMN column_name;

2、示例

六、修改表名

1、语句

sql 复制代码
RENAME TABLE old_table_name TO new_table_name;
ALTER TABLE old_table_name RENAME TO new_table_name;

2、语句介绍

  • old_table_name:要修改的表的当前名称。
  • new_table_name:修改后的新名称。
  • 上方两条语句都能达到修改表名的目的。在使用ALTER TABLE的语句中,TO可以省略。

3、示例

七、删除表

1、语句

sql 复制代码
DROP TABLE table_name;

2、示例

八、注意事项

  • 备份数据:在执行这些操作之前,最好备份这些数据,以防万一操作出错导致数据丢失。
  • 权限:确保执行这些操作的时候,执行者具有足够的权限来修改表结构。
  • 兼容性:不同版本的MySQL可能对某些语法有不同的支持,确保使用的语法与使用的MySQL版本兼容。
  • 依赖关系:检查是否有其他数据库对象(如视图、触发器、存储过程等)依赖于要修改的表名或要删除的表。如果有,可能需要相应地更新或删除这些依赖对象。
  • 事务处理:如果操作是在事务中进行的,请确保已了解这些操作对事务的影响。在某些情况下,RENAME TABLE 和 DROP TABLE 语句可能会隐式地提交当前事务。

本文到这里就结束了,如有错误或者不清楚的地方欢迎评论或者私信

本文只是在学习过程中所做的总结,不会涉及过深的概念

创作不易,如果觉得博主写得不错,请点赞、收藏加关注支持一下💕💕💕

相关推荐
风哥2号3 小时前
数据库教程FGMT52‑PostgreSQL用户权限与安全管理
数据库·postgresql
考虑考虑9 小时前
docker compose V2版本新属性
运维·后端·自动化运维
风哥2号10 小时前
数据库教程FGMT27‑MySQL数据库基础知识与体系架构
数据库·mysql
AlanBruce10 小时前
摩尔信使MThings功能综述与应用使用指南
linux·自动化·plc·mthings·摩尔信使
小小的木头人10 小时前
Ubuntu Samba修改端口绕过445封禁挂载
运维·ubuntu
YangYang9YangYan11 小时前
2026 校招商品分析岗位 JD 拆解,核心指标、工具与面试考点
大数据·数据库·数据分析
GreenTea11 小时前
7000 万 QPS、500 PB:OpenAI 如何用一个 Python 存储平台撑住 10 亿用户
后端·架构
Flynt11 小时前
Java 27 升级实测:默认值动得比新特性多,有个老参数会让 JVM 直接起不来
java·jvm·后端
Bs_MoneyMagnet11 小时前
基于springboot+vue的个人健康管理系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·vue3·springboot3·计算机毕业设计
西安栈上月明软件科技11 小时前
从业务黑话到本体图谱:OAG本体建模五步法(西安老系统AI化改造实战)
数据库·人工智能·架构