好的建站软件深圳品牌战略定位公司

张小明 2026/1/12 1:53:53
好的建站软件,深圳品牌战略定位公司,网页设计代码信件怎么写,有关网站建设的文章postgre是想对标Oracle的。所以在定义操作符上也对标了操作符 看下面这条语句#xff1a; /* by yours.tools - online tools website : yours.tools/zh/imagetopng.html */ SELECT 3 OPERATOR(pg_catalog.) 4 sum; -- 1️⃣这条 SQL 看起来很怪#xff0c;但它在 PostgreSQ…postgre是想对标Oracle的。所以在定义操作符上也对标了操作符看下面这条语句/* by yours.tools - online tools website : yours.tools/zh/imagetopng.html */ SELECT 3 OPERATOR(pg_catalog.) 4 sum; -- 1️⃣这条 SQL 看起来很怪但它在 PostgreSQL 里是完全合法的并且会正常返回 7。实际上它就是我们熟悉的/* by yours.tools - online tools website : yours.tools/zh/imagetopng.html */ SELECT 3 4; -- 2️⃣1️⃣ 那行代码其实就是在玩 PostgreSQL 的一个“冷门但正式支持”的语法显式使用 OPERATOR() 语法来调用操作符。2️⃣这条语句执行时PostgreSQL 内部会把解析成一个真正的操作符对象它的全名是pg_catalog.在系统目录 pg_operator 里能查到。而1️⃣就是把平时隐藏的内部机制直接写出来了只不过是用最“啰嗦、最底层”的方式调用加法操作符你可以把 OPERATOR(schema.操作符名) 理解成“强制指定用哪个操作符来操作左右两边”。实际上1️⃣还能写得更短SELECT 3 OPERATOR() 4; -- 可以省略 schema默认 pg_catalog自定义操作符PostgreSQL 目前具有主流数据库里最强的自定义操作符完全自定义新操作符重载已有操作符如重定义 操作符可绑定索引B-Tree, GiST, GIN…操作符可以有 commutator / negator操作符直接影响优化器、索引选择在这一方面连Oracle也难以匹敌。1. 语法CREATE OPERATOR operator_name ( { LEFTARG left_type -- 左操作数类型单目操作符可省略 | RIGHTARG right_type -- 右操作数类型单目操作符可省略 | BOTHARG both_type } -- 左右类型相同时代替上面两个 [, PROCEDURE function_name ] -- 必须真正执行的函数 [, COMMUTATOR com_op ] -- 可选交换律操作符如 和 本身 [, NEGATOR neg_op ] -- 可选取反操作符如 的取反是 [, RESTRICT res_proc ] -- 可选用于优化器选择性估计 [, JOIN join_proc ] -- 可选用于优化器连接估计 [, HASHES ] -- 可选支持 HASH JOIN 和 hash 聚合 [, MERGES ] -- 可选支持 MERGE JOIN );2. 最简单的例子创建 !!双感叹号前缀操作符表示“转成大写”-- 第1步先创建一个底层函数 CREATE OR REPLACE FUNCTION immutable_upper(text) RETURNS text AS $$ SELECT upper($1); $$ LANGUAGE sql IMMUTABLE STRICT; -- 第2步创建前缀操作符右操作数没有左操作数 CREATE OPERATOR !! ( RIGHTARG text, -- 只有右操作数在右边 → 前缀操作符 PROCEDURE immutable_upper -- 调用上面那个函数 ); -- 第3步试用 SELECT !! hello; -- 返回 HELLO SELECT !! column_name FROM users;不知道你有没有疑惑这不还是用PG定义的函数吗不还是PG本来就支持的东西吗没错。操作符只是一种“糖”让你更方便、简洁的使用本来就有的能力。3. 中级例子创建自定义的 操作符表示“可空相等”带索引支持先创建函数CREATE OR REPLACE FUNCTION geometry_strict_equal(anyelement, anyelement) RETURNS boolean AS $$ SELECT $1 IS NOT DISTINCT FROM $2; $$ LANGUAGE sql IMMUTABLE;IS NOT DISTINCT FROM是什么这是 PostgreSQL 特有的“空值安全的相等比较”当 a b → true当 a 和 b 都是 NULL → true (普通的NULL NULL → null (不为 true))其他情况 → false普通的NULL NULL时 → null (不为 true)。mysql中这个操作叫“太空船运算符”但是PG已经存在这个操作符了主要在pg_trgm扩展中计算相似度所以这里我们定义成。IMMUTABLE 表示同样输入永远返回同样的输出可以用于索引可以内联与优化。anyelement 表示任意类型的参数但是两个参数类型要一样。接下来创建操作符CREATE OPERATOR ( LEFTARG anyelement, RIGHTARG anyelement, PROCEDURE geometry_strict_equal, COMMUTATOR , -- 自己和自己交换律 NEGATOR !, -- 稍后会创建它的取反 HASHES, -- 支持 hash join / hash agg MERGES -- 支持 merge join ); -- 创建取反操作符 ! CREATE OPERATOR ! ( LEFTARG anyelement, RIGHTARG anyelement, PROCEDURE geometry_strict_equal, NEGATOR -- 互相指向对方 );看一下例子比较的两个对象必须是同类型的不然会报错所以要明确指出null是什么类型。如果是用在表查询语句中因为表结构和字段类型是确定的所以不用指出来。4. 查询操作符SELECT n.nspname AS schema, o.oprname AS operator, -- 操作符名称 format_type(o.oprleft, NULL) AS left_type, format_type(o.oprright, NULL) AS right_type, p.proname AS function_name -- 函数名称 FROM pg_operator o JOIN pg_namespace n ON n.oid o.oprnamespace JOIN pg_proc p ON p.oid o.oprcode WHERE n.nspname NOT IN (pg_catalog) and o.oprname !!; -- 可以去掉过滤看看5. 删除操作符DROP OPERATOR IF EXISTS !! (NONE, text); -- 先删除操作符必须传左右两个参数没有的写NONE DROP FUNCTION public.immutable_upper(text); -- 函数如果还要用可以不删小练习给ilike写一个操作符。我定义好函数了CREATE OR REPLACE FUNCTION chinese_ilike(text, text) RETURNS boolean AS $$ SELECT $1 ILIKE $2; $$ LANGUAGE sql IMMUTABLE STRICT;
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

