MySQL数据库语句
按关键字排序
使用select语句可以将需要的数据从 mysql 数据库中查询出来,如果对查询的结果进行排序操作,可以使用 order by 语句完成排序,并且最终将排序后的结果返回给客户。这个语句的排序不光可以针对某一个字段,也可以针对多个字段。
select 字段 from 表名 order by 字段 asc|desc
asc|desc
- asc 是按照升序进行排名的,是默认的排序方式,即ASC可以省略
- desc 是按照降序的方式进行排序的
order by 也可以通过 where 子句对查询结果进行进一步的过滤
可进行多字段的排序
按分数排序,默认不指定是升序排列
select * from info order by score; ###(asc默认省略)
按分数排序,降序排列
select * from info order by score desc;
结合where进行条件过滤,筛选条件是nanjing的学生按分数把名字和分数降序
select name,score from info where address='nanjing' order by score desc;
多字段排序
ORDER BY 语句也可以使用多个字段来进行排序,当排序的第一个字段相同的记录有多条的情况下,这些多条的记录再按照第二个字段进行排序,order by 后面跟多个字段时,字段之间使用英文逗号隔开,优先级是按先后顺序而定,但order by 之后的第一个参数只有在出现相同值时,第二个字段才有意义。
查询学生信息先按照hobbid降序 相同的在按照id降序排列
select * from info order by hobbid desc,id desc;
查询学生信息先按照hobbid升序 相同的在按照id升序排列
select * from info order by hobbid,id;
区间判断及查询不重复记录
AND/OR——且/或的使用
select * from info where id>2 and id<5; #2<id并且<5
select * from info where id>5 or id<2; #id>5或者id<2
嵌套/多条件
##先括号里的
select * from info where id=2 or (id>3 and id <5); #相当于id=2或者id是4
select * from info where score <70 or (score >90 and score <100); ##分数小于70或者 大于90小于100
distinct查询不重复记录
select distinct 字段 from 表名﹔
distinct 必须放在最开头
distinct 只能使用需要去重的字段进行操作
distinct 去重多个字段时,含义是:几个字段同时重复时才能被过滤,会默认按左边第一个字段为依据。
select address from info group by address;
对结果进行分组
通过 SQL 查询出来的结果,还可以对其进行分组,使用 GROUP BY 语句来实现 ,GROUP BY 通常都是结合聚合函数一起使用的,常用的聚合函数包括:计数(COUNT)、 求和(SUM)、求平均数(AVG)、最大值(MAX)、最小值(MIN),GROUP BY 分组的时候可以按一个或多个字段对结果进行分组处理。
按成绩score相同的分组,计算相同兴趣name的个数
select count(name),score from info group by score;
结合where语句
select count(name),hobbid from info where score >= 80 group by hobbid; ##筛选出分数大于等于80的 hobbid分组 计算学生个数
限制结果条目
在使用 MySQL SELECT 语句进行查询时,结果集返回的是所有匹配的记录(行)。有时候仅 需要返回第一行或者前几行,这时候就需要用到 LIMIT 子句
select 字段 from 表名 limit [offset,]