博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL学习笔记之三排序和过滤
阅读量:6497 次
发布时间:2019-06-24

本文共 5389 字,大约阅读时间需要 17 分钟。

hot3.png

在数据库的使用中排序和过滤也是经常的操作

排序检索数据,关键字order

##1.按照某个列名排序

普通排序mysql> select * from user;+----+--------+-----+-----------------------+-----+| id | name   | age | address               | sex |+----+--------+-----+-----------------------+-----+|  1 | 张三   |  20 | 北京海底市南区        |   1 ||  2 | 李四   |  22 | 北京海底市南区        |   1 ||  3 | 赵芸   |  32 | 上海市徐汇区          |   2 ||  4 | 王丽   |  31 | 广州厦门              |   2 |+----+--------+-----+-----------------------+-----+4 rows in set (0.00 sec)按照列名name排序是什么样呢?mysql> select * from user order by name;+----+--------+-----+-----------------------+-----+| id | name   | age | address               | sex |+----+--------+-----+-----------------------+-----+|  1 | 张三   |  20 | 北京海底市南区        |   1 ||  2 | 李四   |  22 | 北京海底市南区        |   1 ||  4 | 王丽   |  31 | 广州厦门              |   2 ||  3 | 赵芸   |  32 | 上海市徐汇区          |   2 |+----+--------+-----+-----------------------+-----+4 rows in set (0.00 sec)

##2.按照多个列名排序

mysql> select * from user order by name, age;+----+--------+-----+-----------------------+-----+| id | name   | age | address               | sex |+----+--------+-----+-----------------------+-----+|  1 | 张三   |  20 | 北京海底市南区        |   1 ||  2 | 李四   |  22 | 北京海底市南区        |   1 ||  4 | 王丽   |  31 | 广州厦门              |   2 ||  3 | 赵芸   |  32 | 上海市徐汇区          |   2 |+----+--------+-----+-----------------------+-----+4 rows in set (0.00 sec)

##3.指定排序方向,默认为字母(a-z),升序

使用关键字desc,可以改为降序排列mysql> select * from user order by name desc;+----+--------+-----+-----------------------+-----+| id | name   | age | address               | sex |+----+--------+-----+-----------------------+-----+|  3 | 赵芸   |  32 | 上海市徐汇区          |   2 ||  4 | 王丽   |  31 | 广州厦门              |   2 ||  2 | 李四   |  22 | 北京海底市南区        |   1 ||  1 | 张三   |  20 | 北京海底市南区        |   1 |+----+--------+-----+-----------------------+-----+4 rows in set (0.00 sec)

##4.和limit配合使用,限制检索数据数量

mysql> select * from user order by name limit 3;+----+--------+-----+-----------------------+-----+| id | name   | age | address               | sex |+----+--------+-----+-----------------------+-----+|  1 | 张三   |  20 | 北京海底市南区        |   1 ||  2 | 李四   |  22 | 北京海底市南区        |   1 ||  4 | 王丽   |  31 | 广州厦门              |   2 |+----+--------+-----+-----------------------+-----+3 rows in set (0.00 sec)

数据过滤,关键字where

##1.检索某一条记录

mysql> select * from user where id = 2;+----+--------+-----+-----------------------+-----+| id | name   | age | address               | sex |+----+--------+-----+-----------------------+-----+|  2 | 李四   |  22 | 北京海底市南区        |   1 |+----+--------+-----+-----------------------+-----+1 row in set (0.00 sec)和order by 配合使用mysql> select * from user where id <4  order by name limit 3;+----+--------+-----+-----------------------+-----+| id | name   | age | address               | sex |+----+--------+-----+-----------------------+-----+|  1 | 张三   |  20 | 北京海底市南区        |   1 ||  2 | 李四   |  22 | 北京海底市南区        |   1 ||  3 | 赵芸   |  32 | 上海市徐汇区          |   2 |+----+--------+-----+-----------------------+-----+3 rows in set (0.00 sec)关于where子句的位置: 在同时使用where和order by子句时候, 我们应该让order by位于where 子句之后。

##2.范围检索--between

