【MySQL】表操作

表操作

一、创建表

1、语句

复制代码
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、语句

复制代码
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、语句

复制代码
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、语句

复制代码
-- 使用 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、语句

复制代码
ALTER TABLE table_name
DROP COLUMN column_name;

2、示例

六、修改表名

1、语句

复制代码
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、语句

复制代码
DROP TABLE table_name;

2、示例

八、注意事项

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

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

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

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

相关推荐
技术宝哥2 小时前
Redis(2):Redis + Lua为什么可以实现原子性
数据库·redis·lua
学地理的小胖砸4 小时前
【Python 操作 MySQL 数据库】
数据库·python·mysql
dddaidai1234 小时前
Redis解析
数据库·redis·缓存
数据库幼崽4 小时前
MySQL 8.0 OCP 1Z0-908 121-130题
数据库·mysql·ocp
Amctwd4 小时前
【SQL】如何在 SQL 中统计结构化字符串的特征频率
数据库·sql
betazhou5 小时前
基于Linux环境实现Oracle goldengate远程抽取MySQL同步数据到MySQL
linux·数据库·mysql·oracle·ogg
lyrhhhhhhhh5 小时前
Spring 框架 JDBC 模板技术详解
java·数据库·spring
喝醉的小喵7 小时前
【mysql】并发 Insert 的死锁问题 第二弹
数据库·后端·mysql·死锁
付出不多7 小时前
Linux——mysql主从复制与读写分离
数据库·mysql
初次见面我叫泰隆7 小时前
MySQL——1、数据库基础
数据库·adb