MySQL:22---MySQL单表查询(select)

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;

猜你喜欢

转载自blog.csdn.net/qq_41453285/article/details/88069347