【MySQL 数据的操作二】

二、更新数据记录

可以通过 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 数据的操作一】
下一篇【视图的操作一】

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值