ThinkPHP5数据库实例详解 / 数据表操作之更新数据表

数据表操作之更新数据表

更新数据表

语法:

UPDATE   表名
    SET 字段名=表达式 [, 字段名=表达式 ...]
    [WHERE 更新条件]
    [ORDER BY  更新顺序]
    [LIMIT 限制更新记录数量]

实例1:开发部加薪啦!将开发部全体员工加薪500元

为了使同学们更直观的看到更新效果,我们使用了分组与排序!
在以后的操作中,我们会更多的用到之前学到过的知识,如果仍感到吃力,建议把前面章节的知识,再仔细看一遍!

  • 先看一下更新之前的开发部员工工资情况吧
  • 查询语句如下:
SELECT * FROM `tp5_staff` ORDER BY dept DESC;

  • 现在开始更新操作,开发部的同志们,加薪啦~~~
  • 更新语句如下:
#开发部全体员工加薪500元
UPDATE `tp5_staff` SET salary = salary + 500
WHERE dept = '开发部';

#查看加薪后的工资
SELECT * FROM `tp5_staff` ORDER BY dept DESC;
  • 运行结果如下:


实例2: 将编号为1001的员工,姓名md5加密,入职日期设置为当前日期

本例中,姓名加密没有任何实际意义,仅用于演示函数使用效果
  • 语句如下:
#将id=1001的记录的姓名md5加密,入职日期设置为当前日期
UPDATE `tp5_staff` SET name = MD5('name'), hiredate = CURRENT_DATE 
WHERE id = 1001;

#查看更新结果
SELECT * FROM `tp5_staff` ;
  • 查询结果如下:

分析:

SET关键字后面,用于表中字段的值,可以用常量、可以用表达式,也可用函数。本例中,使用了常量 :CURRENT_DATE表示当前时间,MD5()函数对字符串name进行了加密!


实例3:将id=1001的员工姓名,工资,入职日期全部设置为NULL

  • 分析

    • 将字段值设置为NULL,根据字段类型不同,有不同的显示方式
    • 数据型字段显示为:0;
    • 字符串字段显示为:空;
    • 日期时间型字段显示为:NULL。
  • 语句如下:

#将id=1001的记录的姓名、工资、入职日期全部设置为NULL
UPDATE `tp5_staff` SET name = NULL, salary = NULL, hiredate = NULL 
WHERE id = 1001;

#查看更新结果
SELECT * FROM `tp5_staff` ;
  • 运行结果如下: