Chinaunix首页 | 论坛 | 博客
  • 博客访问: 559087
  • 博文数量: 747
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 4995
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-10 10:19
文章分类

全部博文(747)

文章存档

2011年(1)

2008年(746)

我的朋友
最近访客

分类:

2008-09-10 10:28:28


  指定一特定的分组记录,并满足HAVING 所指定的条件或状态,但条件是针对分组的条件设置。
  
  SELECT fieldlist
  FROM table
  WHERE selectcriteria
  GROUP BY groupfieldlist
  HAVING groupcriteria
  fieldlist
  显示被查询的字段名称。(可与ALL,DISTINCT,DISTINCTROW,或TOP相结合)
  table
  欲查询数据的表格名称。
  selectcriteria
  选取标准。
  groupfieldlist
  分组记录的字段名称,到多10个字段。而这些字段的顺序决定最高到最低的分组阶层。
  groupcriteria
  决定什么样的分组记录要被显示。
  HAVING跟WHERE 的用法相当类似,不同之处在于HAVING必须用于GROUP之后的分组数据上。
  例如:
  SELECT 分类编,Sum(库存数量)
  FROM 产品表格
  GROUP BY 分类编号
  HAVING Sum(库存数量)>100 AND 产品名称 LIKE "*纸";
  
  GROUP BY 条件子句
  
    依据指定的字段,将具有相同数值的记录合并成一条。
  
  SELECT fieldlist
  FROM table
  WHERE criteria
  GROUP BY groupfieldlist
  fieldlist
  欲读取的字段名称。(可与ALL,DISTINCT,DISTINCTROW,或TOP合并使用)
  table
  被查询的表格名称。
  groupfieldlist
  分组记录的字段名称,到多10个字段,而这些字段的顺序决定最高到最低的分组层次。
  例如:
  SELECT 姓名,Count(姓名)AS 职员姓名
  FROM 职员表格
  WHERE 部门名称="业务部"
  GROUP BY 姓名
  
  FROM 条件子句
  
    指定表格名称或是查询,其中包含列在SELECT语句的字段数据。
  
  SELECT fieldlist
  FROM tableexpression[IN externaldatabase]
  fieldlist
  表格中的字段名称。(可与ALL,DISTINCT,DISTINCTROW,或TOP相结合)
  tableexpression
  表格名称,或多个表格的算式。
  externaldatabase
  若该表格参考到外部的数据库时,将其完整的路径名称记下。
  例如:
  从职员表格下,查询出所有姓名字段的数据(只有姓名字段被查询,其他则不显示)。
  SELECT 姓名 FROM 职员表格;
  
    WHERE 条件子句
  <指定查询的条件与限制。
  
  SELECT fieldlist
  FROM tableexpression
  WHERE criteria
  fieldlist
  字段名称。(可与ALL,DISTINCT,DISTINCTROW,或TOP相结合)
  tableexpression
  表格名称,或多个表格的算式。
  criteria
  查询的结果,必须依照这一限制标准。
  例如:
  要查询出职员表格中,所有姓氏是李的数据,可以用下面的语句。
  SELECT 姓名
  FROM 职员表格
  WHERE 姓氏="李";
  BETWEEN...AND 运算符
  
    决定某一人数值是否介于特定的范围之内,此运算符只可以用在SQL的语句中。
  
  expr[Not]BETWEEN value1 AND value2
  expr
  指定要加以计算的字段与表达式的组合。
  value1,value2
  所指明的数值范围。
  例如:
  若是要从职员表格查询出所有年龄介于25-30岁的员工,可以利用下面的程序来做。
  SELECT 姓名,年龄 BETWEEN 25 AND 30
  FROM 职员表格;
  
    LIKE 操作数
  
    用来将一字符串与另一特定字符串样式(pattern)比较,并将符合该字符串样式的记录过滤出来。
  
  expression LIKE "pattern"
  expression
  使用在WHERE条件子句,SQL表达式。
  pattern
  用以比较的字符串样式。
  例如:
  若是你要查询出所有以“李”为首的姓氏,可以利用下面的式子。
  Like "李*"
  LIKE操作数的多种范例:
  1、多个字符:
  (1)"a*a"
  可筛选:"aa","aBa","aBBBa",不能筛选:"aBC"
  (2)"*ab*"
  可筛选:"abc","AABB","Xab",不能筛选:"aZb","bac"
  2、特殊字符:
  "a“*”a"
  可筛选:"a*a",不能筛选:"aaa"
  3、单一字符:
  "a?a"
  可筛选:"aaa","a3a","aBa",不能筛选:"aBBBa"
  4、单一数字:
  "a#a"
  可筛选:"a0a","a1a","a2a",不能筛选:"aaa","a10a"
  5、字符范围:
  "“a-z”"
  可筛选:"f","p","j",不能筛选:"2","&"
  6、指定字符以外部范围:
  "“!a-z”"
  7、指定非数字:
  "“!0-9”"
  可筛选:"A","a","&","~",不能筛选:"0","1","9"
  8、组合式结构:
  "a“!b-m”#"
  可筛选:"An9","az0","a99",不能筛选:"abc","aj0"
  
    SQL数字函数
  
    1、AVG:算数平均数
  AVG(expr)
    expr
    字段名称或表达式。
    例如:
  
    若要计算职员身高超过165厘米的职员平均身高,可以利用下面的SQL语句来完成。
  SELECT Avg(身高)
  AS 平均身高
  FROM 职员表格 WHERE 身高>165;
  
    2、COUNT:计算记录条数
    COUNT(expr)
  expr
  字段名称或表达式。
    例如:
    若是要统计出业务部门的职员人数,并查询出职员的姓名,可以利用下面的程序。
    SELECT Count(姓名) AS 职员姓名
    FROM 职员表格
    WHERE 部门名称="业务部";
  
    3、FIRST与LAST:返回某字段的第一条数据与最后一条数据。
    FIRST(expr)
    LAST(expr)
    expr
    字段名称或表达式。
    例如:
    若是要找出货品数量字段的第一条数据与货品价格字段的最后一条数据时,可以利用下面的查询方式
    SELECT FIRST(货品数量),LAST(货品价格)
    FROM 订单表格
  
    4、MAX,与MIN:返回某字段的最大值与最小值。
  
    用法同FIRST与LAST。
    5、SUM:返回某特定字段或是运算的总和数值。
  
    SUM(expr)
    expr
    字段名称或表达式。
    例如:
    要计算出货品总价,可使用下面的程序。
    SELECT
    Sum(单位价格*货品数量)
    AS 货品总价 FROM 订单表格
    多层SQL查询
    顾名思义,多层的SQL查询的便在于:“在一个SQL语句中可以包含另一个SQL查询语句,形成内部嵌套的查询类型。”
  comparison[ANY|ALL|SOME](sqlstatement)
  expression[NOT]IN (sqlstatement)
  [NOT]EXISTS(sqlstatement)
  comparison
  将表达式与内层查询的结果比较的操作。
  expression
  对内层查询的结果作搜索的表达式。
  sqlstatement
  为SELECT语句构成的SQL查询,必须用()将该语句括起来。
    例如:
    我们先从订单表格当中,查询出所有的单位,再将产品表格中的单位与的一一对比,查询出所有高于订单表格的单位价格的记录。
  ELECT * FROM 产品表格
  
    WHERE 单位价格>ANY (SELECT 单位价格 FROM 订单表格 WHERE 折扣>=.25);
  
  
  
  
  
【责编:admin】
--------------------next---------------------

阅读(434) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~