sql serverselect,oracle数据库select语句
谈了select的一些简单应用,这次我将进一步研究select查询。
包括:条件查询、范围查询、模糊查询和查询结果排序。
where条件查询select * from EMP where EMPdeptno=10-查询公寓号为10的所有员工。
select * from EMP where job= CLERK ;-注意,CLERK区分大小写。
我们知道Condition由列名表达式、常量和比较运算符组成,那么有哪些比较运算符呢?
公共比较运算符
以上比较运算符就不一一尝试了!我们过会儿见面。
查询(在和之间)
现实中我们有这个需求,我们需要查询一个数据段,可以用between和来实现。
-查询工资4000-8000的员工。
select *from emp where sal介于4000和8000之间;
温馨提示:这里需要注意的是,between后面应该是一个低值,然后是一个高值,否则语句不会错。
但是查询结果是不可能的!
模糊查询(喜欢,不喜欢)
像这样的模糊查询通常针对字符匹配操作。通配符“%”和“_”可用于字符匹配操作:
%:表示任何字符,包括零;
_:表示任意字符;
简单的例子:
select * from EMP where ename like _ M % ;-查询第二个字符是“m”的雇员
但下面是我们需要思考的:如果我们需要查询的字符串中有“%”和“-”怎么办?
解决方案:
使用转义
简单的例子:
插入emp(埃纳姆,Empno)值( K%iritor ,100);——人为插入一个语句。
select * from EMP where name like K/% iritor escape /;
用“/”转义字符(转义字符可以任意指定)将转义字符后的字符。
转义是原始字符,其中转义字符的指定与用户需要查询的字段的值有关。
至于不喜欢,我就不做过多的论证了!
结果排序
ASC:升序排序,默认。
select * from emp order by sal
DESC:降序排序select * from emp order by sal
以上所有内容都是针对单个列进行排序的。如何对多列进行排序?
-第一,工资是升序,如果工资不变,名字是降序。
select *from emp order by sal asc,ename desc;
就是这样。至于上表中的一些比较运算符,以后会用到!