mysql> select * from user where id between 2 and 4;+----+--------+-----+-----------------------+-----+| id | name   | age | address               | sex |+----+--------+-----+-----------------------+-----+|  2 | 李四   |  22 | 北京海底市南区        |   1 ||  3 | 赵芸   |  32 | 上海市徐汇区          |   2 ||  4 | 王丽   |  31 | 广州厦门              |   2 |+----+--------+-----+-----------------------+-----+3 rows in set (0.00 sec)

##3.过滤--组合where

mysql> select * from user where id >1 and id < 4;+----+--------+-----+-----------------------+-----+| id | name   | age | address               | sex |+----+--------+-----+-----------------------+-----+|  2 | 李四   |  22 | 北京海底市南区        |   1 ||  3 | 赵芸   |  32 | 上海市徐汇区          |   2 |+----+--------+-----+-----------------------+-----+2 rows in set (0.00 sec)

4. 数据过滤--or 操作符

mysql> select * from user where id <2 or id >=3;+----+--------+-----+-----------------------+-----+| id | name   | age | address               | sex |+----+--------+-----+-----------------------+-----+|  1 | 张三   |  20 | 北京海底市南区        |   1 ||  3 | 赵芸   |  32 | 上海市徐汇区          |   2 ||  4 | 王丽   |  31 | 广州厦门              |   2 |+----+--------+-----+-----------------------+-----+3 rows in set (0.00 sec)

##5.数据过滤--in 操作符

in操作符可以用于指定操作范围,范围内每个条件都可以进行匹配。mysql> select * from user where name in ("张三","李四");+----+--------+-----+-----------------------+-----+| id | name   | age | address               | sex |+----+--------+-----+-----------------------+-----+|  1 | 张三   |  20 | 北京海底市南区        |   1 ||  2 | 李四   |  22 | 北京海底市南区        |   1 |+----+--------+-----+-----------------------+-----+2 rows in set (0.00 sec)in操作符的优势:1. 使用长的合法选项清单时候, in操作符比较直观。2. in操作符计算的次序比较好管理3. in操作符一般比or操作符效率快4. in操作符可以包括其他select语句,能够更加动态的创建where子句

##6.数据过滤--not操作符

not操作符只有一个特点, 就是否定它后面的任何条件。mysql支持not对in, between, exists子句取反。mysql> select * from user where name not in ("张三","李四");+----+--------+-----+--------------------+-----+| id | name   | age | address            | sex |+----+--------+-----+--------------------+-----+|  3 | 赵芸   |  32 | 上海市徐汇区       |   2 ||  4 | 王丽   |  31 | 广州厦门           |   2 |+----+--------+-----+--------------------+-----+2 rows in set (0.00 sec)

我的网站:

转载于:https://my.oschina.net/u/3468049/blog/3003835

你可能感兴趣的文章
bzoj 2733 平衡树启发式合并
查看>>
sublime简书安装配置
查看>>
爱上MVC~Web.Config的Debug和Release版本介绍
查看>>
条款03 尽可能使用const
查看>>
【转】那些年我们一起清除过的浮动
查看>>
python__高级 : 动态添加 对象属性, 类属性, 对象实例方法, 类静态方法, 类方法...
查看>>
【每天一道算法题】时间复杂度为O(n)的排序
查看>>
NLog的介绍使用
查看>>
Haproxy+Rabbitmq中的问题
查看>>
字符串变量小议
查看>>
232. Implement Queue using Stacks
查看>>
Poj(1469),二分图最大匹配
查看>>
和菜鸟一起学linux之V4L2摄像头应用流程【转】
查看>>
spin_lock、spin_lock_irq、spin_lock_irqsave区别【转】
查看>>
删除 mac 垃圾桶内清除不掉的文件
查看>>
【响应式编程的思维艺术】 (5)Angular中Rxjs的应用示例
查看>>
/bin/bash^M: bad interpreter: No such file or dire
查看>>
python xml rpc
查看>>
Java设置以及获取JavaBean私有属性进阶
查看>>
db2表结构导出导入,数据库备份
查看>>