Oracle系列:(6)where子句

前端之家收集整理的这篇文章主要介绍了Oracle系列:(6)where子句前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。



查询emp表中20号部门的员工信息

select*fromempwheredeptno=20;


查询姓名是SMITH的员工,字符串使用'',内容大小写敏感

select*fromempwhereename='SMITH';

总结:你所学过的技术中,哪些是大小写敏感,哪些是大小写不敏感

wKiom1fPCe7RWSW3AAAYHml8RBY341.png


查询1980年12月17日入职的员工,注意oracle默认日期格式(DD-MON-RR表示2位的年份)

select*fromempwherehiredate='17-12月-80';


查询工资大于1500的员工

select*fromempwheresal>1500;


查询工资不等于1500的员工【!=<>

select*fromempwheresal<>1500;


查询薪水在1300到1600之间的员工,包括1300和1600 【between应用于数字

select*fromempwhere(sal>=1300)and(sal<=1600);

select*fromempwheresalbetween1300and1600;


查询薪水不在1300到1600之间的员工,不包括1300和1600 【not between

select*fromempwheresalNOTbetween1300and1600;


查询入职时间在"1981-2月-20"到"1982-1月-23"之间的员工【日期

select*fromempwherehiredatebetween'20-2月-81'and'23-1月-82';

wKiom1fPDHPxM2F9AAA1PsY6e7c508.png


注意:

1)对于数值型,小数值在前,大数值在后

2)对于日期型,年长值在前,年小值在后



查询20号或30号部门的员工,例如:根据ID号,选中的员工,批量删除in

select*fromempwhere(deptno=20)or(deptno=30);

select*fromempwheredeptnoin(30,20);


查询不是20号或30号部门的员工【not in

select*fromempwheredeptnoNOTin(30,20);


查询姓名以大写字母S开头的员工,使用%表示0个,1个或多个字符【like模糊查询

select * from emp where ename like 'S';

等价

select * from emp where ename = 'S';

select*fromempwhereenamelike'S%';

wKioL1fPDerQZlPIAAAPqHq8dcs256.png


注意:

凡是精确查询用=符号

凡是不精确查询用like符号,我们通常叫模糊查询


查询姓名以大写字母N结束的员工

select*fromempwhereenamelike'%N';


查询姓名第一个字母是T,最后一个字母是R的员工

select*fromempwhereenamelike'T%R';


查询姓名是4个字符的员工,且第二个字符是I,使用_只能表示1个字符,不能表示0个或多个字符

select*fromempwhereenamelike'_I__';

wKiom1fPDuej1A_GAAAMLxxqu0k717.png


插入一条姓名为'T_IM'的员工,薪水1200

insert into emp(empno,ename) values(1111,'T_IM');


查询员工姓名中含有'_'的员工,使用\转义符,让其后的字符回归本来意思【like '%\_%' escape '\'】

select*fromempwhereenamelike'%\_%'escape'\';

wKiom1fPEQKCxFdvAAARRmROt5g708.png


插入一个姓名叫'的员工

insertintoemp(empno,ename)values(2222,'''');


插入一个姓名叫''的员工

insertintoemp(empno,'''''');

wKioL1fPEhGy1dceAAAMTGLGlds859.png

wKioL1fPEhHhAi0ZAABHgY-8y84483.png


查询所有员工信息,使用%或%%

select*fromemp;
select*fromempwhereenamelike'%';
select*fromempwhereenamelike'%_%';


查询佣金为null的员工【is null

select*fromempwherecommisnull;

wKiom1fPEybRs8h8AAA6V_3wphw310.png


注意:null不能参与=运算

null能参与number/date/varchar2类型运算


查询佣金为非null的员工【is not null

select * from emp where comm is not null;


查询无佣金且工资大于1500的员工

select*
fromemp
where(commisnull)and(sal>1500);


查询工资是1500或3000或5000的员工

select*
fromemp
wheresalin(4000,10000,1500,3,300,3000,5000);


查询职位是"MANAGER"或职位不是"ANALYST"的员工(方式一,使用!=或<>)

select*
fromemp
where(job='MANAGER')or(job<>'ANALYST');


查询职位是"MANAGER"或职位不是"ANALYST"的员工(方式二,使用not)

select*
fromemp
where(job='MANAGER')or(not(job='ANALYST'));
原文链接:https://www.f2er.com/oracle/212731.html

猜你在找的Oracle相关文章