• 基本sql语句--五种子句


    sql的五种子句分别为:
    where 条件查询
    group by 分组
    having 筛选
    order by 排序
    limit 限制结果条数
     
    where的常用运算符
     
    比较运算符
     
    运算符 说明
    <和<= 小于和小于等于
    >和>= 大于和大于等于
    = 等于
    <>  或 != 不等于
    in 在某集合内,如 id in (值1,值2...值N);
    between 在某范围内,如id between 值1 and 值2;取值包括两边边界值。
     
    逻辑运算符
     
    运算符 说明
    NOT 或 ! 逻辑非
    OR 或 || 逻辑或
    AND 或 && 逻辑与
     
     
    模糊查询
     
    使用关键字like进行模糊查询,“%”通配任意字符,“_”通配单一字符;
     
    group by 子句
     
    分组一般会配合统计函数一起使用,相关的统计函数:
    max 求最大
    min 求最小
    sum 求总和
    avg 求平均
    count 求总行数
     
    注意:在sql中把列当成变量看,处理起来会方便很多。
     
    如:查询本店所有商品比市场价格低多少:select good_id,good_name,market _price-shop_price from goods;
           查询每个栏目挤压的货款:select cat_id,sum(shop_price * good_num) from goods group by cat_id;
     
    having 子句
     
    where子句只能针对表进行查询,不能对结果再次进行查询(简单理解,表存储在硬盘上,结果存储在内存或缓存);若想对结果再次进行查询,需要通过having子句。
     
    where子句只对表起作用,一般来说,where子句称为查询,having称为筛选。
     
    如:查询店内低于市场价格200元的商品:select good_id,good_name,market _price-shop_price as jiesheng from goods having jiesheng > 200;(此处若用where会报错,因为jiesheng这个字段不存在表中,而是在查询结果中)
     
    若sql语句中,同时包含where和having子句,where子句优先级要高于having子句。
     
    如:查询栏目3下比市场价低200的商品:select good_id,cat_id,market_price-shop_price as jiesheng from goods where cat_id = 3 having jiesheng > 200;
    如:查询积压货款大于2W的栏目以及积压的货款:select cat_id,sum(shop_price * good_num) as hk from goods group by cat_id having hk > 20000;
     
    熟练运用where、group by、having
     
    结果:
     
    select name,avg(fenshu) as avg_fenshu from stu group by name;
     
    SELECT name,fenshu<60 from stu;
     
    SELECT name,sum(fenshu<60),avg(fenshu) as avg_fenshu FROM stu GROUP BY name;
     
    SELECT name,sum(fenshu<60) as gk,avg(fenshu) as avg_fenshu FROM stu GROUP BY name HAVING gk >=2;
     
    使用子查询实现:
    select name,avg(fenshu) from stu where name in (select name from (select name,count(*) as gk from stu where fenshu<60 group by name having gk>=2) as tmp) group by name;
     
    order by 子句
     
    order by 子句排序默认是升序排列(ASC),若需要降序排列,使用关键词DESC;
     
    limit 子句
     
    limit使用格式:limit[offset,]N,其中offset代表偏移量,N代表取出的条目;
    如:limit 3,3;表示从第四行开始取,取三行数据,即取第4~6行数据。
     
    五个子句的优先级从高到底(执行顺序):where-->group by-->having-->order by-->limit.
     
     
     
  • 相关阅读:
    HashMap遍历的两种方式
    抽象类和接口的区别是什么
    “用户、组或角色'XXX'在当前数据库中已存在”问题
    FCKEditor在IE10下的不兼容问题解决方法
    ADODB.Connection 错误 '800a0e7a' 未找到提供程序。该程序可能未正确安装。解决方法!
    ASP.NET中Url重写后,打不开真正的Html页面
    运用正则表达式在Asp中过滤Html标签代码的四种不同方法
    静态页分页功能js代码
    .NET生成静态页面的方案总结
    禁止ViewState的3种解决方法
  • 原文地址:https://www.cnblogs.com/skyline1011/p/5939495.html
Copyright © 2020-2023  润新知