• mysql 第二天


    -- 条件查询:select  from    where
    -- 查询客户a1的购买记录
    
    select  *
    from fruit
    where s_name = 'a1';
    
    #或者可以查询到a1的购买次数
    
    select count(distinct s_name)  from fruit;   #其中distinct 为去除重复的项目
    
    -- 查询客户a2购买的价格小于10的水果
    
    select f_name , f_id
    from fruit 
    where s_name = 'a2' and f_price <10;
    
    -- 查询价格在10到20之间的水果    #in 查询
    
    ##方法一
    select *
    from fruit
    where f_price in
        (select  f_price
        from fruit
        where f_price between 10 and 20);
    
    ##方法二
    select *
    from fruit
    where f_price >=10 and f_price <=20;
    
    
    -- 空值查询  select   from   where   is  null;
    -- 查询f_price 为空的记录
    
    select *
    from fruit
    where f_price is null ;     #判断为空的值不能用等号,,用is
    
    --  查询价格不为空的所有记录
    
    select *
    from fruit
    where f_price is not null;
    
    --  模糊查询  select     from     where     like
    
    -- 查询名称以a开头的水果记录;
    
    select *
    from fruit
    where f_name like "a%";
    
    --  查询名称中包含a的水果记录
    
    select *
    from fruit
    where f_name like "%a%";  #名称中第二个字符为a的水果记录有   like '_a%'
    
    
    
    -- 
    

      查询,聚合运算,分组查询等

    -- 聚合运算
    --  查询fruit表中所有水果的数量、最高价、最低价和平均价格
    
    select count(f_id),max(f_price),min(f_price),avg(f_price)
    from fruit;
    
    --  分组查询
    -- 查询每位客户购买的水果均价
    
    select s_name,avg(f_price)
    from fruit
    group by s_name;
    
    -- 查询每位客户购买的不同水果的平均价格
    
    select  s_name , f_name , avg(f_price)
    from fruit
    group by s_name,f_name;
    
    -- 分组后筛选:select 字段1[,字段2,…] from 表名[ where 查询条件][ group by 分组字段1[,分组字段2,…]] having 筛选条件;
    -- 查询客户a1购买的水果均价
    #第一种方法
    select s_name,f_name,avg(f_price)
    from fruit
    where s_name = 'a1';
    #第二种方法
    select s_name ,f_name, avg(f_price)
    from fruit
    group by s_name 
    having s_name= 'a1';
    
    注意:代码执行的顺序,where ,group by ,having ,order by
    
    
    -- 分组前筛选where
    -- 客户购买水果均价大于10  ##只有真实存在的数据可以在where中使用,计算得到的不可以在where中用,,可以having中
    
    select s_name,f_name,avg(f_price)
    from fruit
    group by s_name
    having avg(f_price) >10;
    
    -- having在分组和聚合之后筛选,而where子句不能包含聚合函数,having 做使用的子句必须在select 中出现
    -- 查询购买苹果的客户
    
    select s_name ,f_name
    from fruit
    where  f_name = 'apple'
    group by s_name;
    
    -- having 子句中的筛选字段必须在 select 子句中出现
    -- 查询每位客户购买的水果中apple的均价
    
    ###注意:先where然后是group by  、 order by 、 having   ,,,所以此时要显示客户购买苹果均价时应该以水果进行分组,而不是以客户进行分组
    
    select s_name,f_name,avg(f_price)
    from fruit
    group by f_name
    having f_name = 'apple';
    
    
    -- 查询结果排序:select 字段1[,字段2,…] from 表名 order by 字段1[ 排序方向,字段2 排序方向,…];
    -- 单字段排序
    -- 查询所有水果信息按f_price降序显示
    
    select *
    from fruit
    order by f_price desc;
    
    -- 多字段排序:先按第一个字段排序,第一个字段值相同时再按第二个字段排序
    -- 查询所有水果信息按s_name升序、f_price降序显示     意义:可以看出同一位用户所购物品的最大至最小
    
    select *
    from fruit
    order by s_name,f_price desc;
    
    -- 排序字段中的null默认排在最前面
    -- 查询所有水果信息按f_price升序显示
    
    select *
    from fruit
    order  by f_price asc;
    
    -- 限制查询结果数量:select 字段1[,字段2,…] from 表名 limit [偏移量,] 行数 | 行数 offset 偏移量;  用limit函数
    -- 查询f_price最高的十种水果
    
    
    select  *
    from fruit
    order by f_price desc
    limit 10;
    
    -- 查询f_price排在第10以后的5种水果
    
    select *
    from fruit
    order by f_price desc
    limit 10,5;    ##limit 1,10   第二道第11位    
    

      

  • 相关阅读:
    非凸问题寻优
    非凸问题寻优
    函数的微分表
    函数的微分表
    图形的认识(curve,surface,hypersurface)
    几种Java写webservice的比较
    C#利用lambda在函数中创建内部函数
    uva 387 A Puzzling Problem (回溯)
    HDU 4336 Card Collector 数学期望(容斥原理)
    【ArcGIS 10.2新特性】Portal for ArcGIS新特性
  • 原文地址:https://www.cnblogs.com/manjianlei/p/11278703.html
Copyright © 2020-2023  润新知