栏目分类
系统安全 | 服务器安全 | 网络安全 | 木马病毒 | 漏洞补丁 | 防火墙 | 系统安全 | 备份恢复 | 安全策略
系统优化 | 提速 | 优化性能 | 服务 | 清理垃圾
网络技巧 | 网络命令 | 网络技巧 | 网络访问 | 共享 | 网络管理
服务器技术 | Exchange | FTP服务器 | ISAServer | 域服务器 | Web服务器 | SQLServer | 其他服务器
系统技巧 | 系统管理 | 系统技巧 | 注册表 | 进程
windows新手入门 | 系统基础 | 网络基础 | 安装 | 技术前沿
系统故障 | 网络故障 | 开关机故障 | 系统故障 | 软件故障 | 当机故障
资讯动态
排行榜
·如何修复SQLSERVER数据库"置疑"问题
·SQLServer2000企业版安装教程(二)
·SQLServer2000企业版安装教程(一)
·SQLServer的数据类型介绍
·Delphi与SQLServer存储过程编程详解
·SQLServer2000企业版安装教程(三)
·SQLServerM复制和远程数据访问对比
·SQLServer扩展存储过程实现远程备份与恢复
·如何将DBF数据库转换成SQLServer表
·SQLServer的用户权限管理
·黑客是如何破解MSSQLSERCVER密码的
·PL/SQL开发中动态SQL的使用方法
·SQLServer2000中的触发器使用
·全面接触SQL语法(3)
·全面接触SQL语法(4)
·简单查询和联合查询两方面介绍SQL查询语句
·SQLServer索引结构及其使用(四)
·SQLServer2000汉字数据简繁转换实例
·SQLServer索引结构及其使用(二)
·SQLServer索引结构及其使用(一)

    您现在的位置: Linux宝库 >> Windows >> 服务器技术 >> SQLServer >> 文章正文
全面接触SQL语法(3)
Linux宝库 收集整理  作者:Linux宝库  时间:2007-12-31  收藏本站
来自:http://doc.linuxpk.com/34437.html
联系:linuxmine#gmail.com
分类:[SQLServer]
  指定一特定的分组记录,并满足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);

  

   本文来自:http://doc.linuxpk.com/34437.html

 
     最新更新
·榨干MSSQLServer最后一滴血
·SQLINJECTION的SQLServer安全设置
·SQLServer数据库的查询优化及分页算法(1)
·SQLServer数据库的查询优化及分页算法(2)
·SQLServer数据库的查询优化及分页算法(3)
·SQLServer2000中生成XML的小技巧
·保护SQLServer:为安全性而安装
·SQLServer2000数据库文件损坏时如何恢复
·SQLServer数据仓库的构建与分析
·SQL的三个主要语句及一点技巧
·SQLServer连接中三个最常见错误原因分析
·SQLServer.net和OLEDB.net连接数据库比较
·SQLService2000的全文搜索的整理
·SQLServer2005中的分区表和索引(1)
·SQLServer2005中的分区表和索引(2)
·SQLServer2005中的分区表和索引(3)
·SQL中两台服务器间使用连接服务器
·SQLServer2000数据库置疑的解决方法
·小技巧:解密SQL2000的存储过程
·SQLServer数据库的备份与恢复
·SQLServer数据库的备份与恢复
·PL/SQL中的多进程通信技术简介
·有孔就入SQLInjection的深入探讨
·SQL高手篇:精妙SQL语句说明介绍
·一个SqlServer数据恢复实例案例
·从MDF文件恢复SqlServer2000数据库
·SQLServer2000之日志传送功能(1)
·SQLServer2000之日志传送功能(2)
·SQLServer2000之日志传送功能(3)
·MSSQLServer2k数据转换服务部署