SQL-–查看JSON,時间,字符串数组的高級使用方法。

文中归纳了JSON的应用,日期格式和字符串数组分辨变换的SQL。核心内容是Json字段名获取(1.5).時间较为(2.2.2.3)和字符串数组查看(3.1),全是提升和填补点。

@

文件目录

1.SQL–JSON使用方法。

1.1.JSON_ARRAY-变换为二维数组。

1.2.json _ object–变换为JSON目标。

1.2 1.2 . json _ QUOTE-–变换为JSON。

1.3 1.3 . JSON _ MERGE-–MERGE JSON。

1.4 1.4 . json _ VALID-–分辨是不是为JSON。

1.5 1.5 . JSON _ EXTRATE-–EXTRATE JSON(注重*)。

1.6.JSON详细內容。

2.SQL–计算时间较为。

2.1.時间-提升和降低。

2.2時间格式转化。

2.3本年度/月/周/日统计分析(关键点*)。

2.4日期格式归纳。

3.SQL–字符串数组。

3 . 1 . concat-–模糊搜索。

3.2 .精准定位-–寻找字符串数组。

3.3.If.Case.Round-–提升表明和字段名测算。

1.SQL–JSON使用方法。

表述为何SQL应用JSON储存和查看,由于前面表明或后面储存中通常有过多没用的字段名,因此不用在后台管理建立过多的字段名。除此之外,为了更好地有利于新项目发布后迅速清查难题并意见反馈解决方法给客户,引进JSON开展存放和查看。在具体开发设计中,库表字段被设计方案为JSON的状况许多。

最先,得出基本上的数据库实际操作。

# SQL--建库CREATE TABLE t_base_info ( id BIGINT NOT NULL PRIMARY KEY auto_increment, content json);# SQL--进库INSERT INTO t_base_info (content)VALUES( '{ "author": "huyuqiao-A", "blog": "https://www.cnblogs.com/meditation5201314/", "content": [ {"name": "Empirefree-01", "age": 18 }, {"name": "Empirefree-02", "age": 19 }, {"name": "Empirefree-03", "age": 19 } ]}');

1.1.JSON_ARRAY-变换为二维数组。

# SQL--查看# json--对象转数组select json_array(content) from t_base_info

1.2.json _ object–变换为JSON目标。

#json--目标转json文件格式--自定select json_object('name', 'huyuqiao', 'age', '18', 'profession','Java研发工程师')

1.2 1.2 . json _ QUOTE-–变换为JSON。

#json--引入字符串数组做为json值select json_quote('"huyuqiao"')

1.3 1.3 . JSON _ MERGE-–MERGE JSON。

#json--合拼字符串数组select json_merge('{"blog": "www.baidu.com"}', '{"name":"huyuqiao"}')

1.4 1.4 . json _ VALID-–分辨是不是为JSON。

#json--分辨json文件格式是不是合理--0 表明失效,1 表明合理,NUll 表明主要参数为nullselect json_valid("huyuqiao"), json_valid('"huyuqiao"'), json_valid(null)

1.5 1.5 . JSON _ EXTRATE-–EXTRATE JSON(注重*)。

#json--查看json內容(关键)SELECTJSON_EXTRACT(content, '$.blog' ) AS '个人博客网站',JSON_EXTRACT(content, '$.content' ) AS '私人信息' FROMt_base_info

1.6.JSON详细內容。

宣布文档:https://dev . MySQL . com/doc/ref man/5.7/en/JSON-function-reference . html。

官方网站提供的句子许多,我选了一些常见的,主要是JSON_EXTRACT很普遍。

