MySQL --- 函数大全 6

Posted 你∈我

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL --- 函数大全 6相关的知识,希望对你有一定的参考价值。

目录

1.结果集的分区中的每一行分配一个连续的整数        ROW_NUMBER()

2.将字符串追加到指定的数量        RPAD()

3.删除尾随空格        RTRIM()

4.将秒转换为“hh:mm:ss”格式        SEC_TO_TIME()

5.返回指定时间或日期时间值的第二部分        SECOND()

6.计算 SHA-1 160 位校验和        SHA1() / SHA()

7.计算 SHA-2 校验和        SHA2()

8.返回参数的符号        SIGN()

9.返回参数的正弦值        SIN()

10.睡眠数秒        SLEEP()

11.返回一个声音字符串        SOUNDEX()

12.比较声音        SOUNDS LIKE

13.阻止,直到复制副本读取并应用了所有更新,直到 指定位置        SOURCE_POS_WAIT()

14.返回指定空格数的字符串        SPACE()

15.返回参数的平方根        SQRT()

16.返回面或多面区域        ST_AREA()

17.从内部几何格式转换为 WKB        ST_ASBINARY() / ST_ASWKB()

18.从几何生成地理 JSON 对象        ST_ASGEOJSON()

19.从内部几何格式转换为 WKT        ST_ASTEXT() / ST_ASWKT()

20.返回距几何给定距离内的点的几何        ST_BUFFER()

21.生成 ST_Buffer() 的策略选项        ST_BUFFER_STARTEGY()

22.返回质心作为点        ST_CENTROID()

23.将空间值聚合到集合中        ST_COLLECT()

24.一个几何图形是否包含另一个几何图形        ST_CONTAINS()

25.返回几何形状的凸包        ST_CONVEXHULL()

​26.一个几何图形是否与另一个几何图形相交        ST_CROSSES()

27.两个几何形状的返回点集差异        ST_DIFFERENCE()

28.几何尺寸        ST_DIMENSION()

29.一个几何图形是否与另一个几何图形不相交        ST_DISJOINT()

30.一个几何图形与另一个几何图形的距离        ST_DISTANCE()

31.两个几何形状在地球上的最小距离         ST_DISTANCE_SPHERE

32.线字符串的终点        ST_ENDPOINT()

33.返回几何图形的 MBR        ST_ENVELOPE()

34.一个几何图形是否等于另一个几何图形        ST_EQUALS()

35.多边形的返回外环        ST_EXTERIORRING()

36.一个几何体与另一个几何体的离散弗雷谢距离        ST_FRECHETDISTANCE()

37.生成地理哈希值        ST_GEOHASH()

38.从 WKT 返回几何集合        ST_GEOCOLLFROMTEXT() / ST_GEOMETRYCOLLECTIONFROMTEXT() / ST_GEOMCOLLFROMTEXT()

39.从 WKB 返回几何集合        ST_GEOMCOLLFROMTWKB() / ST_GEOMETRYCOLLECTIONFROMEKB()

40.从几何集合中返回第 N 个几何图形        ST_GEOMETRYN()

41.返回几何类型的名称        ST_GEOMETRYTYPE()

42.从 GeoJSON 对象生成几何图形        ST_GEOMFROMGEOJSON()

43.从 WKT 返回几何图形        ST_GeomFromText()/ ST_GeometryFromText()

44.从 WKB 返回几何图形        ST_GeomFromWKB ()/ST_GeometryFromWKB()

45.一个几何体与另一个几何体的离散豪斯多夫距离        ST_HausdorffDistance()

46.返回多边形的第 N 个内环        ST_InteriorRingN()

47.返回点集 两个几何形状的交集        ST_Intersection()

48.一个几何图形是否与另一个几何图形相交        ST_Intersects()

49.几何图形是否封闭和简单        ST_IsClosed()

50.几何图形是否为空        ST_IsEmpty()

51.几何图形是否简单        ST_IsSimple()

52.几何图形是否有效        ST_IsValid()


