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

[经验分享] SQL 基础之where过滤和 运算符(五)

[复制链接]

尚未签到

发表于 2018-10-20 13:02:56 | 显示全部楼层 |阅读模式
  使用WHERE子句,将不满足条件的行过滤掉:
  WHERE过滤的注意事项:
  WHERE子句紧随FROM子句。
  WHERE子句后跟条件表达式
  列名、表达式、常量
  比较运算符:=,   select last_name,job_id,department_id from employees where last_name = 'Whalen';
DSC0000.jpg

  3.2 查找入职日期为07年12月19日的员工first_name 和部门ID
  select first_name,department_id,hire_date from employees where hire_date = '19-DEC-07';
DSC0001.jpg

  4、比较运算符
操作符                          含义         =                 等于        >                 大于        >=                大于等于        <                小于        =3000 orader by salary;
DSC0002.jpg

  4.3 查找一下工资大于等于10000的员工姓名,并按照 xxx 's salary is 10000的格式输入
  select first_name||q'['s salary is ]' || salary as "salary is 10000 of emp"
  from employees
  where salary=10000;
DSC0003.jpg

  4.4  查找一下工资在8000-10000之间的员工姓名和员工id
  select employee_id,first_name,salary from employees where  salary between 8000 and 10000 order by salary;
DSC0004.jpg

  4.5 查找一下工资为7000、3100、8100、9000、10000的员工名字
  select first_name,salary from employees where salary in(7000,3100,8000,9000,10000);
DSC0005.jpg

  4.6 查找员工名称为S开头的job_id
  select first_name,job_id from employees where first_name like 'S%';
DSC0006.jpg

  4.7 查找员工名称中带有s的 job_id
  select first_name,job_id from employees where first_name like '%s';
DSC0007.jpg

  4.8 查找名字第二个字母是o的员工信息
  select first_name,job_id from employees where first_name like '_o%';
DSC0008.jpg

  4.9 查找名字第三个字母为e和a的员工名字
  select employee_id,last_name,salary,department_id from employees where manager_id= &mgr_num order by &order_col
DSC0009.jpg

  4.9.1 查找manager_id 为空的名字
  select  first_name,manager_id  from employees where manager_id is null;
DSC00010.jpg

  4.9.2 查找到04年入职的员工姓名
  select last_name,hire_date from employees where hire_date like '%04';
DSC00011.jpg

  5、逻辑运算符
操作符含义AND逻辑并,两个条件都为“真”则返回TRUEOR逻辑或,其中一个条件为“真”则返回TRUENOT逻辑否,如果条件为“假”则返回TRUE  5.1、查找工资大于10000并且 job_id 含有MAN的员工信息
  select first_name,employee_id,salary from employees where salary>=1000 and  job_id like '%MAN%';
DSC00012.jpg

  5.2、查找工资大于等于10000 或者job_id 含有MAN的员工 的名字和employee_id
  select first_name,employee_id,job_id,salary from employees where salary>=10000  or  job_id  like '%MAN%';
DSC00013.jpg

  5.3 查找job_id  不在'HR_EMP','ST_MAN','ST_CLERK' 这工作id里面的员工名字和job_id
  select last_name,job_id from employees  where job_id not in('HR_EMP','ST_MAN','ST_CLERK');
DSC00014.jpg

  5.4  列出工资不在 5000-12000 范围的员工的姓名和工资
  SQL >select last_name,salary from employees where salary not between 5000 and 12000 order by salary;
  LAST_NAME      SALARY
  ------------------------- ----------
  Olson2100
  Philtanker2200
  Markle2200
  Landry2400
  Gee       2400
  Vargas2500
  Patel2500
  Colmenares2500
  Marlow2500
  Sullivan       2500
  Perkins        2500
  OConnell       2600
  Grant2600
  Matos2600
  Himuro2600
  Mikkilineni2700
  Seo        2700
  Atkinson       2800
  Geoni2800
  Tobias2800
  Jones2800
  Rogers2900
  Baida2900
  Gates2900
  Feeney3000
  Cabrio3000
  Walsh3100
  Fleaur3100
  Khoo3100
  Davies3100
  Stiles3200
  Nayer3200
  Taylor3200
  McCain3200
  Bissot3300
  Mallin3300
  Dellinger        3400
  Rajs        3500
  Dilly        3600
  Ladwig3600
  Chung3800
  Everett         3900
  Bell        4000
  Bull        4100
  Sarchand        4200
  Lorentz         4200
  Whalen4400
  Pataballa        4800
  Austin4800
  Higgins                 12008
  Greenberg       12008
  Hartstein               13000
  Partners               13500
  Russell                14000
  De Haan                17000
  Kochhar                17000
  King               24000
  57 rows selected.
  6、优先级(可以使用括号改变优先级顺序)
优先级1算数运算符2连接符3比较符4IS [NOT] NULL, LIKE, [NOT] IN 5[NOT] BETWEEN6不等于7NOT8AND9OR  1、查找部门为SA_REP或者AD_PRES部门里面工资大于15000的员工名字、job_id、工资等信息
  SELECT last_name, job_id, salary FROM employees WHERE job_id = 'SA_REP' OR job_id = 'AD_PRES' AND salary > 15000;
DSC00015.jpg

  2、查找job_id 为SA_REP或者AD_PRES部门里面工资大于15000的员工姓名、job_id
  SELECT last_name, job_id, salary FROM employees WHERE (job_id = 'SA_REP' OR job_id = 'AD_PRES') AND salary > 15000;
DSC00016.jpg

  3、列出工资不在 5000-12000,部门在 20 或 50 的员工的姓名和工资
  select last_name,department_id,salary from employees where salary not between 5000 and 12000 and department_id=20 or department_id=50;
  或
  select last_name,department_id,salary from employees where salary not between 5000 and 12000 and department_id in(20,50);


运维网声明 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.yunweiku.com/thread-624098-1-1.html 上篇帖子: SQL之索引 下篇帖子: SQL 基础之order by 排序和代替变量(六)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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