【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 语句可能会隐式地提交当前事务。

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

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

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

相关推荐
AI人H哥会Java30 分钟前
【Spring】Spring的模块架构与生态圈—Spring MVC与Spring WebFlux
java·开发语言·后端·spring·架构
小屁不止是运维33 分钟前
麒麟操作系统服务架构保姆级教程(二)ssh远程连接
linux·运维·服务器·学习·架构·ssh
开心工作室_kaic34 分钟前
springboot461学生成绩分析和弱项辅助系统设计(论文+源码)_kaic
开发语言·数据库·vue.js·php·apache
毕设资源大全1 小时前
基于SpringBoot+html+vue实现的林业产品推荐系统【源码+文档+数据库文件+包部署成功+答疑解惑问到会为止】
java·数据库·vue.js·spring boot·后端·mysql·html
Watermelon_Mr1 小时前
Spring(三)-SpringWeb-概述、特点、搭建、运行流程、组件、接受请求、获取请求数据、特殊处理、拦截器
java·后端·spring
weisian1512 小时前
Redis篇--常见问题篇3--缓存击穿(数据查询上锁,异步操作,熔断降级,三种缓存问题综合优化策略)
数据库·redis·缓存
圆蛤镇程序猿2 小时前
【什么是事务?】
数据库·oracle
施嘉伟2 小时前
你的Oracle生产数据库遭受过哪些迫害?
数据库·oracle
唐墨1232 小时前
golang自定义MarshalJSON、UnmarshalJSON 原理和技巧
开发语言·后端·golang
凡人的AI工具箱2 小时前
每天40分玩转Django:Django测试
数据库·人工智能·后端·python·django·sqlite