Atitit mysql 数据类型 5.7.9

目录

1.1. 数值类型 1

2. 字符串 2

3. 时间日期 2

4. 地理位置 2

5. 几何数据的存储,生成,分析,优化。 空间数据类型(存储) 2

6. 复合json 3

6.1. Enum 枚举类型 set 3

7. 问题,, 3

7.1. navacite 不支持查询json问题,可能是版本太低,使用java直接查询 3

7.2. Json索引问题 3

8. JSON数据查询: 4

8.1. 2)插入数据 4

8.2. 首先通过json对象中的某个键值对来做条件查询 5

8.2.1. 其他JSON函数 5

9. ref 6

MySQL从5.7.8起开始支持JSON字段,这极大的丰富了MySQL的数据类型。也方便了广大开发人员。但MySQL并没有提供对JSON对象中的字段进行索引的功能,至少没有直接对其字段进行索引的方法。本文将介绍利用MySQL 5.7中的虚拟字段的功能来对JSON对象中的字段进行索引。

    1. 数值类型
  1. 字符串
  2. 时间日期
  3. 地理位置

MySQL中的point用于表示GIS中的地理坐标,在GIS中广泛使用,

POINT、LINESTRING这样的,用 byte[] ,也就是二进制数组才行。用string和int[]这样的都不行。

其余空间类型都是基于这两个的,相必也是这样。

得到byte[]之后再转换成相应的内容就行了

MultiLineString、Polygon、GeometryCollectio

  1. 几何数据的存储,生成,分析,优化。 空间数据类型(存储)

MySQL支持以下数据类型:

Geometry:可以存储所有的几何类型

Point:简单点

LINESTRING:简单线

POLYGON:简单面

MULTIPOINT:多点

MULITILINESTRING:多线

MUILITIPOLYGON:很多方面

GEOMETRYCOLLECTION:任何几何集合

在创建表的时候可以根据需求选择合适的几何类型存储你的空间数据。

  1. 复合json

建表,可以直接在啊navicate里面写json。。虽然美育列出来

  1. Enum 枚举类型 set

SET是一个字符串对象,可以有零或多个值,其值来自表创建时规定的允许的一列值。指定包括多个SET成员的SET列值时各成员之间用逗号(‘,’)间隔开。这样SET成员值本身不能包含逗号。

  1. 问题,,

    1. navacite 不支持查询json问题,可能是版本太低,使用java直接查询
    2. Json索引问题

使用虚拟咧解决

Josn数据的操作

  1. JSON数据查询:
  1. 2)插入数据

-- 插入含有json数组的记录
INSERT INTO oper_log(oper_name,oper_detail ) VALUES( 'admin', JSON_ARRAY(1, "course", NULL, TRUE, CURTIME()));

-- 插入含有json对象的记录
-- 可以使JSON_OBJECT()方法来创建json对象,方法内带有偶数个参数,一个键一个值得形式转换为json
INSERT INTO oper_log(oper_name,oper_detail ) VALUES( 'admin', JSON_OBJECT("course", "维修保养课程", "currentTime", now()));
-- 如果如下面向JSON_OBJECT()方法传入奇数个参数,会报错:Incorrect parameter count in the call to native function 'JSON_OBJECT'
INSERT INTO oper_log(oper_name,oper_detail ) VALUES( 'admin', JSON_OBJECT("course", "维修保养课程", "currentTime"));//错误的
-- 还可以使用json字符串的形式传入json对象
INSERT INTO oper_log(oper_name,oper_detail ) VALUES( 'admin', '{"course":"数据结构课程", "currentTime":"2018-010-1 14:01:00"}');
-- 一定要转换为字符串,如下直接传入对象,会报错:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"course":"数据结构课程", "currentTime":"2018-010-1 14:01:00"})' at line 1
INSERT INTO oper_log(oper_name,oper_detail ) VALUES( 'admin', {"course":"数据结构课程", "currentTime":"2018-010-1 14:01:00"}); //错误的

上面插入的数据:

