MySQL表基础操作与CRUD数据增删改查详解
本文系统梳理MySQL中表的创建、查看、删除及重命名等DDL操作,并详细讲解基于SQL的数据增(INSERT)、删(DELETE)、改(UPDATE)和查(SELECT)即CRUD核心操作。文章涵盖条件筛选、排序分页、模糊匹配等关键查询技巧,辅以规范代码示例,帮助初学者快速掌握MySQL数据管理的标准流程。
一、 SQL基础与通用规范
SQL(Structured Query Language,结构化查询语言)是用于管理关系型数据库的标准语言。在开始操作前,需遵循以下规范:
- 语法格式:语句通常以分号
;结尾;可使用空格或缩进提升可读性;关键字建议大写,但MySQL不区分大小写。 - 注释方式:单行注释使用
-- 内容或# 内容,多行注释使用/* 内容 */。 - 语言分类:
- DDL (Data Definition Language):数据定义语言,用于定义库、表等结构。
- DML (Data Manipulation Language):数据操纵语言,用于数据的增删改。
- DQL (Data Query Language):数据查询语言,用于查询记录。
- DCL (Data Control Language):数据控制语言,用于权限控制。
二、 表的基础管理操作
第1步:创建表
目的:建立存储数据的基本容器。需注意同一数据库下表名不可重复,且不应与SQL保留字冲突。
操作入口:SQL命令提示符或客户端工具。
动作与参数:
CREATE TABLE IF NOT EXISTS table_name (
column1_name data_type [COMMENT '字段说明'],
column2_name data_type,
...
) CHARACTER SET utf8mb4;
例如创建图书表,包含名称、作者、价格及分类等字段:
mysql> create table if not exists book(
-> book_name varchar(32) comment '图书名称',
-> book_author varchar(32)comment '图书作者' ,
-> book_price decimal(12,2) comment '图书价格',
-> book_category varchar(12) comment '图书分类',
-> publish_data timestamp
-> )character set utf8mb4;
完成状态:执行成功返回 `Query OK`。
第2步:查看与检查表结构
目的:确认当前库有哪些表,以及已创建表的具体字段属性。
查看所有表:
SHOW TABLES;
查看表结构:
DESC table_name;
执行后,结果展示字段名称、类型、是否允许为空(Null)、键类型(Key)、默认值(Default)等信息,这是验证建表是否符合预期的依据。
第3步:删除与重命名表
目的:清理无效数据或更正命名错误。
删除表:语法为 `DROP TABLE table_name;`。执行后该表及其数据将彻底消失,若再次访问会报 `Table doesn't exist` 错误。建议在操作前备份重要数据。
重命名表:语法为 `RENAME TABLE old_name TO new_name;`。
示例:
mysql> rename table book to eBook;
三、 MySQL中的CURD操作(增删查改)
CRUD代表Create(增加)、Retrieve(查询)、Update(更新)和Delete(删除),是数据库交互最核心的动作。
第1步:插入数据(Insert)
目的:向表中添加新记录。支持全列插入、指定列插入及批量插入。
全列插入:
INSERT INTO table_name VALUES (val1, val2, ...);
指定列插入:可省略部分字段,未指定字段将使用默认值(如NULL)。此方式更安全,能避免列顺序变动导致的问题。
INSERT INTO table_name (col1, col2) VALUES ('val1', 'val2');
批量插入:提高IO效率,减少网络往返开销。
INSERT INTO book VALUES
('书A','作者A',10,'类','时间'),
('书B','作者B',20,'类','时间');
操作完成后,可通过查询验证新增数据,例如:
第2步:查询数据(Select)
目的:从表中检索特定信息,支持多种方式筛选和展示数据。
基本查询:使用 `*` 通配符返回所有列,但在企业级应用中应避免滥用以防消耗大量带宽和I/O资源。
表达式与别名:可对字段进行运算或使用 AS 指定临时别名以提升可读性。例如计算涨价后的价格:
SELECT book_name, book_price + 10 AS new_price FROM book;
去重查询:使用 DISTINCT 关键字去除重复记录。
示例:SELECT DISTINCT book_name FROM book;
排序与分页:
- 排序:使用
ORDER BY,默认为升序ASC,降序需显式声明DESC。 - 分页:使用
LIMIT offset, count。Offset从0开始计数,代表跳过的行数;Count为返回的最大行数。获取第N高价格的数据时,通常结合ORDER BY使用,如ORDER BY price DESC LIMIT N-1, 1。
条件查询:使用 WHERE 子句配合运算符过滤数据:
- 比较符:
>=,=,<>(注意null的安全判断需用<=>)。 - 范围与集合:
BETWEEN a AND b表示闭区间范围;IN (val1, val2)匹配列表。 - 逻辑符:
AND,OR,NOT。 - 模糊匹配:
LIKE。其中%代表任意多个字符,_代表单个字符。例如查找姓张的人可用'张%'。
第3步:修改数据(Update)
目的:根据条件更新现有记录的值。
关键动作:必须紧跟 SET 赋值语句,且强烈建议使用 WHERE 限定范围,否则将清空全表数据。
UPDATE table_name
SET column = new_value
WHERE condition;
示例:将书名“软件工程”的价格改为66元:
mysql> update book set book_price = 66 where book_name = '软件工程';
第4步:删除数据(Delete)
目的:移除表中指定的记录。
操作提醒:数据一旦使用 DELETE 删除便无法恢复(除非有事务回滚或备份),因此务必先写好 WHERE 条件,甚至可以先用 SELECT 预览将要删除的记录。
DELETE FROM table_name WHERE condition;
示例:删除价格大于150元的图书记录:
mysql> delete from book where book_price > 150;
以上就是MySQL表基础操作与CURD数据增删改查的详细内容,更多关于MySQL入门及进阶操作的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









