数据库系列之数据处理1.插入一列固定值2.json序列解

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

本文已参与「掘力星计划」,赢取创作大礼包,挑战创作激励金。

所用到的数据表的结构如下:

image-20210919204526800.png

数据表的内容如下:

image-20210919205800863.png

1.插入一列固定值

有时候,我们除了要获取原始表中现有的数据。还想再查询结果中根据选取的数据特征插入一列固定值。其实现方法如下:

SELECT id, `name`,age<20 as label
FROM chapter5 WHERE age<20
复制代码

result:

image-20210919210112455.png

2.json序列解析

针对json格式存储的数据,可以按照如下办法进行解析。

2.1 获取json数据的value

SELECT id, `name`,JSON_EXTRACT(score, "$.数学")  as "数学成绩"
FROM chapter5
复制代码

result:

image-20210919210417436.png

2.2 获取json数据的key

SELECT id, `name`,JSON_KEYS(score)  as "科目"
FROM chapter5
复制代码

result:

image-20210919210607450.png

3.缺失值

从第3节开始所用到的数据表的结构如下:

image-20210919230134993.png

数据表的内容如下:

image-20210919230202125.png

3.1. 缺失值过滤

缺失值有空格、null和空值(用""表示空值)三种表现形式,前2种形式虽然也表示缺失值,但是在对应的单元格内是有值的,而后一种空值是没有值的,表示这个单元格什么都没有。

空值的过滤:

SELECT * FROM chapter6 WHERE profession !=""
复制代码

result:

image-20210919230332690.png

空格的过滤:

SELECT * FROM chapter6 WHERE profession !=" "
复制代码

null的过滤

SELECT * FROM chapter6 WHERE profession is not NULL
复制代码

3.2 缺失值填充

SELECT *, COALESCE(profession,"其他") FROM chapter6
复制代码

result:

image-20210919231153645.png

4.重复值处理

4.1 distinct

SELECT DISTINCT order_id, memberid FROM chapter6
复制代码

result:

image-20210920100707699.png

4.2 group by

SELECT order_id, memberid FROM chapter6 GROUP BY order_id, memberid
复制代码

result:

image-20210920100757687.png

5.数据类型转换

数据类型转换主要有以下两个方法:
cast(value as type)

convert(value, type)

SELECT age, CAST(age as DECIMAL) decimal_age, CONVERT(age, CHAR) char_age FROM chapter6
复制代码

result:

image-20210920101136798.png