归类涵数叙述建立jsonjson_array建立json二维数组json_object建立json目标json_quote将json转为json字符串类型查看jsonjson_contains分辨是不是包括某一json值json_contains_path分辨某一途径下是不是包json值json_extract获取json值column->pathjson_extract的简约书写,MySQL 5.7.9逐渐适用column->>pathjson_unquote(column -> path)的简约书写json_keys获取json中的键值为json二维数组json_search按给出字符串数组关键词搜索json,回到配对的途径改动jsonjson_append废旧,MySQL 5.7.9逐渐更名为json_array_appendjson_array_append结尾加上二维数组原素,假如原来值是标值或json目标,则转为二维数组后,再加上原素json_array_insert插进二维数组原素Json_insert插进值(插进新值,但不更换早已出现的旧值)json_merge合拼json二维数组或目标json_remove删掉json数据信息json_replace更换值(只更换早已出现的旧值)json_set设定值(更换旧值,并插进不会有的新值)json_unquote除去json字符串数组的冒号,将值转为string种类回到json特性json_depth回到json文本文档的较大深层json_length回到json文本文档的长短json_type回到json非常值得种类json_valid分辨是不是为合理合法json文本文档

2.SQL–计算时间较为。

SQL中最多见的是时间查询较为。下列是您一般应用的SQL時间较为目录。

2.1.時间-提升和降低。

#现在的时间提升1分鐘SELECT date_add(now(), interval 1 HOUR_MINUTE)#现在的时间降低1分鐘SELECT date_sub(now(), interval 1 HOUR_MINUTE)

2.2時间格式转化。

#時间格式转化--年月日 分秒select DATE_FORMAT(now(), '%Y-%m-%d')select DATE_FORMAT(now(), '%Y-%m-%d %H:%i:%s')

2.3本年度/月/周/日统计分析(关键点*)。

SQL中時间较为较多的应该是测算2021年/本月/这周/今日的時间。

#统计分析本年/本月/这周/本日数据信息 #注:这儿统计分析这周的是好几个1是由于纽约时间和中国北京时间并不是一样的,必须开展校准,在网上许多也没有校准SELECTnow( ),to_days( now( ) ),YEARWEEK( date_format( now( ), '%Y-%m-%d' ), 1 ),YEAR ( now( ) ) WHEREto_days( now( ) ) = to_days( now( ) ) OR YEARWEEK( date_format( now( ), '%Y-%m-%d' ), 1 ) = YEARWEEK( now( ), 1 ) OR DATE_FORMAT( now( ), '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' ) OR YEAR ( now( ) ) = YEAR ( now( ) )

2.4日期格式归纳。

留意:SQL時间如下所示。

YEAR,MONTH,DAY,HOUR,MINUTE,SECOND,MICROSECOND

像这种的间距‘1234’day _ second是以右偏左的。依据時间种类,这也是1天2钟头3分4秒,如下所示。

#比现在时间降低了1天2钟头3分鐘4秒select now(), now() - interval '1 2 3 4' DAY_SECOND#比现在时间降低了1分鐘select now(), now() - interval '1' HOUR_MINUTE

下列是SQL中的全部日期格式。

MICROSECONDSECONDMINUTEHOURDAYWEEKMONTHQUARTERYEARSECOND_MICROSECONDMINUTE_MICROSECONDMINUTE_SECONDHOUR_MICROSECONDHOUR_SECONDHOUR_MINUTEDAY_MICROSECONDDAY_SECONDDAY_MINUTEDAY_HOURYEAR_MONTH

3.SQL–字符串数组。

3 . 1 . concat-–模糊搜索。

select now() where now() like CONCAT('%', 'huyuqiao ','%')

3.2 .精准定位-–寻找字符串数组。

#字符串函数在字符串数组中第一次发生数据库索引(从1逐渐数,没找到则回到0)select locate('qiao', 'huyuqiaoqiao')

3.3.If.Case.Round-–提升表明和字段名测算。

以下几点用以提升查看字段名。1能够更改成table.column..

# 分辨字段名: Round(number,保存几个有效数字,默认设置四舍五入)SELECTIF( 1 = 1, '是', '否' ) AS '情况',CASE1 WHEN 1 THEN'扣费' WHEN 2 THEN'奖赏' WHEN 3 THEN'举报' END 申请办理种类,CONCAT( CASE 1 WHEN 1 THEN '-' WHEN 2 THEN ' ' WHEN 3 THEN '-' END, ROUND( 200 / 100, 2 ) ) AS 额度

湖有路难行,学无止境。程序猿不但要懂编码,还需要懂日常生活,关注我,一起发展。

评论(0条)

刀客源码 游客评论