[TOC] ## 更新数据表 #### 语法: ~~~ UPDATE 表名 SET 字段名=表达式 [, 字段名=表达式 ...] [WHERE 更新条件] [ORDER BY 更新顺序] [LIMIT 限制更新记录数量] ~~~ #### 实例1:开发部加薪啦!将开发部全体员工加薪500元 >[info] 为了使同学们更直观的看到更新效果,我们使用了分组与排序! 在以后的操作中,我们会更多的用到之前学到过的知识,如果仍感到吃力,建议把前面章节的知识,再仔细看一遍! * 先看一下更新之前的开发部员工工资情况吧 * 查询语句如下: ~~~ SELECT * FROM `tp5_staff` ORDER BY dept DESC; ~~~ ![](https://box.kancloud.cn/5aa628db9cdb7f51cf097c0f199040c0_1003x775.png) * 现在开始更新操作,开发部的同志们,加薪啦~~~ * 更新语句如下: ~~~ #开发部全体员工加薪500元 UPDATE `tp5_staff` SET salary = salary + 500 WHERE dept = '开发部'; #查看加薪后的工资 SELECT * FROM `tp5_staff` ORDER BY dept DESC; ~~~ * 运行结果如下: ![](https://box.kancloud.cn/18f58deae028fd693e2f85a28261434e_1003x775.png) * * * * * #### 实例2: 将编号为1001的员工,姓名md5加密,入职日期设置为当前日期 ##### 本例中,姓名加密没有任何实际意义,仅用于演示函数使用效果 * 语句如下: ~~~ #将id=1001的记录的姓名md5加密,入职日期设置为当前日期 UPDATE `tp5_staff` SET name = MD5('name'), hiredate = CURRENT_DATE WHERE id = 1001; #查看更新结果 SELECT * FROM `tp5_staff` ; ~~~ * 查询结果如下: ![](https://box.kancloud.cn/332f87826fc0cd35e4ecfd3560fc56a2_1003x775.png) #### 分析: >[info] SET关键字后面,用于表中字段的值,可以用常量、可以用表达式,也可用函数。本例中,使用了常量 :CURRENT_DATE表示当前时间,MD5()函数对字符串name进行了加密! * * * * * ### 实例3:将id=1001的员工姓名,工资,入职日期全部设置为NULL * 分析 >[success] * 将字段值设置为NULL,根据字段类型不同,有不同的显示方式 >* 数据型字段显示为:0; > * 字符串字段显示为:空; > * 日期时间型字段显示为:NULL。 * 语句如下: ~~~ #将id=1001的记录的姓名、工资、入职日期全部设置为NULL UPDATE `tp5_staff` SET name = NULL, salary = NULL, hiredate = NULL WHERE id = 1001; #查看更新结果 SELECT * FROM `tp5_staff` ; ~~~ * 运行结果如下: ![](https://box.kancloud.cn/faa22ee12bf5306f7799d3b2a1a34e4d_1003x775.png)