mysql 去重取出最小值_MySQL基础(二)

一、单表查询的语法SELECT 字段1,字段2... FROM 表名WHERE 条件GROUP BY fieldHAVING 筛选ORDER BY fieldLIMIT 限制条数二、关键字的执行优先级(重点)重点中的重点:关键字的执行优先级fromwheregroup byhavingselectdistinctorder bylimit1.找到表:from2.拿着where指定的约束条件,去文件...
摘要由CSDN通过智能技术生成

一、单表查询的语法

SELECT 字段1,字段2... FROM 表名

WHERE 条件

GROUP BY field

HAVING 筛选

ORDER BY field

LIMIT 限制条数

二、关键字的执行优先级(重点)

重点中的重点:关键字的执行优先级fromwhere

group by

having

select

distinct

order by

limit

1.找到表:from

2.拿着where指定的约束条件,去文件/表中取出一条条记录

3.将取出的一条条记录进行分组group by,如果没有group by,则整体作为一组

4.将分组的结果进行having过滤

5.执行select

6.去重

7.将结果按条件排序:order by

8.限制结果的显示条数

查询

给表起别名,用在SQL语句同时查询多张表,又不想写太多表名的情况下

select s.name, s.gender from students2 as s;

去重

select distinct gender from students2; # 只显示有多少种性别,而不是多少个性别

条件查询

比较运算

>  =   <=   !=

select * from students2 where age = 18; #一个等号=就行

and

select name from students2 where age > 18 and gender="女";

条件:不在 18岁以上的女性 这个范围内的信息

select * from students2 where not (age > 18 and gender="女");

易错

select * from students2 where not age > 18 and gender="女";

模糊查询

like

%  替换一个或者多个

_  替换一个

查询姓名中以“小”开始的名字

select name from students2 where name like "小%";

查询姓名中有“小”所有的名字

select name from students2 where name like "%小%";

查询有两个字的名字

select * from students2 where name like "__";

查询至少有两个字的名字

select * from students2 where name like "__%";

rlike  正则

查询以小开始的姓名

select name from students2 where name rlike "^小.*";

范围查询

in(1, 3, 8)表示在一个非连续的范围内

查询年龄为12, 18, 21的信息

select * from students2 where age in (12, 18, 21);

查询年龄不为12, 18, 21的信息

select * from students2 where age not in (12, 18, 21);

between ... and ... 表示在一个连续的范围内

查询年龄在12到18之间的信息

select * from students2 where age between 12 and 18;

查询年龄不在12到18之间的信息

select * from students2 where age not between 12 and 18;

不能加括号:

select * from students2 where age not (between 12 and 18);

空判断

判空  is null

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值