1.结果集的分区中的每一行分配一个连续的整数        ROW_NUMBER()

脚本

create table a
(
    id    int auto_increment primary key,
    score int
);

insert into a (score)
values (90),
       (90),
       (85),
       (80),
       (70);
insert into a (score) value (100);
insert into a (score) value (90);


select id, row_number() over (order by score)
from a;

分析

ROW_NUMBER () 是一个窗口函数,它为结果集的分区中的每一行分配一个连续的整数。. 行号以每个分区中第一行的行号开头。

窗口函数

结果

2.将字符串追加到指定的数量        RPAD()

脚本

SELECT RPAD('hello',6,'***');

分析

将一个字符串与另一个字符串右填充到一定长度。

RPAD(stringlengthrpad_string)

string必需。原始字符串。 如果原始字符串的长度大于 length 参数,此函数将删除 string
length必需。右填充后的字符串长度
rpad_string必需。右填充到 string 的字符串

结果

3.删除尾随空格        RTRIM()

脚本

SELECT RTRIM('   HELLO     ');

结果

4.将秒转换为“hh:mm:ss”格式        SEC_TO_TIME()

脚本

SELECT SEC_TO_TIME(45648);

结果

5.返回指定时间或日期时间值的第二部分        SECOND()

脚本

SELECT SECOND(now()),SECOND('16:23:36');

结果

6.计算 SHA-1 160 位校验和        SHA1() / SHA()

脚本

SELECT SHA1('ABC');

分析

计算字符串的 SHA-1 160 位校验和,如 RFC 3174(安全哈希算法)中所述。值为 以 40 个十六进制数字的字符串形式返回,或者如果参数为 .可能的用途之一 函数作为哈希键

结果

7.计算 SHA-2 校验和        SHA2()

脚本

SELECT SHA2('ABC',224);

分析

计算 SHA-2 系列哈希函数 (SHA-224, SHA-256、SHA-384 和 SHA-512)。第一个参数是 要散列的纯文本字符串。第二个参数指示 结果的所需位长度,必须具有值 的 224、256、384、512 或 0(相当于 256)。如果 参数为或哈希长度 不是允许的值之一,返回值为 。否则,函数结果为 包含所需位数的哈希值

结果

8.返回参数的符号        SIGN()

脚本

select sign(10), sign(-5), sign(0);

分析

正数返回1

负数返回-1

0返回0

结果

9.返回参数的正弦值        SIN()

脚本

select sin(pi()),sin(0);

结果

10.睡眠数秒        SLEEP()

脚本

select sleep(10);

分析

 会等10s

结果

11.返回一个声音字符串        SOUNDEX()

脚本

SELECT SOUNDEX('Hello'),SOUNDEX('ABC');

分析

SOUNDEX(str)

返回str的一个同音字符串。两个字符串的声音几乎同样应该有相同的同音字符串。一个标准的soundex字符串是四个字符长,但是SOUNDEX()函数返回一个任意长的的字符串。您可以使用SUBSTRING()对结果得到一个标准的soundex字符串。在str中所有非字母字符将被忽略。以外的AZ范围内的所有国际字母被当作元音。

//更多请阅读:https://www.yiibai.com/sql/sql-soundex-function.html
 

结果

12.比较声音        SOUNDS LIKE

脚本

SELECT 'Abc' SOUNDS LIKE 'Abc','abc' SOUNDS LIKE 'bcd';

分析

mysql SOUNDS LIKE运算符将从表中搜索相似的声音值。它的语法是“ Expression1 SOUNDS LIKE Expression2”,其中,Expression1和Expression2将根据它们的英语发音进行比较。

结果

13.阻止,直到复制副本读取并应用了所有更新,直到 指定位置        SOURCE_POS_WAIT()

脚本

SELECT MASTER_POS_WAIT('source_log_file', source_log_pos [, timeout][, channel])

分析

这实际上是一个函数,而不是一个语句。它用于 确保副本已读取并执行的事件,最高可达 在源的二进制日志中的给定位置。

