MySQL 表的增删查改
一、插入数据
1. INSERT ... VALUES ...
INSERT INTO <表名> [ <列名1> [ , … <列名n>] ] VALUES (值1) [… , (值n) ];
针对特定字段添加数据:
mysql> insert into user
-> (id,name,password,balance,debt)
-> values(2,'song','1234',3000,100);
Query OK, 1 row affected (0.01 sec)
添加多行数据:
# 插入多行数据,在 values 后面表示,每个()里面的数据代表一行。
mysql> insert into user
-> (id,name)
-> values (4,'zhao'),(5,'qian');
mysql> select * from user;
+----+------+----------+---------+------+
| id | name | password | balance | debt |
+----+------+----------+---------+------+
| 1 | Wang | 1234 | 15000 | 0 |
| 2 | song | 1234 | 3000 | 100 |
| 3 | li | 1234 | 2000 | 0 |
| 4 | zhao | NULL | NULL | NULL |
| 5 | qian | NULL | NULL | NULL |
+----+------+----------+---------+------+
针对所有字段添加数据,可以省略字段部分:
mysql> insert into user
-> values(3,'li','1234',2000,0);
2. INSERT ... SET ...
INSERT INTO <表名>
SET <字段1> = <值1>,
<字段2> = <值2>,
...;
e.g.
mysql> insert into user
-> set
-> id = 6,
-> name='sun';
Query OK, 1 row affected (0.01 sec)
mysql> select * from user;
+----+------+----------+---------+------+
| id | name | password | balance | debt |
+----+------+----------+---------+------+
| 1 | Wang | 1234 | 15000 | 0 |
| 2 | song | 1234 | 3000 | 100 |
| 3 | li | 1234 | 2000 | 0 |
| 4 | zhao | NULL | NULL | NULL |
| 5 | qian | NULL | NULL | NULL |
| 6 | sun | NULL | NULL | NULL |
+----+------+----------+---------+------+
3. INSERT ... SELECT ... FROM...
将一个表中的数据复制到另一个表中:
将 grade 表中的 record 字段的数据,复制到 user 表中的 debt 字段中。
mysql> insert into user
-> (debt)
-> select record from grade;
Query OK, 4 rows affected (0.01 sec)
二、修改数据
UPDATE <表名> SET 字段 1=值 1 [,字段 2=值 2… ] [WHERE 子句 ] [ORDER BY 子句] [LIMIT 子句]
可选项:
- WHERE 限定修改范围,不指定where,则修改所有数据!
- ORDER BY 排序
- LIMIT 限定修改行数
e.g.
# 先查询一下
mysql> select * from user;
+----+------+----------+---------+------+
| id | name | password | balance | debt |
+----+------+----------+---------+------+
| 1 | Wang | 1234 | 15000 | 0 |
| 2 | song | 1234 | 3000 | 100 |
| 3 | li | 1234 | 2000 | 0 |
| 4 | zhao | NULL | NULL | NULL |
| 5 | qian | NULL | NULL | NULL |
| 6 | sun | NULL | NULL | NULL |
| 7 | NULL | NULL | NULL | 90 |
| 8 | NULL | NULL | NULL | 80 |
| 9 | NULL | NULL | NULL | 70 |
| 10 | NULL | NULL | NULL | 87 |
+----+------+----------+---------+------+
# 修改数据,将id为7的name字段改为‘Zhou’
mysql> update user set name='Zhou' where id=7;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from user;
+----+------+----------+---------+------+
| id | name | password | balance | debt |
+----+------+----------+---------+------+
| 1 | Wang | 1234 | 15000 | 0 |
| 2 | song | 1234 | 3000 | 100 |
| 3 | li | 1234 | 2000 | 0 |
| 4 | zhao | NULL | NULL | NULL |
| 5 | qian | NULL | NULL | NULL |
| 6 | sun | NULL | NULL | NULL |
| 7 | Zhou | NULL | NULL | 90 |
| 8 | NULL | NULL | NULL | 80 |
| 9 | NULL | NULL | NULL | 70 |
| 10 | NULL | NULL | NULL | 87 |
+----+------+----------+---------+------+
三、删除数据
DELETE FROM <表名> [WHERE 子句] [ORDER BY 子句] [LIMIT 子句]
删除一条数据:
mysql> select * from user;
+----+------+----------+---------+------+
| id | name | password | balance | debt |
+----+------+----------+---------+------+
| 1 | Wang | 1234 | 15000 | 0 |
| 2 | song | 1234 | 3000 | 100 |
| 3 | li | 1234 | 2000 | 0 |
| 4 | zhao | NULL | NULL | NULL |
| 5 | qian | NULL | NULL | NULL |
| 6 | sun | NULL | NULL | NULL |
| 7 | Zhou | NULL | NULL | 90 |
| 8 | NULL | NULL | NULL | 80 |
| 9 | NULL | NULL | NULL | 70 |
| 10 | NULL | NULL | NULL | 87 |
+----+------+----------+---------+------+
mysql> delete from user where id = 10;
mysql> select * from user;
+----+------+----------+---------+------+
| id | name | password | balance | debt |
+----+------+----------+---------+------+
| 1 | Wang | 1234 | 15000 | 0 |
| 2 | song | 1234 | 3000 | 100 |
| 3 | li | 1234 | 2000 | 0 |
| 4 | zhao | NULL | NULL | NULL |
| 5 | qian | NULL | NULL | NULL |
| 6 | sun | NULL | NULL | NULL |
| 7 | Zhou | NULL | NULL | 90 |
| 8 | NULL | NULL | NULL | 80 |
| 9 | NULL | NULL | NULL | 70 |
+----+------+----------+---------+------+
删除所有数据:delete from <表名>;
mysql> select * from grade;
+------+--------+
| gid | record |
+------+--------+
| 1 | 90 |
| 2 | 80 |
| 3 | 70 |
| 4 | 87 |
+------+--------+
mysql> delete from grade;
Query OK, 4 rows affected (0.01 sec)
mysql> select * from grade;Empty set (0.00 sec)
分类:
MYSQL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构