MySQL数据库表操作指南:创建、插入与数据管理

巷口听风
巷口听风
发布时间:2026-10-16 | 2人浏览过
原创

本文介绍MySQL数据库的核心基础操作,包括数据类型选择、表的创建与维护(创建/删除/清空),以及记录的基础CRUD(增加、读取、更新、删除)语句。通过具体示例展示INSERT、UPDATE、DELETE及TRUNCATE命令的用法与注意事项。

常用数据类型

在定义表结构时,选择合适的字段类型至关重要。MySQL 支持多种标准数据类型:

  • 字符串类型:varchar(N) 为动态长度字符串(最大 255 字符),char(N) 为定长字符串(最大 255 字符);clob 用于存储超长文本对象。
  • 数值类型:int 为整数型,long 为长整型,float 和 double 分别代表单精度和双精度浮点数。
  • 日期时间:date 仅包含年月日,datetime 包含年月日时分秒。
  • 二进制大对象:blob 通常用于存储多媒体或流媒体数据。

创建与管理数据表

使用 CREATE TABLE 语句建立新表。以下创建一个学生信息表为例,展示了主键、自增属性、默认值及存储引擎的设置。

mysql> CREATE TABLE imustctf(
    -> ctf_id INT NOT NULL AUTO_INCREMENT,
    -> ctf_name varchar(100) NOT NULL default 'dahezhiquan',
    -> ctf_age INT NOT NULL,
    -> ctf_date DATE,
    -> PRIMARY KEY (ctf_id)
    -> )ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected, 1 warning (0.06 sec)

关键参数说明:

  • NOT NULL:强制该字段必须输入值,否则操作会报错。
  • AUTO_INCREMENT:设置列为自增长,常用于主键,每次插入新行自动加 1。
  • PRIMARY KEY:标识唯一主键,可支持多列联合主键。
  • ENGINE:指定存储引擎(如 InnoDB),CHARSET:设定字符集编码。
  • DEFAULT:当未指定值时使用预设默认值。

第 1 步:安全删除表

当不需要某张表时,可使用 DROP TABLE 删除。为防止因表不存在而报错,建议使用 IF EXISTS 子句增强 SQL 鲁棒性。

mysql> drop table if exists student;
Query OK, 0 rows affected, 1 warning (0.00 sec)

数据的增删改操作

掌握基本的 CRUD 命令是操作 MySQL 的核心。注意在执行 UPDATE 或 DELETE 时务必配合 WHERE 条件,以免误操作全表。

第 2 步:插入记录 (Insert)

使用 INSERT INTO 添加数据。如果设置了 AUTO_INCREMENT 的主键(如上面的 ctf_id),则无需在插入语句中提供。

插入单条数据:

mysql> insert into imustctf
    -> (ctf_name,ctf_age,ctf_date)
    -> values
    -> ('学习Mysql',18,NOW());
Query OK, 1 row affected, 1 warning (0.02 sec)

注:NOW() 函数返回当前日期和时间。

插入多条数据:

mysql> insert into imustctf
    -> (ctf_name,ctf_age,ctf_date)
    -> values
    -> ('学习Mysql',18,NOW()),
    -> ('学习java',21,NOW()),
    -> ('学习Spring',27,NOW());
Query OK, 3 rows affected (0.02 sec)

第 3 步:修改记录 (Update)

使用 UPDATE 结合 WHERE 子句更新特定行:

mysql> update dept set DNAME = 'BBB' where DEPTNO = 70;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

第 4 步:删除记录 (Delete)

使用 DELETE FROM 物理清除满足条件的数据:

mysql> delete from dept where DEPTNO = 70;
Query OK, 1 row affected (0.02 sec)

高级维护操作:复制表与清空数据

在处理大量数据或进行备份演示时,了解性能差异对的操作方法很有帮助。

第 5 步:快速复制表结构与内容

通过查询结果创建新表:

mysql> create table temp as select * from emp;
Query OK, 14 rows affected (0.05 sec)

第 6 步:区分 DELETE 与 TRUNCATE 清空全表

DELETE 清空:逐行删除记录,虽然逻辑上数据消失,但底层物理空间可能未被立即回收,且支持事务回滚,适合需保留事务上下文或删除部分数据的场景,但在处理亿级大数据时效率较低。

TRUNCATE 清空:直接重置表结构并释放数据占用的存储空间,效率极高,主要用于快速清空全部数据。此操作通常无法回滚,使用前需谨慎。

mysql> truncate table dept_bak;

日期处理函数辅助说明

在数据录入或展示时,常涉及日期的格式转换:

  • 字符串转日期:str_to_date('字符串','格式'),例如 str_to_date('01-11-1998','%d-%m-%Y')。若格式符合 YYYY-MM-DD,MySQL 会自动转换。
  • 日期转字符串:date_format(日期,'格式'),例如 date_format(birth,'%m/%d/%Y')。

以上就是 MySQL 数据库表创建、维护与数据管理的详细内容,更多关于 SQL 基础操作的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表