当前位置:首页 > 问答 > 正文

OceanBase里那些运算符到底是啥,树叶云带你简单聊聊

树叶云带你简单聊聊OceanBase里的运算符 基于OceanBase官方文档中“运算符”章节的梳理)

你是不是一听到“运算符”就觉得头大?感觉又是编程里那些复杂的符号,离自己很远?其实真没那么神秘,咱们今天就抛开那些吓人的专业术语,像聊天一样,看看OceanBase这个数据库里的运算符到底都是些啥,说白了,运算符就是用来处理数据的一些“动作”或者“符号”,比如加减乘除、比较大小、逻辑判断等等,OceanBase把它们分成了好几类,咱们一类一类看。

第一类:算术运算符——就是小学学的加减乘除

这个最好理解,就是数学课上的老熟人,OceanBase里的算术运算符主要包括:

  • :加法,比如你想算一个商品打折后再加上运费的总价,就能用上。
  • :减法,计算两个时间的间隔,或者库存的减少量,常用。
  • :乘法,计算总价(单价 × 数量)离不开它。
  • :除法,算平均值、比率什么的。
  • 或者 MOD:取模,就是算除法的余数,你想知道一个数是不是偶数,可以用“这个数 % 2”,如果结果是0,那就是偶数。

需要注意一点,在OceanBase里,如果你用除法,除数(右边的数)不能是0,否则会报错,就像现实生活中你不能把一块蛋糕分给0个人一样,没意义。

OceanBase里那些运算符到底是啥,树叶云带你简单聊聊

第二类:比较运算符——用来比大小、判等否

这类运算符是用来比较两个值的关系的,结果是“真”(TRUE)或者“假”(FALSE),它们在查询数据时特别有用,比如你想找出所有价格高于100元的商品。

  • :等于,判断两个值是否相等。
  • <>:不等于,判断两个值是否不相等。
  • >:大于。
  • <:小于。
  • >=:大于等于。
  • <=:小于等于。

除了这些基本的,还有几个稍微特殊点的:

  • <=>:空值安全等于,这个是为NULL值准备的,在数据库里,NULL代表缺失或未知的值,用普通的 去比较 NULL,结果也是NULL(相当于未知),而 <=> 在比较两个NULL时,会返回“真”,比较一个NULL和一个非NULL值时,返回“假”。
  • IS NULL / IS NOT NULL:专门判断一个值是不是NULL,想找那些“联系方式未填写”(NULL)的客户记录,就得用 IS NULL
  • LIKE:模糊匹配,你想找所有姓“张”的员工,名字字段叫 name,就可以用 name LIKE '张%',这里的 代表任意长度的字符,还有一个 _,代表单个任意字符。
  • IN:判断一个值是否在某个列表里。城市 IN ('北京', '上海', '广州'),就能筛出这三个城市的记录。
  • BETWEEN ... AND ...:判断一个值是否在某个范围内(包含两头)。年龄 BETWEEN 18 AND 30

第三类:逻辑运算符——用来连接多个条件

OceanBase里那些运算符到底是啥,树叶云带你简单聊聊

当你的查询条件不止一个时,就需要逻辑运算符把它们组合起来。

  • AND:与,连接的两个条件必须都为真,结果才为真,年龄大于18岁 并且 城市是北京”。
  • OR:或,连接的两个条件只要有一个为真,结果就为真,状态是‘活跃’ 或者 最近登录时间在7天内”。
  • NOT:非,取反。是VIP客户”。

这些运算符可以组合使用,这时候就要注意优先级了,和数学里的“先乘除后加减”类似,OceanBase中 NOT 的优先级最高,然后是 AND,最后是 OR,不确定的时候,用括号 把要先算的部分括起来是最保险的。

第四类:位运算符——和二进制打交道

这个可能稍微绕一点,它直接操作数字的二进制位,除非你在做一些很底层的操作,否则平时可能用得不多,了解一下就行:

OceanBase里那些运算符到底是啥,树叶云带你简单聊聊

  • &:按位与。
  • :按位或。
  • ^:按位异或。
  • :按位取反。
  • <<:左移。
  • >>:右移。

第五类:运算符的优先级——谁先谁后很重要

就像计算 “1 + 2 * 3” 时,你得先算乘法一样,OceanBase里的运算符也有先后顺序,官方文档里有一张详细的优先级表格(这里不罗列了),优先级高的先算,记不住没关系,最实用的技巧就是多用括号,用括号把你希望优先计算的表达式括起来,既能确保结果正确,也让你的SQL语句更容易被自己和别人看懂。

总结一下

看,OceanBase里的运算符其实并不复杂吧?它们就是数据库帮你处理数据的一整套工具:

  • 算术运算符管计算;
  • 比较运算符管判断;
  • 逻辑运算符管条件组合;
  • 位运算符管底层二进制操作。

下次你再看到SQL语句里这些符号,就不会觉得陌生了,它们就像是数据库世界里的“语法单词”,帮你精确地表达你想查找什么、计算什么,希望树叶云这次的简单聊聊,能让你对OceanBase的运算符有个轻松愉快的初印象!