mysql之进阶查询语句
文章目录
1常用查询
1.1order by按关键字排序
使用select 语句可以将需要的数据从mysql数据库中查询出来,如果对查询的结构进行排序,可使用order by语句来对语句实现排序,并最终将排序的结果返回给用户,这个语句语句的拍讯不光可以针对某一个字段,也可以针对多个字段。
select 字段1,字段2… from 表名 order by 字段1,字段2…【asc】
#查询结构以升序方式显示,asc可以省略
select 字段1,字段2… from 表名 order by 字段1,字段2…desc
#查询结构以降序方式显示
ASC是按照升序进行排序,是默认的排序方式,即ASC可以省略
select语句中如果没有指定具体的排序方式,则默认按ASC方式进行排序。
desc是安装降序方式进行排序,
order by 前面也可以使用weher子句对查询结构进一步过滤
升序排序
select id,name,score from info order by score asc;
#查询id,name,score字段的记录,并且以score 进行升序
降序排序
select id,name,score from info order by score desc;
#查找id,name,score字段的记录,以score进行降序排列
多字段排序
order by 语句也可以使用多个字段来进行拍讯,当排序的第一个字段相同的记录有多条的情况下,这些多条的记录再按照第二个字段进行排序,order by 后面跟多个字段时,字段之间使用英文逗号隔开,优先级是按先后顺序而定, 但order by 之后的第一个参数只有在出现相同值时,第二个字段才有意义
select name,score,id,age from school order by age,score desc;
#安装id先进行升序排序,如果id出现相同的话就按照score进行降序排列
1.2and和or判断
在大型数据库中,有时查询数据需要数据符合某些特点条件, ”and“ 和 ”or“ 表示 ”且“ 和 ”或“。
and和or的使用
select id,name,score,address from test1 where score>=80; 查看score>=80
select id,name,score,address from test1 where score>=80 order by score desc; 查看score>=80 并进行倒序排列
select id,name,score from test1 where score<60 or score>80;
1.3distinct 查询不重复记录
select distinct 字段 from 表名;
distinct 必须放在最开头
distinct 只能使用需要去重的字段进行操作
distinct 去重多个字段时,含义是:几个字段同时重复时才能被过滤,会默认按左边第一个字段为依据。
select distinct address from test1; 去掉重复的address