该函数已弃用

14.返回指定空格数的字符串        SPACE()

脚本

SELECT SPACE(6);

结果

15.返回参数的平方根        SQRT()

脚本

SELECT SQRT(4),SQRT(15);

结果

16.返回面或多面区域        ST_AREA()

脚本

 SET @poly =
       'Polygon((0 0,0 3,3 0,0 0),(1 1,1 2,2 1,1 1))';

SELECT ST_Area(ST_GeomFromText(@poly));

分析

  • 对于维度为 0 或 1 的参数,结果为 0。

  • 如果几何图形为空,则返回值为 0 而不是 比。NULL

  • 对于几何集合,结果是 所有组件的面积值。如果几何形状 集合为空,其区域返回为 0。

  • 如果几何具有地理的 SRID 值 空间参考系统 (SRS),ER_NOT_IMPLEMENTED_FOR_GEOGRAPHIC_SRS则发生ER_NOT_IMPLEMENTED_FOR_GEOGRAPHIC_SRS错误。

结果

17.从内部几何格式转换为 WKB        ST_ASBINARY() / ST_ASWKB()

脚本

SET @g = ST_LineFromText('LINESTRING(0 5,5 10,10 15)', 4326);
SELECT ST_AsText(ST_GeomFromWKB(ST_AsWKB(@g)));

分析

将内部几何格式的值转换为其 WKB 表示并返回二进制结果。

函数返回值具有地理坐标 (纬度、经度)按空间指定的顺序 适用于几何参数的参考系

结果

18.从几何生成地理 JSON 对象        ST_ASGEOJSON()

脚本

SELECT ST_AsGeoJSON(ST_GeomFromText('POINT(11.11111 12.22222)'),2);

分析

从几何图形 g 生成 GeoJSON 对象。对象字符串具有 连接字符集和排序规则。

如果任何参数为 ,则返回值 是。如果任何非参数无效,则会发生错误。NULLNULLNULL

max_dec_digits(如果指定), 限制坐标和原因的小数位数 输出的四舍五入。如果未指定,则此参数默认为 最大值 232 − 1. 最小值为 0。

选项(如果指定)为 位掩码。下表显示了允许的标志值。 如果几何参数的 SRID 为 0,则没有 CRS 对象 甚至为那些请求一个标志值的标志值生成。

标记值意义
0别无选择。如果选项是 未指定。
1向输出添加边界框。
2将短格式 CRS URN 添加到输出。默认格式为短格式 格式 ().EPSG:srid
4添加长格式 CRS URN (). 此标志将覆盖标志 2。例如,选项值 的 5 和 7 表示相同(添加一个边界框和一个 长格式 CRS URN)。urn:ogc:def:crs:EPSG::srid

结果

19.从内部几何格式转换为 WKT        ST_ASTEXT() / ST_ASWKT()

脚本

 SET @g = 'LineString(1 1,2 2,3 3)';
SELECT ST_AsText(ST_GeomFromText(@g));

分析

将内部几何格式的值转换为其 WKT 表示并返回字符串结果。

函数返回值具有地理坐标 (纬度、经度)按空间指定的顺序 适用于几何参数的参考系

结果

20.返回距几何给定距离内的点的几何        ST_BUFFER()

脚本

SET @pt = ST_GeomFromText('POINT(0 0)');
SELECT ST_AsText(ST_Buffer(@pt, 0));

分析

返回一个几何图形,该几何图形表示其距离的所有点 从几何值 g 较小 小于或等于 d 的距离。 结果与几何参数位于相同的 SRS 中。

如果几何参数为空,则 ST_Buffer() 返回一个空 几何学。

如果距离为 0,则 ST_Buffer() 返回 几何参数未更改:

结果

21.生成 ST_Buffer() 的策略选项        ST_BUFFER_STARTEGY()

分析

此函数返回一个策略字节字符串,用于 ST_Buffer() 以影响缓冲区 计算。

