9.表的查询5种子句之where子句

在数据库表中一般包含大量的数据,很少需要检索表中的所有行。通常是通过指定搜索条件(过滤条件)来提取表的子集。

where子句

通过where后面接的条件来筛选表数据

1. where常用运算符

比较运算符

运算符说明运算符说明
<小于!=或<>不等于
<=小于或等于
=
大于或等于
=等于>大于
in在集合内between在某范围内

逻辑运算符

运算符说明
NOT或!逻辑非
OR或||逻辑或
AND或&&逻辑与
2. where搭配运算符的用法
  1. 比较运算符搭配where的应用
mysql> # 在promary表中查询id大于30的地区
mysql> select proID,proName from promary where proID > 30;
+-------+--------------------------+
| proID | proName                  |
+-------+--------------------------+
|    31 | 宁夏回族自治区           |
|    32 | 新疆维吾尔自治区         |
|    33 | 内蒙古自治区             |
|    34 | 澳门特别行政区           |
|    35 | 香港特别行政区           |
+-------+--------------------------+

mysql> # 在promary表中查询小于id等于5的地区
mysql> select * from promary where proID <= 5;
+-------+-----------+
| proID | proName   |
+-------+-----------+
|     2 | 天津市    |
|     3 | 上海市    |
|     4 | 重庆市    |
|     5 | 河北省    |
+-------+-----------+
4 rows in set (0.00 sec)

mysql> # between用法(查询某个范围内的数据)
mysql> # 在promary表中查询在city从5-10的地区
mysql> select proID,proName from promary where proID between 5 and 10;
+-------+--------------+
| proID | proName      |
+-------+--------------+
|     5 | 河北省       |
|     6 | 山西省       |
|     7 | 台湾省       |
|     8 | 辽宁省       |
|     9 | 吉林省       |
|    10 | 黑龙江省     |
+-------+--------------+
6 rows in set (0.00 sec)

mysql> # in用法(in (值1,值2....值n) 表示等于括号中任意一个值就行)
mysql> # 在city表中查询属于河北省(5)与湖北省(18)的所有市
mysql> select * from city where proID in (5,18);
+--------+--------------------------------+-------+
| cityID | cityName                       | proID |
+--------+--------------------------------+-------+
|      6 | 保定市                         |     5 |
|      2 | 唐山市                         |     5 |
|     10 | 廊坊市                         |     5 |
|      7 | 张家口市                       |     5 |
|      8 | 承德市                         |     5 |
|      9 | 沧州市                         |     5 |
|      3 | 秦皇岛市                       |     5 |
|     11 | 衡水市                         |     5 |
|      5 | 邢台市                         |     5 |
|      4 | 邯郸市                         |     5 |
|     13 | 仙桃市                         |    18 |
|      3 | 十堰市                         |    18 |
|     11 | 咸宁市                         |    18 |
|     14 | 天门市                         |    18 |
|      9 | 孝感市                         |    18 |
|      5 | 宜昌市                         |    18 |
|     17 | 恩施土家族苗族自治州           |    18 |
|     15 | 潜江市                         |    18 |
|     16 | 神农架林区                     |    18 |
|      4 | 荆州市                         |    18 |
|      8 | 荆门市                         |    18 |
|      6 | 襄樊市                         |    18 |
|      7 | 鄂州市                         |    18 |
|     12 | 随州市                         |    18 |
|     10 | 黄冈市                         |    18 |
|      2 | 黄石市                         |    18 |
+--------+--------------------------------+-------+
26 rows in set (0.01 sec)
  1. 逻辑运算符与where搭配
mysql> # and,or用法
mysql> # 在promary表中查询1-3,30-35的地区
mysql> select proID,proName from promary where proID >=1 and proID <= 3 or proID >=30 and proID <= 35;
+-------+--------------------------+
| proID | proName                  |
+-------+--------------------------+
|     1 | 北京市                   |
|     2 | 天津市                   |
|     3 | 上海市                   |
|    30 | 西藏自治区               |
|    31 | 宁夏回族自治区           |
|    32 | 新疆维吾尔自治区         |
|    33 | 内蒙古自治区             |
|    34 | 澳门特别行政区           |
|    35 | 香港特别行政区           |
+-------+--------------------------+
9 rows in set (0.00 sec)

mysql> # not用法
mysql> # 在promary表中查询不在5-30的地区
mysql> select proID,proName from promary where proID not between 5 and 30;
+-------+--------------------------+
| proID | proName                  |
+-------+--------------------------+
|     1 | 北京市                   |
|     2 | 天津市                   |
|     3 | 上海市                   |
|     4 | 重庆市                   |
|    31 | 宁夏回族自治区           |
|    32 | 新疆维吾尔自治区         |
|    33 | 内蒙古自治区             |
|    34 | 澳门特别行政区           |
|    35 | 香港特别行政区           |
+-------+--------------------------+
tips
  1. in操作符与or操作符有相同的功能,但是为什么要用in操作符?原因如下:
    • 使用长的合法选项清单时,in操作符的语法更清楚且更加直观
    • in操作符一般比or操作符更快
    • in的最大优点时可以包含其他select语句,使得能够更加动态地建立where子句。
    • 使用in操作符时,计算的次序更加容易管理(操作符更少)。
  2. MySQL支持使用not对in、between和exists子句取反。这与其他DBMS运行使用not对各种条件取反有很大的差别。

如果想看其他有关于MySQL数据库的文章,请跳转到到MySQL自学目录

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值