说明下,我原来用的navicat发现查josn的时候是空 select * 的时候定义的json字段会不显示,然后换了新版本就好了。

通过dollar语法模式,,或者json系列函数来完成即可。。

  1. 首先通过json对象中的某个键值对来做条件查询

SELECT * FROM user_json_test where json_content -> '$.flag'=0;
SELECT * FROM user_json_test where JSON_EXTRACT(json_content,'$.flag') =0;

JSON_EXTRACT函数的语法为:JSON_EXTRACT(字段名,‘$.key’),这个函数可以在条件中使用,也可以在查询的时候使用。如下

  1. 其他JSON函数

下面介绍一些其他函数。

  • JSON_LENGTH(json_doc[, path])
    计算JSON对象或字段的value的长度(key-value的数量或者数组的长度)
  • JSON_TYPE(json_val)
    查询数据结果的数据类型。

SELECT JSON_TYPE(json_content) FROM user_json_test where id = 2;
SELECT JSON_TYPE(JSON_EXTRACT(json_content, '$.array'))FROM user_json_test WHERE id = 1;
第一个结果是:object;第二个结果是:array

  • JSON_VALID(val)
    查询结果是否是JSON。
  1. 我们进一步来演示把authors 这个KEY对应的所有对象删掉。

?

1

2

3

4

mysql> UPDATE json_test

-> SET person_desc = json_remove(person_desc,'$.authors')\G

Query OK, 1 row affected (0.01 sec)

Rows matched: 1 Changed: 1 Warnings: 0

暂时就写这么多吧,后续再进行补充。本人也是刚开始接触mysql的json,如果有问题请指教~

  1. ref

【mysql】字段支持JSON类型 - awildfish - 博客园.html

(9+条消息)mysql数据库 geometry, point, polygon类型,地理空间数据库查询操作 - 一个球_的博客 - CSDN博客.html

MySQL · 最佳实践 · 如何索引JSON字段 - 简书.html

【mysql】字段支持JSON类型 - awildfish - 博客园.html

MySQL __ MySQL 5.7 Reference Manual __ 13.1.18 CREATE TABLE Syntax.html

mysql json类型的一些说明 - 简书.html

MySQL JSON数据类型 - 守望一心 - 博客园.html