视频网站开发流程图php视频网站开发实战

第一章:Q# 程序的 VSCode 代码覆盖率概述 在量子计算开发中,Q# 是一种专为表达量子算法而设计的高级编程语言。随着 Q# 程序复杂度的提升,确保代码质量变得至关重要。代码覆盖率作为一种衡量测试完整性的重要指标,能够帮助开发者识…

张小明 2026/1/10 6:34:24 网站建设

珠海建站wordpress小工具友情链接

异常值检测的提示工程 通过实际数据项目学习如何检测异常值,并利用AI改进流程。 介绍 给定数据集中的离群值代表极端值。它们极端到可以通过严重扭曲统计数据(比如均值)来毁掉你的分析。例如,在球员身高数据集中,12英尺即使是NBA球员也是个异常值,会显著拉高平均值。 我们…

张小明 2026/1/10 6:34:26 网站建设

网站如何开启gzip压缩上海最近热点事件

城通网盘直连解析工具:3步获取高速下载链接 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 还在为城通网盘下载速度慢而烦恼吗?ctfileGet这款开源工具能够帮助你在3步内快速获取…

张小明 2026/1/10 6:34:26 网站建设

落地页需要建网站吗网页制作基础教程课件葛艳玲

计算机发展历程:从早期到量子计算 1. 早期计算机的启示 早期的计算工具如计算尺,对于小数字的计算是精确的,但对于大多数大数字的计算则是近似的。在过去,快速得到一个近似结果往往就足够了,因为使用纸笔计算或使用当时珍贵的大型计算机时间来得出更精确的结果,可能需要…

张小明 2026/1/10 6:34:27 网站建设

中国建信网官方网站网站名称重要吗

Python天体力学终极指南:poliastro太空仿真工具完整教程 【免费下载链接】poliastro poliastro - :rocket: Astrodynamics in Python 项目地址: https://gitcode.com/gh_mirrors/po/poliastro 探索宇宙奥秘,计算星际轨迹,现在用Python…

张小明 2026/1/10 6:34:29 网站建设

美食分享网站怎么做手机怎么制作网站

嵌入式软件调试:从基础到高级技巧 1. 远程调试启动配置 在进行远程调试时,需要为目标程序配置不同的调试启动设置。以下是具体步骤: 1. 打开调试配置对话框 :在项目资源管理器视图中选择 measure 项目,通过“运行” - “调试配置” 或点击小虫子图标旁的下拉箭头并…

张小明 2026/1/10 6:34:30 网站建设