当前位置: 首页 > news >正文

数据库管理-第156期 Oracle Vector DB AI-07(20240227)

数据库管理156期 2024-02-27

  • 数据库管理-第156期 Oracle Vector DB & AI-07(20240227)
    • 1 Vector相关DDL操作
      • 可以在现有的表上新增vector数据类型的字段:
      • 可以删除包含vector数据类型的列:
      • 可以使用CTAS的方式,从其他有vector数据的表创建新表:
    • 2 Vector上的操作限制
    • 3 Vector Distance
      • 创建向量的函数
      • 使用vector_distance()函数
    • 总结

数据库管理-第156期 Oracle Vector DB & AI-07(20240227)

作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Associate: Database(Oracle与MySQL)
国内某科技公司 DBA总监
10年数据库行业经验,现主要从事数据库服务工作
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP、认证技术专家、年度墨力之星,ITPUB认证专家,OCM讲师
圈内拥有“总监”、“保安”、“国产数据库最大敌人”等称号,非著名社恐(社交恐怖分子)
公众号:胖头鱼的鱼缸;CSDN:胖头鱼的鱼缸(尹海文);墨天轮:胖头鱼的鱼缸;ITPUB:yhw1809。
除授权转载并标明出处外,均为“非法”抄袭。

昨天换了换心情,换了换内容,今天继续。

1 Vector相关DDL操作

可以在现有的表上新增vector数据类型的字段:

CREATE TABLE IF NOT EXISTS t5(id          NUMBER NOT NULL,name        VARCHAR2(32),PRIMARY KEY (id));ALTER TABLE t5 ADD v1 VECTOR;
ALTER TABLE t5 ADD v2 VECTOR(2, float32);DESC t5;

image.png

可以删除包含vector数据类型的列:

ALTER TABLE t5 DROP COLUMN v2;DESC t5;DROP TABLE IF EXISTS t5;

image.png

可以使用CTAS的方式,从其他有vector数据的表创建新表:

CREATE TABLE IF NOT EXISTS t6AS SELECT * FROM t2;DESC t6;SELECT * FROM t6;

image.png

2 Vector上的操作限制

Vector之间无法执行对比操作。因此下面语句都将失败:

SELECT id, name FROM t2 WHERE v1 = '[2.9]';SELECT id, name FROM t2 WHERE v1 = vector('[2.9, 0]', 2, float32);

image.png

3 Vector Distance

vector_distance() 函数是最重要的向量函数,通过该函数进行相近搜索。

创建向量的函数

vector()函数可以创建向量:

SELECT VECTOR('[0,0]');
SELECT VECTOR('[10,0]');
SELECT VECTOR('[0,5]', 2, float32);
SELECT VECTOR('[4,3]');
SELECT VECTOR('[5,-2]');
SELECT VECTOR('[-3,-4]');
SELECT VECTOR('[3.14,2.718]');
SELECT VECTOR('[-5.3,4.2]');
SELECT VECTOR('[-7,-9]');

image.png
image.png

使用vector_distance()函数

1.使用vector_distance()返回两个向量之间的距离
image.png
例如,(0,0)和(10,0_之间的距离为10,即垂直偏移为0,水平偏移为10。

SELECT VECTOR_DISTANCE(VECTOR('[0, 0]'),VECTOR('[10, 0]'),EUCLIDEAN) DISTANCE;

image.png
2.可以使用to_number()函数来提升结果的可读性

SELECT TO_NUMBER(VECTOR_DISTANCE(VECTOR('[0, 0]'),VECTOR('[10, 0]'),EUCLIDEAN)) DISTANCE;

image.png
3.(0,0)和(0,5)之间的距离就是5,即水平偏移为0,垂直偏移为5。
image.png

SELECT TO_NUMBER(VECTOR_DISTANCE(VECTOR('[0, 0]', 2, FLOAT32),VECTOR('[0, 5]',2, FLOAT32),EUCLIDEAN)) DISTANCE;

image.png
4.(0,0)和(4,3)距离为5,即水平偏移为4,垂直偏移为3。加上简单的勾股定理,勾三股四弦五
image.png

SELECT TO_NUMBER(VECTOR_DISTANCE(VECTOR('[0, 0]', 2, FLOAT32),VECTOR('[4, 3]', 2, FLOAT32),EUCLIDEAN)) DISTANCE;

image.png

总结

本期介绍了vector相关的DDL操作及操作限制,vector_distance()函数的基本使用。
老规矩,知道写了些啥。

http://www.lryc.cn/news/307762.html

相关文章:

  • CASAtomic原子操作详解
  • 真机测试——关于荣耀Magic UI系列HBuilder真机调试检测不到解决办法
  • 代理IP安全问题:在国外使用代理IP是否安全
  • SonarLint 疑难语法修正
  • MurmurHash算法
  • CSRF靶场实战
  • 小程序性能优化
  • C++拿几道题练练手吧
  • 【国产MCU】-CH32V307-I2C控制器
  • k8s pod理论
  • 智慧应急:构建全方位、立体化的安全保障网络
  • 国际黄金价格是什么?和黄金价格有何区别?
  • React入门简介
  • 强化学习_06_pytorch-PPO实践(Hopper-v4)
  • Scala Intellij编译错误:idea报错xxxx“is already defined as”
  • 面试笔记系列五之MySql+Mybaits基础知识点整理及常见面试题
  • 掌握Pillow:Python图像处理的艺术
  • React最常用的几个hook
  • 自然语言处理Gensim入门:建模与模型保存
  • Windows 10中Visual Studio Code(VSCode)无法自动打开终端的解决办法
  • python dictionary 字典中的内置函数介绍及其示例
  • pdf转word文档怎么转?分享4种转换方法
  • 深度测试:指定DoC ID对ES写入性能的影响
  • 【JGit】 AddCommand 新增的文件不能添加到暂存区
  • golang学习6,glang的web的restful接口传参
  • Carla自动驾驶仿真八:两种查找CARLA地图坐标点的方法
  • HarmonyOS | 状态管理(八) | PersistentStorage(持久化存储UI状态)
  • Git 突破 文件尺寸限制
  • HarmonyOS开发云工程与开发云函数
  • SpringMVC了解