第一个参数必须是指示策略的字符串 选择:

  • 对于点策略,允许的值为 和 。'point_circle''point_square'

  • 对于联接策略,允许的值为 和 。'join_round''join_miter'

  • 对于最终策略,允许的值为 和 。'end_round''end_flat'

22.返回质心作为点        ST_CENTROID()

脚本

SET @poly =
       ST_GeomFromText('POLYGON((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7,5 5))');
SELECT ST_GeometryType(@poly),ST_AsText(ST_Centroid(@poly));

分析

此函数通过计算处理几何集合 最高维度组件的质心点 集合。这些成分被提取并制成 单个 、 或用于质心计算

结果

23.将空间值聚合到集合中        ST_COLLECT()

脚本

CREATE TABLE product (
  year INTEGER,
  product VARCHAR(256),
  location Geometry
);

INSERT INTO product
(year,  product,     location) VALUES
(2000, "Calculator", ST_GeomFromText('point(60 -24)',4326)),
(2000, "Computer"  , ST_GeomFromText('point(28 -77)',4326)),
(2000, "Abacus"    , ST_GeomFromText('point(28 -77)',4326)),
(2000, "TV"        , ST_GeomFromText('point(38  60)',4326)),
(2001, "Calculator", ST_GeomFromText('point(60 -24)',4326)),
(2001, "Computer"  , ST_GeomFromText('point(28 -77)',4326));

SELECT ST_AsText(ST_Collect(location)) AS result
       FROM product;

分析

聚合几何值并返回单个几何 集合值。有了这个选项, 返回不同几何参数的聚合。

结果

24.一个几何图形是否包含另一个几何图形        ST_CONTAINS()

脚本

SET @g3 = ST_GeomFromText('Polygon((0 0,0 3,3 3,3 0,0 0))');
SET @g4 = ST_GeomFromText('Polygon((0 0,0 3,3 3,3 0,0 0))');



SELECT ST_CONTAINS(@g3,@g4);

分析

返回 1 或 0 以指示 g1 是否完全包含 g2

结果

25.返回几何形状的凸包        ST_CONVEXHULL()

脚本

SET @g = 'MULTIPOINT(5 0,25 0,15 10,15 25)';
SELECT ST_AsText(ST_ConvexHull(ST_GeomFromText(@g)));

分析

返回一个几何图形,该几何图形表示 几何值 g

此函数首先计算几何图形的凸包 检查其顶点是否为共线。函数 如果是,则返回线性船体,否则返回多边形船体。这 函数通过提取所有 集合中所有组件的顶点,从中创建值,然后计算 它的凸包

结果

26.一个几何图形是否与另一个几何图形相交        ST_CROSSES()

分析

两个几何图形在空间上相交,如果它们的 空间关系具有以下属性:

  • 除非 g1 和 g2 都是维度 1:如果 g2 的内部具有与 G1的内部,但G2没有覆盖整个 G1的内部。

  • 如果 g1 和 g2 的维度均为 1:如果 线在有限数量的点中相互交叉 (即没有公共线段,只有单个点 常见)。

此函数返回 1 或 0 以指示 g1 在空间上是否与 g2 相交。

27.两个几何形状的返回点集差异        ST_DIFFERENCE()

脚本

 SET @g11 = Point(1,1), @g12 = Point(2,2);
SELECT ST_AsText(ST_Difference(@g11, @g12));

分析

返回一个几何图形,该几何图形表示点集差值 几何值 G1 和 G2

结果

28.几何尺寸        ST_DIMENSION()

脚本

SELECT ST_Dimension(ST_GeomFromText('LineString(2 2,4 4)'));

分析

返回几何值 g 的固有尺寸。维度可以是 −1, 0、1 或 2

结果

29.一个几何图形是否与另一个几何图形不相交        ST_DISJOINT()

脚本

SET @gg1 = ST_GeomFromText('POINT(1 1)');
SET @gg2 = ST_GeomFromText('POINT(2 2)');

