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

mysql常用运算符

mysql常用运算符

  • 一、去重和空值
    • 1.distinct
    • 2.null参与运算
    • 3.用ifnull函数解决问题
  • 二、比较运算符
  • 三、dual伪表和数值运算
    • 1.常规运算
    • 2.比较运算符
    • 3.<=>安全相等
  • 四、常用正则相关的比较运算符
    • 1.基本运算符
    • 2.模糊查询
    • 3.正则表达式
  • 五、逻辑运算符
  • 六、位运算
  • 总结


一、去重和空值

学习运算符之前我们先讨论一下去重和空值的问题:

这是我们要操作的表

在这里插入图片描述
在这里插入图片描述

select DEPARTMENT_ID from employees order by EMPLOYEE_ID ;

查看部门id,发现很多都是一个重复的

在这里插入图片描述

1.distinct

select distinct DEPARTMENT_ID from employees order by DEPARTMENT_ID;

在这里插入图片描述

2.null参与运算

select employee_id  , salary "月工资" , salary * ( 1 + commission_pct ) * 12 "年工资" from employees;

运算中有一个null,结果为null

在这里插入图片描述

3.用ifnull函数解决问题

select employee_id , salary “月工资” , salary * ( 1 + IFNULL(commission_pct,0) ) * 12 “年工资” , commission_pct from employees;
在这里插入图片描述if null函数本质是将null变为0参与运算。


二、比较运算符

select employee_id , salary from employees where salary < 2400;
在这里插入图片描述


三、dual伪表和数值运算

1.常规运算

在这里插入图片描述
浮点型转化
在这里插入图片描述
字符串隐式转化
字符串和null
字符串隐式转化成0(不包含数字)
在这里插入图片描述
除法0值的问题

select 100/0.0,100 div 10 ,100 div 0 from dual;

在这里插入图片描述
取余0值问题

select 100 % 3,100%0 from dual;

在这里插入图片描述

2.比较运算符

select 1=2,1!=2,1='1',1='a' from dual;

在这里插入图片描述

select 'a' = 'a','a'='ab','a'='b' from dual;

在这里插入图片描述

空值参与比较运算的问题

select last_name,salary from employees where  COMMISSION_PCT =  NULL;

在这里插入图片描述

3.<=>安全相等

select last_name,salary from employees where  COMMISSION_PCT <=>  NULL;

在这里插入图片描述除了<=>之外与null相运算都是null
不相等
在这里插入图片描述


四、常用正则相关的比较运算符

在这里插入图片描述

1.基本运算符

is null

select last_name,salary from employees where  COMMISSION_PCT is NULL;#

在这里插入图片描述not 取反

select last_name,salary from employees where NOT (COMMISSION_PCT <=> NULL);

在这里插入图片描述
等价于is not null

select last_name,salary from employees where  (COMMISSION_PCT IS NOT NULL);

在这里插入图片描述
least()和greatest()

select least('a','b','c','e'),greatest('a','b','c','e') from dual;

在这里插入图片描述

取两列中最长的字符串和最短的字符串

select least( first_name, last_name ),greatest(first_name, last_name) from employees;

在这里插入图片描述
betweent … and 区间
注意区间不能为空,不然输出会有问题

select * from employees where salary between 6000 and 8000 ;

在这里插入图片描述
等价于

select * from employees where salary > 6000 and salary < 8000 ;

在这里插入图片描述
in和not in

select * from employees where department_id in (10,20,30,40);

在这里插入图片描述等价于

select * from employees where department_id = 10 or department_id = 20 or department_id = 30 or department_id = 40;

在这里插入图片描述

not in

 select * from employees where department_id not in (10,20,30,40);

在这里插入图片描述

2.模糊查询

%:代表不确定个数的字符
查询包含字符’a’的员工信息

在这里插入图片描述查询字符’a’开头的员工信息
在这里插入图片描述
查询包含字符’a’和’e’的员工信息
写法1:
在这里插入图片描述
写法2:

select last_name from employees where last_name like '%a%e%' or  last_name like '%e%a%' ;

在这里插入图片描述_:占位符一个不确定的字符

select last_name from employees where last_name like '_a%' ;

在这里插入图片描述
转义字符
\
查询JOB_ID的第三个字符是_且第四个是a的JOB_ID:

 select JOB_ID from employees where JOB_ID like "__\_a%" ;

在这里插入图片描述

其他字符做转义,需要告诉系统
$做转义字符:

select JOB_ID from employees where JOB_ID like "__$_a%" escape '$' ;

在这里插入图片描述

3.正则表达式

regexp 和 rlike
在这里插入图片描述

select "shkstart" regexp "^s","shkstart" regexp "t$","shkstart" regexp "hk" , "shkstart" regexp "ht"from dual;

在这里插入图片描述

select "guigui" regexp "gu.gu","guigui" regexp "[gu]" from dual;

在这里插入图片描述


五、逻辑运算符

在这里插入图片描述or:

select last_name from employees where last_name like '%a%e%' or  last_name like '%e%a%' ;

在这里插入图片描述and:

select last_name,salary,department_id from employees  where department_id = 50 and salary > 6000;

在这里插入图片描述在这里插入图片描述


六、位运算

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

select 4<<1,8>>1 from dual;

在这里插入图片描述


总结

常见运算符基本就是这些了,里面有使用案例,希望大家后面多多练习,毕竟mysql除了懂原理外大量的练习才是王道。

可以点个小👍吗

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

相关文章:

  • PyTorch 深度学习框架:优雅而简洁的代码实现
  • 【SpringMVC】请求重定向和转发
  • Vue中@click的常见修饰符
  • 软件测试面试复盘:技术面没有难倒我,hr面被虐的体无完肤
  • vue实现鼠标移入移出事件+解决鼠标事件没有反应
  • 右键移动文件.cmd
  • web基础
  • 牛客网算法八股刷题系列(七)正则化(软间隔SVM再回首)
  • 开源即时通讯IM框架MobileIMSDK的微信小程序端开发快速入门
  • 【C++从0到1】11、C++中赋值运算
  • GaussDB数据库事务介绍
  • MYSQL——美团面试题
  • Python 小型项目大全 16~20
  • UE4/5C++之SubSystem的了解与创建
  • 牛客网在线编程SQL篇非技术快速入门题解(二)
  • 航天器轨道六要素和TLE两行轨道数据格式
  • 【Spring Cloud Alibaba】第01节 - 课程介绍
  • iOS和Android手机浏览器链接打开app store或应用市场下载软件讲解
  • 2023第十四届蓝桥杯省赛java B组
  • windows下如何快速搜索文件内容
  • Redis集群分片
  • ISP-AF相关-聚焦区域选择-清晰度评价-1(待补充)
  • [element-ui] el-table行添加阴影悬浮效果
  • 分布式存储技术(上):HDFS 与 Ceph的架构原理、特性、优缺点解析
  • 【python设计模式】20、解释器模式
  • 【PostgreSQL】通过docker的方式运行部署PostgreSQL与go操作数据库
  • Kotlin协程序列:
  • java获取视频时长
  • EDAS投稿系统的遇到的问题及解决办法
  • t-learning 产品经理课程笔记