首页 > 数据库 >PostgreSQL向量数据类型SQL示例

PostgreSQL向量数据类型SQL示例

时间:2024-09-23 12:21:43浏览次数:3  
标签:PostgreSQL 示例 30 数据类型 40 ST 数组 20 array


PostgreSQL 支持多种数据类型,其中包括向量类型,可以用来存储和处理几何对象,如点(points)、线(lines)、线段(line segments)、盒子(boxes)、圆(circles)、路径(paths)、多边形(polygons)等。此外,PostgreSQL 还支持数组类型,可以用来存储一维或多维数组。

向量数据类型示例

1. 几何类型

PostgreSQL 提供了多种几何类型,可以用来表示二维空间中的各种几何对象。以下是一些示例:

创建表
CREATE TABLE geom_objects (
    id SERIAL PRIMARY KEY,
    point POINT,
    line LINESTRING,
    polygon POLYGON
);
插入数据
INSERT INTO geom_objects (point, line, polygon)
VALUES
    ('POINT(10 20)', 'LINESTRING(10 20, 30 40)', 'POLYGON((10 20, 20 30, 30 20, 10 20))');

INSERT INTO geom_objects (point, line, polygon)
VALUES
    ('POINT(30 40)', 'LINESTRING(30 40, 50 60)', 'POLYGON((30 40, 40 50, 50 40, 30 40))');
查询数据
SELECT * FROM geom_objects;
几何函数

PostgreSQL 提供了许多几何函数来处理这些几何对象,例如:

  • ST_Distance:计算两点之间的距离。
  • ST_Buffer:创建一个围绕几何对象的缓冲区。
  • ST_Contains:检查一个几何对象是否包含另一个几何对象。

示例:

SELECT ST_Distance(ST_GeomFromText('POINT(10 20)'), ST_GeomFromText('POINT(30 40)')) AS distance;
2. 数组类型

PostgreSQL 中的数组可以用来存储一系列相同类型的数据。数组类型可以用方括号表示,例如 int[] 表示整数数组。

创建表
CREATE TABLE numeric_data (
    id SERIAL PRIMARY KEY,
    int_array INT[],
    float_array FLOAT[]
);
插入数据
INSERT INTO numeric_data (int_array, float_array)
VALUES
    (ARRAY[1, 2, 3], ARRAY[1.1, 2.2, 3.3]),
    (ARRAY[4, 5, 6], ARRAY[4.4, 5.5, 6.6]);
查询数据
SELECT * FROM numeric_data;
数组操作

PostgreSQL 提供了多种数组操作函数,例如:

  • array_length:获取数组的长度。
  • array_append:向数组追加元素。
  • array_cat:连接两个数组。

示例:

SELECT array_length(int_array, 1) FROM numeric_data;

示例:使用向量数据进行地理分析

假设我们要在一个表中存储城市的地理位置,并计算两个城市之间的距离:

创建表
CREATE TABLE cities (
    id SERIAL PRIMARY KEY,
    name TEXT,
    location GEOMETRY(Point, 4326)  -- WGS 84 坐标系
);
插入数据
INSERT INTO cities (name, location)
VALUES
    ('New York', ST_GeomFromText('POINT(-74.0060152 40.7127281)', 4326)),
    ('Los Angeles', ST_GeomFromText('POINT(-118.243683 34.052234)', 4326));
计算距离
SELECT ST_Distance(cities.location, target.location) AS distance
FROM cities
JOIN cities AS target ON cities.id < target.id
WHERE cities.name = 'New York' AND target.name = 'Los Angeles';


标签:PostgreSQL,示例,30,数据类型,40,ST,数组,20,array
From: https://blog.51cto.com/zhangxueliang/12088541

相关文章

  • Python NumPy处理数组的基本用法代码示例
    NumPy是一个用于处理数组(向量和矩阵)以及进行数值运算的Python库。下面是一些简单的例子来展示如何使用NumP:示例1:创建数组importnumpyasnpa=np.array([1,2,3])#创建一个一维数组b=np.array([[1,2,3],[4,5,6]])#创建一个二维数组print(a)print(b)示......
  • post请求的body数据类型和content-type的关系
    背景:登陆接口的类型是post,request接口的content-type是multipart/form-data;boundary=----WebKitFormBoundaryxeYAwSy6FSo4kow9response接口的content-type是application/json;charset=utf-8接口的请求体在编写python脚本时post接口的请求头content-type定义了类型multipar......
  • 批量检测微信小程序封禁状态的 PHP 脚本示例
    <?php//定义需要检查的小程序AppID数组$appIds=array('appid1','appid2','appid3');//请替换为您的实际AppID//遍历小程序AppID,调用API进行状态检查foreach($appIdsas$appId){  $apiUrl='https://down.ychengsnsm.com/xcx/checkxcx.php?a......
  • Java 入门基础篇08 - Java的变量与数据类型的认识
    1.变量概述什么是变量在程序运行的过程中其值可以在某个范围改变的量变量的作用在程序运行过程中存放某一个不断发生改变的值,在运行时JVM会为变量分配一块内存空间如何定义变量数据类型变量名=变量值;在java中定义变量时必须指定数据类型1. 数据类型数据类型概述......
  • 【TS】加深TS理解的开发实战示例代码
    TS接口开发实战:基于类类型接口设计实现日期时间应用interfaceITimeDate{curTime:Date;setTime(cur:Date):void;getTime():Date;}classCTimeimplementsITimeDate{curTime:Date;constructor(cur:Date){this.curTime=cur;......
  • appium+python自动化代码示例
    fromselenium.webdriver.common.byimportByimporttime#设置Appium连接参数caps={"platformName":"Android","platformVersion":"7.1.2",#根据夜神模拟器的Android版本进行修改"deviceName":"127.0.0.......
  • 强化学习基础:主要算法框架与Python实现示例
    创作不易,您的打赏、关注、点赞、收藏和转发是我坚持下去的动力!强化学习(ReinforcementLearning,RL)是一种通过与环境交互来学习策略的机器学习方法。RL主要包含以下几个关键组件:状态(State)、动作(Action)、奖励(Reward)、策略(Policy)和价值函数(ValueFunction)。常见的强化学习主流......
  • 小波变换及示例
    在二维Haar小波中,输入数据分解为低频和高频分量的计算公式源自Haar小波的特性,以及对输入矩阵的行和列进行逐步分解的方式。###Haar小波变换的基本思想Haar小波是最简单的小波变换,它基于二进制分解。对于二维数据(如图像),通常先对行进行一维变换,然后对列进行一维变换,得到四......
  • c语言-数据类型
    1.C语言的简介  是一门面向过程的编程语言   1972年贝尔实验室 丹尼斯里奇   ...//百度百科https://baike.baidu.com/item/c%E8%AF%AD%E8%A8%80/105958?fr=ge_ala2.问题引入   1)我们所有要处理的这些数据文件(视频,音乐,图片等)    ......
  • JavaScript数据类型转换 字符串
    类型转换数据类型的转换有两种方式,一种是在运算等处理过程中自动转换,另一种是显式的转换。字符串类型转换除了在处理过程中的隐式转换,可以使用String(Value)函数进行转换。例子1:letval1=true;letval2=false;letval3=null;letval4=99;letval5=798.125; console.log(......