SELECT ST_DISJOINT(@gg1, @gg2);

分析

返回 1 或 0 以指示 g1 在空间上是否与 (不相交)G2.

结果

30.一个几何图形与另一个几何图形的距离        ST_DISTANCE()

脚本

SET @gg1 = ST_GeomFromText('POINT(1 1)');
SET @gg2 = ST_GeomFromText('POINT(2 2)');
SELECT ST_Distance(@gg1, @gg2);

分析

返回 g1 和 g2 之间的距离,以长度测量 几何的空间参考系统 (SRS) 的单位 参数,或者以可选单位参数的单位(如果为 指定。

此函数通过返回 所有组合中的最短距离 两个几何参数的组件。

结果

31.两个几何形状在地球上的最小距离         ST_DISTANCE_SPHERE

脚本

SET @gg1 = ST_GeomFromText('POINT(1 1)');
SET @gg2 = ST_GeomFromText('POINT(2 2)');

SELECT ST_DISTANCE_SPHERE(@gg1, @gg2);

分析

返回球体之间或参数之间的最小球面距离(以米为单位)

如果两个几何参数都是有效的笛卡尔参数或 SRID 0 中的值,则返回值为最短距离 在球体上的两个几何图形之间,提供 半径。如果省略,则默认半径为 6,370,986 米, 点 X 和 Y 坐标被解释为经度和 纬度,分别以度为单位

如果两个几何参数都有效或在地理中的值 空间参考系统 (SRS),返回值为 球体上两个几何之间的最短距离 提供的半径。如果省略,则默认半径相等 平均半径,定义为 (2a+b)/3,其中 a 是 半长轴和 b 是 SRS 的半短轴

结果

32.线字符串的终点        ST_ENDPOINT()

脚本

SET @ls = 'LineString(1 1,2 2,3 3)';
SELECT ST_AsText(ST_EndPoint(ST_GeomFromText(@ls)));

分析

返回作为终结点的 值 ls

结果

33.返回几何图形的 MBR        ST_ENVELOPE()

脚本

SELECT ST_AsText(ST_Envelope(ST_GeomFromText('LineString(1 1,2 2)')));

分析

返回 几何值 g。结果是 返回的值为 由边界框的角点定义:Polygon

POLYGON((MINX MINY, MAXX MINY, MAXX MAXY, MINX MAXY, MINX MINY))

结果

34.一个几何图形是否等于另一个几何图形        ST_EQUALS()

脚本

SET @g1 = Point(1,1), @g2 = Point(2,2);
SELECT ST_Equals(@g1, @g1), ST_Equals(@g1, @g2);

分析

返回 1 或 0 以指示 g1 在空间上是否等于 g2

结果

35.多边形的返回外环        ST_EXTERIORRING()

脚本

SET @poly =
       'Polygon((0 0,0 3,3 3,3 0,0 0),(1 1,1 2,2 2,2 1,1 1))';
 SELECT ST_AsText(ST_ExteriorRing(ST_GeomFromText(@poly)));

结果

36.一个几何体与另一个几何体的离散弗雷谢距离        ST_FRECHETDISTANCE()

脚本

SET @ls1 = ST_GeomFromText('LINESTRING(0 0,0 5,5 5)');
SET @ls2 = ST_GeomFromText('LINESTRING(0 1,0 6,3 3,5 6)');
SELECT ST_FrechetDistance(@ls1, @ls2);

分析

返回两个之间的离散弗雷谢距离 几何形状,反映几何形状的相似程度。这 结果是以长度测量的双精度数字 几何的空间参考系统 (SRS) 的单位 参数,或者单位参数的长度单位

此函数实现离散弗雷谢距离, 这意味着它仅限于点之间的距离 的几何形状。例如,给定两个参数,只有点 考虑几何中明确提到的几何形状。 这些点之间的线段上的点不是 考虑

结果

37.生成地理哈希值        ST_GEOHASH()

脚本

SELECT ST_GeoHash(180,0,10), ST_GeoHash(-180,-90,15);

分析

返回连接字符集中的地理哈希字符串,并且 整理。

对于第一个语法,经度必须是 [−180, 180] 范围内的数字,纬度必须是 范围 [−90, 90]。对于第二种语法,需要一个值,其中 X 和 Y 坐标在经度和 纬度,分别

结果

38.从 WKT 返回几何集合        ST_GEOCOLLFROMTEXT() / ST_GEOMETRYCOLLECTIONFROMTEXT() / ST_GEOMCOLLFROMTEXT()

脚本

SET @g = "MULTILINESTRING((10 10, 11 11), (9 9, 10 10))";
SELECT ST_AsText(ST_GeomCollFromText(@g));

分析

这些函数将已知文本 (WKT) 作为参数 制图表达和(可选)空间参考系统 标识符 (SRID)。它们返回相应的几何图形。对于一个 WKT 格式的说明,请参阅已知文本 (WKT) 格式

结果

39.从 WKB 返回几何集合        ST_GEOMCOLLFROMTWKB() / ST_GEOMETRYCOLLECTIONFROMEKB()

分析

官方讲解连接

40.从几何集合中返回第 N 个几何图形        ST_GEOMETRYN()

脚本

SET @gc = 'GeometryCollection(Point(1 1),LineString(2 2, 3 3))';
SELECT ST_AsText(ST_GeometryN(ST_GeomFromText(@gc),1));

分析

ST_GEOMETRYN(gc,N)

返回值 gc 中的第 N 个几何图形。几何形状已编号 从 1 开始

结果

41.返回几何类型的名称        ST_GEOMETRYTYPE()

脚本

SELECT ST_GeometryType(ST_GeomFromText('POINT(1 1)'));

分析

返回指示几何名称的二进制字符串 几何实例 G 所属的类型。名称 对应于可实例化的子类之J

结果

42.从 GeoJSON 对象生成几何图形        ST_GEOMFROMGEOJSON()

脚本

SET @json = ' "type": "Point", "coordinates": [102.0, 0.0]';
SELECT ST_AsText(ST_GeomFromGeoJSON(@json));

分析

分析表示 GeoJSON 对象并返回几何图形。

结果

43.从 WKT 返回几何图形        ST_GeomFromText()/ ST_GeometryFromText()

分析

官方讲解连接

44.从 WKB 返回几何图形        ST_GeomFromWKB ()/ST_GeometryFromWKB()

分析

官方讲解连接

45.一个几何体与另一个几何体的离散豪斯多夫距离        ST_HausdorffDistance()

脚本

SET @ls1 = ST_GeomFromText('LINESTRING(0 0,0 5,5 5)');
SET @ls2 = ST_GeomFromText('LINESTRING(0 1,0 6,3 3,5 6)');
SELECT ST_HausdorffDistance(@ls1, @ls2);

分析

返回两个之间的离散豪斯多夫距离 几何形状,反映几何形状的相似程度。这 结果是以长度测量的双精度数字 几何的空间参考系统 (SRS) 的单位 参数,或者单位参数的长度单位

此函数实现离散豪斯多夫距离, 这意味着它仅限于点之间的距离 的几何形状。例如,给定两个参数,只有点 考虑几何中明确提到的几何形状。 这些点之间的线段上的点不是 考虑

结果

46.返回多边形的第 N 个内环        ST_InteriorRingN()

脚本

SET @poly =
       'Polygon((0 0,0 3,3 3,3 0,0 0),(1 1,1 2,2 2,2 1,1 1))';


SELECT ST_AsText(ST_InteriorRingN(ST_GeomFromText(@poly),1));

分析

<

以上是关于MySQL --- 函数大全 6的主要内容,如果未能解决你的问题,请参考以下文章

MySQL数据类型 - 空间数据类型

如何使用具有球形几何形状的 MySQL 地理空间扩展

ArcGIS创建点、线、面等几何图形

MATLAB函数库

VBO 通用几何

MySQL数据类型 - 空间数据类型