MySQL数据库表操作指南:创建、插入与数据管理
本文介绍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 基础操作的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









