设为首页 收藏本站
查看: 613|回复: 0

[经验分享] Oracle的where语句和排序操作

[复制链接]

尚未签到

发表于 2018-9-7 09:17:31 | 显示全部楼层 |阅读模式
  where特点:
  1、用于对数据的筛选
  2、可以比较,逻辑操作
  3、where 需要放到from后面
  =====================================================
  一、比较操作
  比较操作包含:>   <    >=    select ename,sal,deptno from emp where DEPTNO=10;
  SQL>select * from emp where sal>1000;
  2、使用字符做条件
  SQL>select ename,sal,deptno from emp where ename='SCOTT';
  注意:where后面的字符需要使用单引号引起来,并且where后的字符严格区分大小写
  3、between ... and ... :限制数据在某个范围
  SQL>select * from emp where sal between 1000 and 3000;
  注意:between是包含关系。
  4、in:使用枚举的形式查询数据
  SQL>select * from emp where ename in ('KING','SCOTT','ALLEN');
  5、like:用于模糊匹配
  %  :表示0个或者多个字符
  _  :表示一个字符
  ①找到雇员名字以M开头的emp信息
  SQL>select * from emp where ename like '%M';
  ②找到字符串中包含M的雇员信息
  SQL>select * from emp where ename like '%M%';
  ③找到名字第二个字母为M的雇员信息
  SQL>select * from emp where ename like '_M%';
  6、注意: 可以使用escape转义%或_
  SQL> select * from t11 where name like '%_%';
  NAME
  ---------
  aa_a
  aaa
  SQL> select * from t11 where name like '%\_%' escape '\';
  NAME
  ----------
  aa_a
  7、对null的处理
  SQL>select * from emp where comm is null;
  SQL>select * from emp where comm is not null;
  =====================================================
  二、逻辑操作
  1、and   要求所有表达式为true,才能为true
  2、or      所有表达式中只要有一个为true就返回true
  3、not    取反
  ①查询部门编号为10,并且工资大于1500的人
  SQL>select * from emp where sal>1500 and deptno=10;
  ②查询部门编号为10或者工资大于1500的人
  SQL>select * from emp where sal>1500 or deptno=10;
  ③使用not,not表示取反
  SQL>select * from emp where ename not in ('KING','SCOTT','ALLEN');
  =====================================================
  三、where中条件的优先级
  1、算术操作
  2、比较操作
  3、逻辑操作:not>and>or
  ①找到工作为管理员或者是分析员,并且工资大于2500的人
  SQL>select * from emp where (job='MANAGER' or job='ANALYST') and sal >2500;
  EMPNO    ENAME         JOB          MGR       HIREDATE      SAL     COMM  DEPTNO
  ----------  ----------  ------------ --------- ------------- -------- --------- ----------
  7566        JONES      MANAGER    7839     02-APR-81     2975                      20
  7698        BLAKE      MANAGER    7839     01-MAY-81    2850                      30
  7782        CLARK      MANAGER    7839     09-JUN-81     2450                      10
  7788        SCOTT      ANALYST      7566     19-APR-87     3000                      20
  7902        FORD       ANALYST       7566     03-DEC-81    3000                      20
  =====================================================
  四、排序
  1、ASC   升序排列(默认)
  2、DESC 降序排列
  SQL>select ename,sal A from emp where comm is null  order by A;   默认是升序
  SQL>select ename,sal A from emp where comm is null  order by A desc;
  3、order by :可以使用数字
  SQL>select * from emp order by 6;
  4、多列排序
  按照deptno 做降序排列,sal做升序排列。
  SQL>select ename,deptno,sal from emp order by deptno desc,sal ;
  SQL>select ename,deptno,sal from emp order by 2,3 desc;


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-565541-1-1.html 上篇帖子: Oracle的select语句 下篇帖子: oracle常用性能监控及优化语句
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表