mysql中的排序关键字
关键词:order by / desc(降序) asc(升序默认的)
正常的数据表都是默认升序排列 , 比如有一个学生数据表,需要对里面的学生id进行降序排列, 那么语法是
select * from 表名 order by 字段名 desc;
然后s_id就会变成降序排列, 就是如下效果
mysql> select * from student order by s_id desc;
+------+--------+------------+-------+
| s_id | s_name | s_birth | s_sex |
+------+--------+------------+-------+
| 08 | 王菊 | 1990-01-20 | 女 |
| 07 | 郑竹 | 1989-07-01 | 女 |
| 06 | 吴兰 | 1992-03-01 | 女 |
| 05 | 周梅 | 1991-12-01 | 女 |
| 04 | 李云 | 1990-08-06 | 男 |
| 03 | 孙风 | 1990-05-20 | 男 |
| 02 | 钱电 | 1990-12-21 | 男 |
| 01 | 赵雷 | 1990-01-01 | 男 |
+------+--------+------------+-------+
8 rows in set (0.17 sec)
运算符
简单举几个例子
=相等于就是判断
在学生表里找出id=01的数据
select * from student where id='01';
在学生表里找出id大于1的数据
select * from student where id>1;
连接符
连接符有两个 and和or,前者是且 后者是或
举例
从学生表中找出id大于5并且性别为男的数据
select * from student where id>5 and sex='男';
in/not in关键字
在in的括号中可以给定多个参数值,参数值之间的条件是或关系,且不一定非要满足
查询学生表中的部分学生信息
select * from student where s_id in(3,4,7,8,11);
#有几个id的数据就显示几个, 没有也不会报错
聚合函数
求和
select 字段 + 字段 from 表名;
求总行数(count())
select count(*) from student;
求最大值max()
select max(s_id) from student;
求平均值(avg())
select avg(字段) from 表名;
分组(group by)
根据数据中的某一个特征对数据进行划分,这种形式叫分组,having条件是结合group by使用,意思在分组的基础上再次进行筛选.
having和where有什么区别
1.where是直接跟在表的后面的条件,having是跟在group by后面的条件
2.having的使用需要结合group by,group by在进行分组的时候是很耗性能的
别名
别名只是在当前要显示的结果中生效,为了容易识别 关键词是as 并且可以省略不写
分页(limit)
该关键词只能在MySQL中使用 , 所以被称为方言
语法:limit arg0,arg1; arg0代表起始下标(数据库中的下标是从0开始的),arg1代表要查询的条数
# 需求:查询前3条数据
select * from student limit 0,3;
# 需求:查询第二页的数
select * from student limit 3,3;