精通MySQL 8(视频教学版)
上QQ阅读APP看书,第一时间看更新

4.2 更新数据记录

更新数据记录是数据操作中常见的操作,可以更新表中已经存在数据记录中的值。在MySQL中可以通过UPDATE语句来实现更新数据记录,该SQL语句可以通过如下几种方式使用:更新特定数据记录、更新所有数据记录、更新JSON结构的数据记录。

4.2.1 更新特定数据记录

在MySQL中更新特定数据记录可通过SQL语句UPDATE来实现,其语法形式如下:

在上述语句中,参数tablename表示所要更新数据记录的表名,参数field表示表中所要更新数值的字段名字,参数valuen表示更新后的数值,参数CONDITION指定更新满足条件的特定数据记录。

【示例4-4】执行SQL语句UPDATE,在数据库school中的班级表t_class中使名称(字段cname)为“class_1”的地址(字段loc)由“loc_1”更新成“loc_11”。具体步骤如下:

执行SQL语句UPDATE,更新数据记录,再使用SELECT语句查询t_class表的数据记录,具体SQL语句如下,执行结果如图4-9、图4-10所示。

    UPDATE t_class SET loc=’loc_11’ WHERE cname=’class_1’;
    SELECT * FROM t_class;

图4-9 更新数据记录

图4-10 查询数据记录

图4-10所示的执行结果显示,在表t_class中,cname为“class_1”的loc已经更新为“loc_11”。

4.2.2 更新所有数据记录

在MySQL中更新特定数据记录可通过SQL语句UPDATE来实现,其语法形式如下:

    UPDATE tablename
    SET field1=value1,field2=value2,field3=value3
       WHERE CONDITION;

在上述语句中,参数tablename表示所要更新数据记录的表名,参数field表示表中所要更新数值的字段名字,参数valuen表示更新后的数值,参数CONDITION表示满足表tablename中的所有数据记录,或不使用关键字WHERE语句。

4.2.3 更新JSON结构的数据记录

在MySQL中可通过UPDATE语句和JSON函数更新JSON数据记录,常用的函数有JSON_ARRAY_APPEND、JSON_ARRAY_INSERT、JSON_INSERT、JSON_MERGE、JSON_MERGE_PATCH、JSON_MERGE_PRESERVE、JSON_REMOVE、JSON_REPLACE、JSON_SET等。以JSON_REPLACE为例,更新JSON数据的语法为:

    UPDATE tablename
    SET colname = JSON_REPLACE(colname,path,val)
    WHERE CONDITION;

在上述语句中,tablename为要更新的表名;colname为JSON类型的字段;path为路径,通常为美元符号加key的形式,即“$.key”;val为要替换的新值;WHERE为条件语句。

【示例4-5】执行SQL语句UPDATE,将t_json中id为1对应的记录性别修改为“女”。具体步骤如下:

执行SQL语句SELECT查询表的数据记录,然后执行UPDATE语句将性别修改为女,再使用SELECT语句来查询t_json表,具体SQL语句如下,执行结果如图4-11、图4-12所示。

    update t_json
    set json_col=JSON_REPLACE(json_col,'$.sex','女')
    Where id =1;
    SELECT * from t_json;

图4-11 向数据表插入JSON记录

图4-12 查询插入数据