select的查询格式
select [*/字段列表] from <表1><表2>..
where <表达式>
group by <字段>
having <expression> [{<operator> <expression>}]
order by <字段>
limit [<offset>,] <row count>
- group by <字段>:告诉MySQL如何显示查询出来的数据,并按照指定的字段分组
- order by <字段>:将查询出来的结果按照后面的字段进行排序。默认为升序,可以进行的排序有:升序(ASC),降序(DESC)
- limit [<offset>,] <row count>:告诉MySQL每次限时查询出来的数据条数
select [字段1,字段2....] from [表或视图] where [查询条件];
建立一张表,作为下面查询的基础
create table fruits(
f_id char(10) not null,
s_id int not null,
f_name char(255) not null,
f_price decimal(8,2) null,
primary key(f_id)
);
一、查询所有字段
- 方式一:select * from fruits;
- 方式二:select f_id,s_id,f_name,f_price from fruits;
二、查询指定字段
- 查找单个字段:select f_id from fruits;
- 查找多个字段:select f_id,s_id from fruits;
三、where条件查询
- select f_id,f_name from fruits where f_prices=10.2;
四、in运算符查询
- select s_id,f_name,f_price from fruits where s_id in(101,102) order by f_name;
五、between..and运算符查询
- 查询在区间内的:select f_id,f_name from fruits where f_prices between 2.00 and 10.20;
- 查询不在区间内的:select f_id,f_name from fruits where f_prices not between 2.00 and 10.20;
六、带like的字符匹配查询
- %通配符代表任意长度的字符串:select f_name where f_name like 'b%';
- _通配符一次只能代表一个字符:select f_name where f_name like '____y';
七、查询空值:is null,is not nul运算符
- 查询NULL值:select f_id,f_name from fruits where f_prices is null;
- 查询非NULL值:select f_id,f_name from fruits where f_prices is not null;
八、带and的多条件查询
- and可以用在多个表达式之间,所有条件都满足才返回结果。并且and可以多次使用
- 一个and使用:select f_id,f_name from fruits where s_id='101' and f_price>=5;
- 多个and使用:select f_id,f_name from fruits where s_id='101' and f_price>=5 andf_name='apple';
九、带or的多条件查询
- 原理与or相同。只要满足其中一个条件就可以返回结果
- 一个and使用:select f_id,f_name from fruits where s_id=101 and s_id=102;
- 多个and使用:select f_id,f_name from fruits where s_id='101' and f_price>=5 andf_name='apple';
十、distinct查询结果不重复
- 查询出来的结果,如果有重复的只显示一条
- select distince s_id from fruits;
十一、对查询结果排序:order by单列排序
- select f_name from fruits order by f_name;
十一、对查询结果排序:order by多列排序
- 多列排序时,如果前面的列进行排序过了,后面的列就不会进行排序。如果前面的列值都是相同的,才会根据后面的列进行排序
- select f_name,f_price from fruits order by f_name,f_price;
十二、对查询结果排序:desc、asc指定排序方向
- asc:将排序结果进行升序排序(默认使用的)
- desc:将排序结果进行降序排序
- 降序排序:select f_name,f_price from fruits order by f_price desc;
- 对多列进行不同的排序:select f_name,f_price from fruits order by f_price desc,f_name;
十三、limit限制查询行数
公式:
- limit [位置偏移量,] 行数
- limit [位置偏移量 offset] 行数
注意:
- 位置偏移量:代表从第几行开始查询,省略时从第一条开始。第一条记录的位置偏移量为0...以此类推
- 行数:代表查询结果显示多少行
- 显示前4行:select * from fruits limit 4;
- 从第五行开始显示,显示3行:select * from fruits limit 4,3;
- 从第五行开始显示,显示3行:select * from fruits limit 4 offset 3;