03.SQL运算符
2022/3/10 2:14:39
本文主要是介绍03.SQL运算符,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
算数运算符
算数运算符包括 +、-、*、/或者DIV、%或者MOD
- 注意:Java中可以进行字符串的拼接,但是SQL没有这种自动拼接需要使用函数
# java中 100 + "a" => '100a' # sql 中 100 + 'a' => 100 (计算过程中将字符串看成0)
- null参与计算,结果为null
# 1 + null => null
- 除法运算或者取模运算(%或者MOD)中分母为0,结果为null
# 12 % 0 => null # 12 / 0 => null
- 取模运算中结果的符号与分子符号保持一致
# 12 % 5 => 2 # 12 % -5 => 2 # -12 % 5 => -2 # -12 % -5 => -2
- 除法运算中,结果默认是double类型(这里无论是否整除)
# 100 / 2 = 50.00000
比较运算符
比较运算符包括 =、<=>、<>、!=、<、<=、>、>=
其中和常见的不同的是安全等于<=>、不等于<>
# <=>安全等于可以用来进行判断null SELECT 1=null,1<=>null,1!=null, 1<>null; # 不等于<>等同于!=
最大最小值
最大LEAST()
最小GRLEAST()
# 最大可以比较数值或者字典序 LEAST('g', 'b', 't', 'm') => 'b' # 最小可以比较数值或者字典序 GRLEAST('g', 'b', 't', 'm') => 't'
Between and
# between and 表示范围值,包括两个边界 # between 6000 and 8000 => [6000,8000] # NOT between 6000 and 8000 # 工资在6000~8000的人id SELECT employee_id,salary FROM employees WHERE employees.salary BETWEEN 6000 AND 8000; # 工资不在在6000~8000的人id SELECT employee_id,salary FROM employees WHERE employees.salary NOT BETWEEN 6000 AND 8000;
NOT in set
# where id IN (10,20,30); # => where id = 10 or id = 20 or id = 30; # 查询部门编号是10、20、30的人id SELECT employee_id,department_id FROM employees WHERE employees.department_id in (10, 20, 30); SELECT employee_id,department_id FROM employees WHERE employees.department_id=10 or employees.department_id=20 or employees.department_id=30; # 不能写成这样 SELECT employee_id,department_id FROM employees WHERE employees.department_id=10 or 20 or 30; # 因为先计算id=10 or 20 or 30 相当于 id=10 || 1 || 1 结果为1
Like模糊查询
模糊查询使用Like
关键词,%
表示匹配不确定个数的字符(可以为0个),#
表示匹配一个确定字符
# %的用法 # 查找first_name中包含a的id和first_name SELECT employee_id,first_name FROM employees WHERE employees.first_name LIKE '%a%';
# _的用法 # 查找first_name第二个字母为a的id和first_name SELECT employee_id,first_name FROM employees WHERE employees.first_name LIKE '_a%';
# _与%结合使用 Like '__a%'; => 可以匹配eea # 如果需要匹配_与%特殊字符,可以用转义字符 Like '_\_a'; => 可以匹配 e_a # 或者指定转义字符,这里指定&为转义字符 Like '_$_a' ESCAPE '$'
正则表达式
关键字为REGEXP
或者是RLIKE
# ^字符 表示以该字符开头 # 字符$ 表示以该字符结束 # [ab] 表示a或者b # . 匹配除换行符(\n、\r)之外的任何单个字符,相等于 [^\n\r] # 与通用的正则表达式同 SELECT 'shkstart' REGEXP '^shk', 'shkstart' REGEXP 't$', 'shkstart' REGEXP 'hk' FROM DUAL; SELECT 'atguigu' REGEXP 'gu.gu','atguigu' REGEXP '[ab]' FROM DUAL;
逻辑运算符
常见的逻辑运算符有
# OR 或者是 || # AND 或者是 && # NOT 或者是 ! # NOR(异或) # 注意: 逻辑运算优先级 NOT > AND > XOR > OR # 优先级高的先运算
位运算符
常见的按位运算符
# 按位与 & # 按位或 | # 按位异或 ^ # 按位取反 ~ # 右移 >> # 左移 <<
运算符优先级
重要的事情说三遍:运算带上括号,不然就得看运算符优先级
优先级由低到高排列 | 运算符 |
---|---|
1 | =(赋值运算)、:= |
2 | II、OR |
3 | XOR |
4 | &&、AND |
5 | NOT |
6 | BETWEEN、CASE、WHEN、THEN、ELSE |
7 | =(比较运算)、<=>、>=、>、<=、<、<>、!=、 IS、LIKE、REGEXP、IN |
8 | | |
9 | & |
10 | <<、>> |
11 | -(减号)、+ |
12 | *、/、% |
13 | ^ |
14 | -(负号)、〜(位反转) |
15 | ! |
这篇关于03.SQL运算符的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南
- 2024-09-30Dnd-Kit学习:新手快速入门指南