目录
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()
脚本
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 () 是一个窗口函数,它为结果集的分区中的每一行分配一个连续的整数。. 行号以每个分区中第一行的行号开头。
窗口函数
结果
脚本
SELECT RPAD('hello',6,'***');
分析
将一个字符串与另一个字符串右填充到一定长度。
RPAD(string, length, rpad_string)
string 必需。原始字符串。 如果原始字符串的长度大于 length 参数,此函数将删除 string length 必需。右填充后的字符串长度 rpad_string 必需。右填充到 string 的字符串
结果
脚本
SELECT RTRIM(' HELLO ');
结果
脚本
SELECT SEC_TO_TIME(45648);
结果
脚本
SELECT SECOND(now()),SECOND('16:23:36');
结果
脚本
SELECT SHA1('ABC');
分析
计算字符串的 SHA-1 160 位校验和,如 RFC 3174(安全哈希算法)中所述。值为 以 40 个十六进制数字的字符串形式返回,或者如果参数为 .可能的用途之一 函数作为哈希键
结果
脚本
SELECT SHA2('ABC',224);
分析
计算 SHA-2 系列哈希函数 (SHA-224, SHA-256、SHA-384 和 SHA-512)。第一个参数是 要散列的纯文本字符串。第二个参数指示 结果的所需位长度,必须具有值 的 224、256、384、512 或 0(相当于 256)。如果 参数为或哈希长度 不是允许的值之一,返回值为 。否则,函数结果为 包含所需位数的哈希值
结果
脚本
select sign(10), sign(-5), sign(0);
分析
正数返回1
负数返回-1
0返回0
结果
脚本
select sin(pi()),sin(0);
结果
脚本
select sleep(10);
分析
会等10s
结果
脚本
SELECT SOUNDEX('Hello'),SOUNDEX('ABC');
分析
SOUNDEX(str)
返回str的一个同音字符串。两个字符串的声音几乎同样应该有相同的同音字符串。一个标准的soundex字符串是四个字符长,但是SOUNDEX()函数返回一个任意长的的字符串。您可以使用SUBSTRING()对结果得到一个标准的soundex字符串。在str中所有非字母字符将被忽略。以外的AZ范围内的所有国际字母被当作元音。
//更多请阅读:https://www.yiibai.com/sql/sql-soundex-function.html
结果
脚本
SELECT 'Abc' SOUNDS LIKE 'Abc','abc' SOUNDS LIKE 'bcd';
分析
MySQL SOUNDS LIKE运算符将从表中搜索相似的声音值。它的语法是“ Expression1 SOUNDS LIKE Expression2”,其中,Expression1和Expression2将根据它们的英语发音进行比较。
结果
脚本
SELECT MASTER_POS_WAIT('source_log_file', source_log_pos [, timeout][, channel])
分析
这实际上是一个函数,而不是一个语句。它用于 确保副本已读取并执行的事件,最高可达 在源的二进制日志中的给定位置。
该函数已弃用
脚本
SELECT SPACE(6);
结果
脚本
SELECT SQRT(4),SQRT(15);
结果
脚本
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错误。
结果
脚本
SET @g = ST_LineFromText('LINESTRING(0 5,5 10,10 15)', 4326);
SELECT ST_AsText(ST_GeomFromWKB(ST_AsWKB(@g)));
分析
将内部几何格式的值转换为其 WKB 表示并返回二进制结果。
函数返回值具有地理坐标 (纬度、经度)按空间指定的顺序 适用于几何参数的参考系
结果
脚本
SELECT ST_AsGeoJSON(ST_GeomFromText('POINT(11.11111 12.22222)'),2);
分析
从几何图形
g
生成 GeoJSON 对象。对象字符串具有 连接字符集和排序规则。如果任何参数为 ,则返回值 是。如果任何非参数无效,则会发生错误。
NULL
NULL
NULL
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
结果
脚本
SET @g = 'LineString(1 1,2 2,3 3)';
SELECT ST_AsText(ST_GeomFromText(@g));
分析
将内部几何格式的值转换为其 WKT 表示并返回字符串结果。
函数返回值具有地理坐标 (纬度、经度)按空间指定的顺序 适用于几何参数的参考系
结果
脚本
SET @pt = ST_GeomFromText('POINT(0 0)');
SELECT ST_AsText(ST_Buffer(@pt, 0));
分析
返回一个几何图形,该几何图形表示其距离的所有点 从几何值
g
较小 小于或等于d
的距离。 结果与几何参数位于相同的 SRS 中。如果几何参数为空,则 ST_Buffer() 返回一个空 几何学。
如果距离为 0,则 ST_Buffer() 返回 几何参数未更改:
结果
分析
此函数返回一个策略字节字符串,用于 ST_Buffer() 以影响缓冲区 计算。
第一个参数必须是指示策略的字符串 选择:
对于点策略,允许的值为 和 。
'point_circle'
'point_square'
对于联接策略,允许的值为 和 。
'join_round'
'join_miter'
对于最终策略,允许的值为 和 。
'end_round'
'end_flat'
脚本
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));
分析
此函数通过计算处理几何集合 最高维度组件的质心点 集合。这些成分被提取并制成 单个 、 或用于质心计算
脚本
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;
分析
聚合几何值并返回单个几何 集合值。有了这个选项, 返回不同几何参数的聚合。
结果
脚本
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
结果
脚本
SET @g = 'MULTIPOINT(5 0,25 0,15 10,15 25)';
SELECT ST_AsText(ST_ConvexHull(ST_GeomFromText(@g)));
分析
返回一个几何图形,该几何图形表示 几何值
g
。此函数首先计算几何图形的凸包 检查其顶点是否为共线。函数 如果是,则返回线性船体,否则返回多边形船体。这 函数通过提取所有 集合中所有组件的顶点,从中创建值,然后计算 它的凸包
结果
分析
两个几何图形在空间上相交,如果它们的 空间关系具有以下属性:
除非
g1
和 g2 都是维度 1:如果g2
的内部具有与 G1的内部,但G2
没有覆盖整个G1
的内部。如果
g1
和g2
的维度均为 1:如果 线在有限数量的点中相互交叉 (即没有公共线段,只有单个点 常见)。此函数返回 1 或 0 以指示
g1
在空间上是否与g2
相交。
脚本
SET @g11 = Point(1,1), @g12 = Point(2,2);
SELECT ST_AsText(ST_Difference(@g11, @g12));
分析
返回一个几何图形,该几何图形表示点集差值 几何值
G1
和G2
结果
脚本
SELECT ST_Dimension(ST_GeomFromText('LineString(2 2,4 4)'));
分析
返回几何值
g
的固有尺寸。维度可以是 −1, 0、1 或 2
结果
脚本
SET @gg1 = ST_GeomFromText('POINT(1 1)');
SET @gg2 = ST_GeomFromText('POINT(2 2)');
SELECT ST_DISJOINT(@gg1, @gg2);
分析
返回 1 或 0 以指示
g1
在空间上是否与 (不相交)G2
.
结果
脚本
SET @gg1 = ST_GeomFromText('POINT(1 1)');
SET @gg2 = ST_GeomFromText('POINT(2 2)');
SELECT ST_Distance(@gg1, @gg2);
分析
返回
g1
和g2
之间的距离,以长度测量 几何的空间参考系统 (SRS) 的单位 参数,或者以可选单位参数的单位
(如果为 指定。此函数通过返回 所有组合中的最短距离 两个几何参数的组件。
结果
脚本
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 的半短轴
结果
脚本
SET @ls = 'LineString(1 1,2 2,3 3)';
SELECT ST_AsText(ST_EndPoint(ST_GeomFromText(@ls)));
分析
返回作为终结点的 值
ls
结果
脚本
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))
结果
脚本
SET @g1 = Point(1,1), @g2 = Point(2,2);
SELECT ST_Equals(@g1, @g1), ST_Equals(@g1, @g2);
分析
返回 1 或 0 以指示
g1
在空间上是否等于g2
。
结果
脚本
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)));
结果
脚本
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) 的单位 参数,或者单位参数的长度单位
此函数实现离散弗雷谢距离, 这意味着它仅限于点之间的距离 的几何形状。例如,给定两个参数,只有点 考虑几何中明确提到的几何形状。 这些点之间的线段上的点不是 考虑
结果
脚本
SELECT ST_GeoHash(180,0,10), ST_GeoHash(-180,-90,15);
分析
返回连接字符集中的地理哈希字符串,并且 整理。
对于第一个语法,
经度
必须是 [−180, 180] 范围内的数字,纬度
必须是 范围 [−90, 90]。对于第二种语法,需要一个值,其中 X 和 Y 坐标在经度和 纬度,分别
结果
脚本
SET @g = "MULTILINESTRING((10 10, 11 11), (9 9, 10 10))";
SELECT ST_AsText(ST_GeomCollFromText(@g));
分析
这些函数将已知文本 (WKT) 作为参数 制图表达和(可选)空间参考系统 标识符 (SRID)。它们返回相应的几何图形。对于一个 WKT 格式的说明,请参阅已知文本 (WKT) 格式。
结果
分析
官方讲解连接
脚本
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 开始
结果
脚本
SELECT ST_GeometryType(ST_GeomFromText('POINT(1 1)'));
分析
返回指示几何名称的二进制字符串 几何实例
G
所属的类型。名称 对应于可实例化的子类之J
结果
脚本
SET @json = '{ "type": "Point", "coordinates": [102.0, 0.0]}';
SELECT ST_AsText(ST_GeomFromGeoJSON(@json));
分析
分析表示 GeoJSON 对象并返回几何图形。
分析
官方讲解连接
分析
官方讲解连接
脚本
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) 的单位 参数,或者单位参数的长度单位
此函数实现离散豪斯多夫距离, 这意味着它仅限于点之间的距离 的几何形状。例如,给定两个参数,只有点 考虑几何中明确提到的几何形状。 这些点之间的线段上的点不是 考虑
结果
脚本
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));
分析
ST_InteriorRingN(poly , N)
返回第
N
个内环 对于值poly
作为 .环以编号开头 与 1
结果
脚本
SET @g1 = ST_GeomFromText('LineString(1 1, 3 3)');
SET @g2 = ST_GeomFromText('LineString(1 3, 3 1)');
SELECT ST_AsText(ST_Intersection(@g1, @g2));
分析
返回表示点集交集的几何图形 几何值
g1
和g2
结果
脚本
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,1 0,0 0))');
SELECT ST_Intersects(@g3, @g4);
分析
返回 1 或 0 以指示
g1
在空间上是否与g2
相交。
结果
脚本
SET @ls1 = 'LineString(1 1,2 2,3 3,2 2)';
SET @ls2 = 'LineString(1 1,2 2,3 3,1 1)';
SELECT ST_IsClosed(ST_GeomFromText(@ls1));
分析
ST_IsClosed(ls)
对于值 ls,ST_IsClosed如果 ls 关闭(即其 ST_StartPoint() 和 ST_EndPoint() 值为 相同)
对于值 ls,如果 ls 关闭,则 ST_IsClosed() 返回 1(即,ST_StartPoint() 和 ST_EndPoint() 值为 LS中每个相同)
如果 ls 未闭合,则 ST_IsClosed() 返回 0
结果
分析
此函数是一个占位符,返回 1 表示空 几何集合值或 0,否则。
唯一有效的空几何以 一个空的几何集合值。MySQL 不支持 地理信息系统值,例如 .
EMPTY
POINT EMPTY
分析
ST_IsSimple(g)
如果几何值 g 根据 ISO SQL/MM 第 3 部分很简单,则返回 1: 空间标准。ST_IsSimple() 返回 0 如果 这个论点并不简单。
给出的可实例化几何类的描述 在第 11.4.2 节中,“OpenGIS 几何模型”包括 导致类实例 归类为不简单。
ST_IsSimple() 处理其 本节引言中所述的参数, 但此例外:
如果几何具有具有经度或 纬度超出范围,则发生错误:
如果经度值不在范围内 (−180, 180]),发生ER_GEOMETRY_PARAM_LONGITUDE_OUT_OF_RANGE错误 (ER_LONGITUDE_OUT_OF_RANGE在MySQL 8.0.12之前)。
如果纬度值不在 [−90, 90],发生ER_GEOMETRY_PARAM_LATITUDE_OUT_OF_RANGE错误 (ER_LATITUDE_OUT_OF_RANGE MySQL 8.0.12 之前)。
显示的范围以度为单位。确切的范围限制 由于浮点运算而略有偏差。
脚本
SET @ls1 = ST_GeomFromText('LINESTRING(0 0,-0.00 0,0.0 0)');
SET @ls2 = ST_GeomFromText('LINESTRING(0 0, 1 1)');
SELECT ST_IsValid(@ls1);
分析
如果参数在几何上有效,则返回 1,如果 参数在几何上无效。几何有效性为 由 OGC 规范定义。
唯一有效的空几何图形以 空几何集合值。ST_IsValid() 在此返回 1 箱。MySQL 不支持 GIS 值,例如 .EMPTYPOINT EMPTY
ST_IsValid() 处理其 本节引言中所述的参数, 但此例外:
如果几何具有具有经度或 纬度超出范围,则发生错误:
如果经度值不在 (−180, 180],发生ER_GEOMETRY_PARAM_LONGITUDE_OUT_OF_RANGE错误 (ER_LONGITUDE_OUT_OF_RANGE在MySQL 8.0.12之前)。
如果纬度值不在 [−90, 90],发生ER_GEOMETRY_PARAM_LATITUDE_OUT_OF_RANGE错误 (ER_LATITUDE_OUT_OF_RANGE MySQL 8.0.12 之前)。
显示的范围以度为单位。如果 SRS 使用其他设备, 该范围使用其单位中的相应值。这 由于浮点数,确切的范围限制略有偏差 算术。
结果