使用WHERE过滤数据 [MySQL][数据库]

使用WHERE过滤数据

通过使用WHERE关键字,我们可以在查询操作时对表中的数据进行过滤
下面我们通过两个例子来理解如何通过使用WHERE关键字过滤数据

问题一 : 查询员工表中90号部门的员工信息

eg:

SELECT * 
FROM employees
WHERE department_id = 90;
  • *(星号)表示查询所有字段
  • WHERE关键字之后的表达式如果不等于1就会被过滤
    • 不等于1有两种情况:
      • 情况一: 为0(零)
      • 情况二: 为NULL(空值)
  • 这里就是如果department不为90,那么WHERE后面的表达式的结果不为1,那么数据就会被过滤

问题二 : 查询员工last_name为’King’的员工信息

  • 这里的last_name是员工表中的一个字段(也就是一个列),表示员工的 ‘姓’

eg:

SELECT * 
FROM employees 
WHERE last_name = 'king';
  • 过滤,过滤完之后只剩下姓为’king’的记录
前面我们说过,在Windows系统中,SQL是不区分大小写的,这个不区分大小写不包括’ ‘(单引号)和" "(双引号)中的内容,也就是说在SQL中如果是’ ‘(单引号)或者" "(双引号)中的内容,这个时候就是区分大小写的,但是在MySQL中,对于’ ‘(单引号)和" "(双引号)中的内容也是不区分大小写的 , 这个是MySQL自己对SQL标准的一种宽泛,但是在Oracle中并没有这种对于SQL语言的宽泛,那么我们如果是在Oracle中我们就可以发现’ '(单引号)中和" "(双引号)中的内容是区分大小写的
  • 那么由于这种情况,对于我们上面的问题二,在我们的员工表中,我们如果只有一个last_name为’King’的员工

    • 这里的’King’中的K是大写的

    • 那么在MySQL中对于问题二的解决方式就会有两种情况:

      • 情况一:
      SELECT * 
      FROM employees
      WHERE last_name = 'King'; # 这里的'King'中的K为大写K
      
      • 情况二:
      SELECT *
      FROM employees
      WHERE last_name = 'king'; # 这里的'king'中的k为小写的k
      
    注意: 虽然在MySQL中我们对于’ ‘(单引号)和" "(双引号)中的内容是不区分大小写的,但是我们在实际编程中还是应该要在’ '(单引号)和" "(双引号)中去刻意的区分大小写
    • 但是如果是在Oracle中对于问题二就只有一种情况:

      SELECT *
      FROM employees
      WHERE last_name ='King'; -- 这里的'King'中的K为大写的K
      
      • 这个就是因为我们的员工表中只有一个last_name为’King’的员工(这里的K为大写),这个时候我们为了能查询出这个员工,并且在Oracle中’ '(单引号)和" "(双引号)中内容是区分大小写的

补充:

WHERE子句紧随着FROM字句

  • 后面我们也会讲一些其他的关键字,也是要跟在FROM后面,但是由于WHERE关键字和FROM比较亲切,不管是什么时候我们的WHERE关键字都是要紧跟在FROM字句的下一句
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值