Oracle运算符
操作符;
算术运算符
加:+
减:-
乘:*
除:/
取余:Mod(X,Y)
比较运算符:
1、等于:=
2、大于:>
3、小于:<
4、不等于:!= 或<>
5、小于等于:<=
6、大于等于:>=
逻辑运算符有三个:
1、 与:AND
2、 或:OR
3、 非:NOT
字符串连接:||
示例:
SQL语句:select ename,sal,sal*12+2000 from emp where sal>2000;
如下图所示:
消除重复行:
查询消除某个列重复数据。
SQL关键字:Distinct
SQL语句:select distinct 列名 from 表名
示例:
SQL语句:select distinct deptno from emp order by deptno asc;
NULL操作
SQL语句:is null/is not null;
主键不能为空。
1、是空值SQL语句:Is null
示例:
SQL语句:select empno,ename,sal,comm from emp where comm is null;
结果如下图所示:
2、非空值SQL语句:Is not null
示例:
SQL语句:select empno,ename,sal,comm from emp where comm is not null;
IN操作:
在列中选择中符合条件的相应的行,即在一个表中的某一列选择多行的情况。
判断某一列符合IN括号后面的N个值。
SQL语句:where 列名 in(值,...,值)
示例:
选择工作为销售员、经理、分析师的员工姓名,工作,工资;
SQL语句:Select ename,job,sal from emp where job in('SALESMAN','PRESIDENT','ANALYST');
等价于:
注意:
1、因为调用了函数IN(),因此执行速度要慢;
2、or在明确知道某一行的字段的时候使用;
3、用从一个表查询出的结果(结果可能是一个也可能是多个结果)去另一个表查询的时候,无法知道查询出的结果字段,此时只能使用IN操作。
扩展:
SQL语句:select ename,sal,job from emp where job not in('SALESMAN','PRESIDENT' ,'ANALYST');
SQL语句:select ename,sal,job from emp where job!='SALESMAN' AND job!='PRESIDENT' AND job!='ANALYST';
实例
A表 B表 C表
学号 姓名 课程编号 课程名称 学号 课程编号
001 张三 A 语文 001 A
002 李四 B 数学 002 B
…… …… C 英语 003 C
…… …… …… ……
请写出如下SQL语句
1)查询出选择“语文”课程的学号、姓名。
Select 姓名,学号 from A where 学号 IN(Select 学号 from C where 课程编号=(Select 课程编号 from B where 课程名称=’语文’));
2)查询出张三选课的课程名称。
Select 课程名称 from B where 课程编号 IN(Select 课程编号 from C where 学号=(Select 学号 from A where 姓名=’张三’ ));
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端