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

PostgreSQL运算符

运算符

算数运算符

运算符描述示例
+加法SELECT 2 + 3; 结果为 5
-减法SELECT 5 - 2; 结果为 3
*乘法SELECT 2 * 3; 结果为 6
/除法(对于整数相除,会截断小数部分)SELECT 5 / 2; 结果为 2 ,若要得到精确结果,可使用浮点数 SELECT 5.0 / 2; 结果为 2.5
%取模(求余数)SELECT 5 % 2; 结果为 1
^幂运算SELECT 2 ^ 3; 结果为 8

比较运算符

运算符描述示例
=等于SELECT 2 = 2; 结果为 TRUE
<>或 != 不等于SELECT 2 <> 3; 结果为 TRUE
<小于SELECT 2 < 3; 结果为 TRUE
>大于SELECT 3 > 2; 结果为 TRUE
<=小于等于SELECT 2 <= 2; 结果为 TRUE
>=大于等于SELECT 3 >= 2; 结果为 TRUE

逻辑运算符

运算符描述示例
AND逻辑与,所有条件都为 TRUE 时结果才为 TRUESELECT * FROM employees WHERE salary > 5000 AND department_id = 1;
OR逻辑或,只要有一个条件为 TRUE 结果就为 TRUESELECT * FROM employees WHERE salary > 5000 OR department_id = 1;
NOT逻辑非,对条件结果取反SELECT * FROM employees WHERE NOT salary > 5000;

字符串运算符

  • 连接运算符 ||

用于连接两个或多个字符串:

	SELECT 'Hello' || ' ' || 'World';结果为 Hello World。
  • 模式匹配运算符
    • LIKE

    用于模糊匹配字符串,支持 %(匹配任意数量的任意字符)和 _(匹配单个任意字符)。

    -- 查找以 'J' 开头的客户姓名
    SELECT * FROM customers WHERE name LIKE 'J%'; 
    
    • ILIKE:与 LIKE 类似,但不区分大小写。
    -- 不区分大小写查找以 'J' 开头的客户姓名
    SELECT * FROM customers WHERE name ILIKE 'j%'; 
    
    • ~ 和 ~*:正则表达式匹配,~ 区分大小写,~* 不区分大小写。
    -- 使用正则表达式查找以 'J' 开头的客户姓名
    SELECT * FROM customers WHERE name ~ '^J.*'; 
    

位运算

运算符描述示例
&按位与SELECT 5 & 3; (二进制 101 & 011)结果为 1
|按位或SELECT 5 | 3;(二进制101|011)结果为 7
#按位异或SELECT 5 # 3; (二进制 101 # 011)结果为 6
~按位取反SELECT ~5; 结果为 -6 (二进制补码表示)
<<左移SELECT 5 << 1; (二进制 101 左移一位)结果为 10
>>右移SELECT 5 >> 1; (二进制 101 右移一位)结果为 2

成员运算符

  • IN:用于判断一个值是否在指定的列表中。
	SELECT * FROM employees WHERE department_id IN (1, 2, 3);
  • NOT IN:用于判断一个值是否不在指定的列表中。
	SELECT * FROM employees WHERE department_id NOT IN (1, 2, 3);

空值比较运算符

  • IS NULL:用于判断一个值是否为 NULL。
	SELECT * FROM employees WHERE manager_id IS NULL;
  • IS NOT NULL:用于判断一个值是否不为 NULL。
	SELECT * FROM employees WHERE manager_id IS NOT NULL;
http://www.xdnf.cn/news/3413.html

相关文章:

  • 【JSON vs Python字典】核心区别与互操作指南
  • RPG_5.角色动画
  • C语言-函数的递归和迭代
  • Spring Boot 使用 WebMagic 爬虫框架入门
  • 腾讯云BI VS quickbi 企业选型(从企业实际功能使用和费用对比)
  • 在项目中如何对Map List等对象序列化及反序列化
  • 雅马哈SMT贴片机高效精密制造解析
  • 【数据结构】线性表--顺序表
  • 59常用控件_QComboBox的使用
  • 【C语言练习】015. 声明和初始化指针
  • 【Hive入门】Hive性能调优之资源配置:深入解析执行引擎参数调优
  • 欧拉计划 Project Euler62(立方数重排)题解
  • Allegro23.1新功能之如何加粗打印线宽操作指导
  • 跨域 iframe 内剪切板 Clipboard_API 报错
  • 网络安全零基础培训 L1-9 PHP连接MySQL数据库
  • d202551
  • QMK固件烧录指南:安全高效地更新您的机械键盘
  • Python结合QT进行开发
  • 西门子数字化研发设计制造一体化规划案例P87(87页PPT)(文末有下载方式)
  • 神经网络—损失函数
  • Python 数据智能实战 (6):用户评论深度挖掘
  • OpenGL-ES 学习(10) ---- OpenGL-ES Shader语言语法
  • CMake中强制启用option定义变量的方法
  • Unity SpriteEditor(精灵图片编辑器)
  • C++笔记-继承(下)(包含派生类的默认成员函数,菱形继承等)
  • AJAX 实例
  • vscode 的空格和 tab 设置 与 Rime 自建词库
  • AI大模型基础设施:主流的几款开源AI大语言模型的本地部署成本
  • 企业内训|智能驾驶与智能座舱技术——某汽车厂商
  • Ubuntu18 登录界面死循环 Ubuntu进不了桌面