Atitit mysql 数据类型 5.7.9 目录 1.1. 数值类型 1 2. 字符串 2 3. 时间日期 2 4. 地理位置 2 5. 几何数据的存储,生成,分析,优化。 空间数据类型(存储)相关推荐

  1. MySQL 基础 -- MySQL 数据类型说明(数值类型、字符串类型、日期时间类型)、SQL通用语法和SQL分类

    文章目录 1. 数据类型说明(数值类型.字符串类型.日期时间类型) 1.1数值类型 1.2 字符串类型 1.3 日期类型 1.4 数据类型练习:设计一张员工信息表 2. SQL通用语法和SQL分类 2 ...

  2. mysql适合储存高清电影的数据类型_下面选项中,适合存储高清电影的数据类型是 (5.0分)_学小易找答案...

    [单选题]以下比较结果为真的是( ). (5.0分) [单选题]定点数的最大位数是( ),最大精度是( ). (5.0分) [单选题]下面选项中,哪个可以正确创建一个名称为itcast的数据库? (5 ...

  3. MySQL文本类型 存储大小,及各种数据类型在Java中用什么接收

    MySQL文本类型 基础类型: char (M个字节,0 <=M<= 255) varchar (L+1个字节,其中L<=M 且 0 <=M<= 65535) text ...

  4. mysql约束条件整型_MySQL 数据类型(整型,浮点型,字符类型,日期类型,枚举和集合) 约束条件 自增...

    存储引擎补充: 不同的应用软件处理不同类型的数据 MySQL5.5版本及以上默认的存储引擎为innodb innodb:支持行锁表锁,外键,事物,安全性更高,教myisam数据更安全 myisam:仅 ...

  5. 深入MySQL存储引擎分析锁和排序的原理

    几个问题 为什么不建议使用订单号作为主键? 为什么要在需要排序的字段上加索引? for update 的记录不存在会导致锁住全表? redolog 和 binlog 有什么区别? MySQL 如何回滚 ...

  6. mysql可以存储整数数值的是_MySQL知识树 数值类型 整数

    数值类型 MySQL的数值类型包括整数类型.浮点数类型.定点数类型.位类型. 整数类型 MySQL支持的整数类型有tinyint.smallint.mediumint.int.bigint(范围从小到 ...

  7. MySQL存储引擎 lnnoDB逻辑架构 innodb存储引擎表空间(ibd文件)详解 回滚日志的物理空间

    文章目录 存储引擎 一 MySQL组织架构 二 查看存储引擎信息 三 修改存储引擎 3.1 配置文件修改存储引擎 3.2 临时修改存储引擎 3.3 建表时修改存储引擎 四 存储引擎实验 五 数据库升级 ...

  8. Mysql使用大全(MySQL架构与存储引擎 、事务 、业务设计 、索引 、数据结构 、执行计划 、数值类型)

    这是一篇mysql大全,学习完这篇文章,相信在日常业务和面试完全不在问题,下面我们来一一介绍 MySQL架构与存储引擎 全局变量和会话变量 要想显式指定是否设置全局或会话变量,使用GLOBAL或SES ...

  9. mysql知识点系列-数据目录(Data目录)下文件类型一窥究竟

    本文主要基于<高性能MySQL> 文章目录 1.数据库目录 2.frm文件 3.ibd文件 4.ibdata文件 5.ib_logfile文件 6.UNDO日志 7.慢查询日志 8.二进制 ...

  10. mysql 地理空间支持_MySQL数据类型-地理空间数据类型

    1.MySQL地理空间数据类型 POINT,存储一个位置点数据 LINESTRING,存储一条线数据 POLYGON,存储一个多边形数据 MULTIPOINT,存储多个位置点数据 MULTILINES ...

最新文章

  1. 信息熵与自然语言处理
  2. VMware安装MacOSx系统
  3. IBM Cloud Paks:云端追光者也!
  4. 判断浏览器是pc端还是移动端
  5. 关于《精通Unix下C语言编程与项目实践》的试读策划
  6. Python图像处理库PIL的ImageStat模块介绍
  7. Ubuntu 配置vsftpd实现FTP服务器
  8. Tomcat详解(三)——tomcat多实例
  9. Windows开发——内存读写API
  10. C#中,如何随意拖动PictureBox?
  11. 基于神经网络的图像识别
  12. linux系统如何重置密码
  13. APN(default、mms、supl、dun、hipri接入点类型的区别)
  14. 7-3 约分最简分式
  15. ios9企业证书提示“未受信任的企业级开发者”解决方法
  16. linux设备的uuid,Linux设备中的UUID
  17. php 实现我的足迹,Wordpress 实现“您的足迹”功能
  18. 头的各个部位示意图_上臂肌群图示:肱二头肌、肱三头肌、肱肌部位图解说明...
  19. 【期末复习笔记】知识产权法——著作权、专利法、商标权
  20. Pip 升级——以及如何更新 Pip 和 Python

热门文章

  1. hdfs 中chunk_HDFS读写流程
  2. ajax存储表单数据,使用ajax json将表单数据存储到数据库php
  3. ipmitool介绍_ipmitool管理工具
  4. netframework有什么用_为什么.NET Web 应用推荐使用 await、async异步编程?
  5. android多屏互动方案,基于Android的DLNA多屏互动系统的设计与开发
  6. mysql删除用户密码_MySQL 创建用户、授权用户、撤销用户权限、更改用户密码、删除用户(实用技巧)...
  7. 深入探索Java工作原理:JVM,内存回收及其他
  8. 这种反人类的工作被机器人取代,我举双手双脚赞成
  9. iPhone 无线投影到 Mac
  10. 2018年的人工智能将如何发展?看看专家怎么说