二、更新数据记录
可以通过 UPDATE 语句来实现更新数据记录,通过以下几种方式使用:
- 更新特定的数据记录
- 更新所有的数据记录
2.1更新特定的数据记录
语法形式
UPDATE table_name
SET field1=value1,
field2=value2,
field3=value3,
WHERE CONDITION;
解释
更新表 table_name 中满足条件 CONDITION 的指定字段field1,field2,field3中的数据。
例:
将表 t_dept 中 dname 字段数据为 cjgong2 的记录中的 loc 字段中的数据更新为 shangxi11
1、查看表 t_dept 中的数据
mysql> SELECT * FROM t_dept;
+--------+----------+-----------+
| deptno | dname | loc |
+--------+----------+-----------+
| 1 | cjgong1 | shangxi1 |
| 2 | cjgong2 | shangxi2 |
| 3 | cjgong3 | shangxi3 |
| 4 | cjgong4 | shangxi4 |
| 5 | cjgong5 | shangxi |
+--------+----------+-----------+
5 rows in set (0.00 sec)
2、更改第二条数据 loc 字段中的数据为 shangxi11
mysql> UPDATE t_dept
-> SET loc='shangxi11'
-> WHERE dname='cjgong2';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
3、效验
mysql> SELECT * FROM t_dept;
+--------+----------+-----------+
| deptno | dname | loc |
+--------+----------+-----------+
| 1 | cjgong1 | shangxi1 |
| 2 | cjgong2 | shangxi11 |
| 3 | cjgong3 | shangxi3 |
| 4 | cjgong4 | shangxi4 |
| 5 | cjgong5 | shangxi |
+--------+----------+-----------+
5 rows in set (0.00 sec)
第二条数据已经更新为新值
2.2更新所有数据记录
更新所有记录也很简单,只要在上面提到的语法形式中,将条件设为满足所有记录的即可,也可以不用关键字 WHERE 语句。
例1:应用条件语句将表 loc 字段中所有的数据更改为 shangxi8
将表中满足 deptno 字段数值小于6的记录的 loc 字段全部更新为shangxi8
mysql> UPDATE t_dept
-> SET loc='shangxi8'
-> WHERE deptno<6;
Query OK, 5 rows affected (0.00 sec)
Rows matched: 5 Changed: 5 Warnings: 0
验证:
mysql> SELECT * FROM t_dept;
+--------+---------+----------+
| deptno | dname | loc |
+--------+---------+----------+
| 1 | cjgong1 | shangxi8 |
| 2 | cjgong2 | shangxi8 |
| 3 | cjgong3 | shangxi8 |
| 4 | cjgong4 | shangxi8 |
| 5 | cjgong5 | shangxi8 |
+--------+---------+----------+
5 rows in set (0.00 sec)
t_dept 共有5条记录,全部满足字段 deptno < 6 的条件,因此更新的是表中所有记录的 loc 字段中的值。
例2:不用条件语句更新表中 loc 字段的所有值
将表中所有记录的 loc 值更新为 shangxi10
mysql> UPDATE t_dept
-> SET loc='shangxi10'
-> ;
Query OK, 5 rows affected (0.01 sec)
Rows matched: 5 Changed: 5 Warnings: 0
验证:
mysql> SELECT * FROM t_dept;
+--------+---------+-----------+
| deptno | dname | loc |
+--------+---------+-----------+
| 1 | cjgong1 | shangxi10 |
| 2 | cjgong2 | shangxi10 |
| 3 | cjgong3 | shangxi10 |
| 4 | cjgong4 | shangxi10 |
| 5 | cjgong5 | shangxi10 |
+--------+---------+-----------+
5 rows in set (0.00 sec)
没有条件语句的约束,即针对的是表中所有的记录
三、删除数据记录
可以通过 DELETE 语句来实现删除数据记录,同样有如下几种方式:
- 删除特定数据记录
- 删除所有数据记录
3.1删除特定数据记录
语法形式
DELETE FROM table_name
WHERE CONDITION;
解释
在表 table_name 中删除指定条件的记录
例:
1、查看表中记录
mysql> SELECT * FROM t_dept;
+--------+---------+-----------+
| deptno | dname | loc |
+--------+---------+-----------+
| 1 | cjgong1 | shangxi10 |
| 2 | cjgong2 | shangxi10 |
| 3 | cjgong3 | shangxi10 |
| 4 | cjgong4 | shangxi10 |
| 5 | cjgong5 | shangxi10 |
+--------+---------+-----------+
5 rows in set (0.00 sec)
2、删除表 t_dept中 dname 字段为 cjgong1 的记录
mysql> DELETE FROM t_dept
-> WHERE dname='cjgong1';
Query OK, 1 row affected (0.01 sec)
3、验证
mysql> SELECT * FROM t_dept;
+--------+---------+-----------+
| deptno | dname | loc |
+--------+---------+-----------+
| 2 | cjgong2 | shangxi10 |
| 3 | cjgong3 | shangxi10 |
| 4 | cjgong4 | shangxi10 |
| 5 | cjgong5 | shangxi10 |
+--------+---------+-----------+
4 rows in set (0.00 sec)
可以看出,删除了第一条记录,表中剩下4条记录。
3.2删除所有数据记录
语法方式与3.1中的一样,应用时有如下方式:
- 方式一 通过条件删除所有记录
1、查看表 t_dept 的记录
mysql> SELECT * FROM t_dept;
+--------+---------+-----------+
| deptno | dname | loc |
+--------+---------+-----------+
| 2 | cjgong2 | shangxi10 |
| 3 | cjgong3 | shangxi10 |
| 4 | cjgong4 | shangxi10 |
| 5 | cjgong5 | shangxi10 |
+--------+---------+-----------+
4 rows in set (0.00 sec)
2、删除 deptno < 6 的所有记录
mysql> DELETE FROM t_dept
-> WHERE deptno<6;
Query OK, 4 rows affected (0.01 sec)
3、验证
mysql> SELECT * FROM t_dept;
Empty set (0.00 sec)
- 方式二 不用条件语句删除所有记录
语法形式
DELETE FROM table_name;
例:略
生词表
单词 | 读音 | 译文 | MySQL |
---|---|---|---|
Condition | 英 [kənˈdɪʃn] | n.条件;状态;状况;健康状况; | 条件 |
如有错误敬请高人指点,书写的易读性可否,希望大家多提意见。
上一篇【MySQL 数据的操作一】
下一篇【视图的操作一】