当前位置:Gxlcms > 数据库问题 > SQL Server 2008常用的数据库知识整理

SQL Server 2008常用的数据库知识整理

时间:2021-07-01 10:21:17 帮助过:49人阅读

一、计算字段

  1. <span style="color: #800000; font-weight: bold;">1</span>、NULLIF函数 将 <span style="color: #0000ff;">null</span><span style="color: #000000;"> 的姓名转化为“佚名”;</span>

    表达式:NULLIF ( expression1 , expression2 )
    含义:如果两个表达式不等价, 则 NULLIF 返回第一个 expression1的值。
         如果两个表达式等价, 则 NULLIF 返回第一个 expression1类型的空值。

  1. <span style="color: #800000; font-weight: bold;">2</span>、Beween <span style="color: #808080;">And</span><span style="color: #000000;"> 计算字段
  2. 如:Fsalary </span><span style="color: #808080;">Between</span> Fage<span style="color: #808080;">*</span><span style="color: #800000; font-weight: bold;">1.5</span><span style="color: #808080;">+</span><span style="color: #800000; font-weight: bold;">2000</span> <span style="color: #808080;">And</span> Fage<span style="color: #808080;">*</span><span style="color: #800000; font-weight: bold;">1.8</span><span style="color: #808080;">+</span><span style="color: #800000; font-weight: bold;">5000</span>
  3. <span style="color: #800000; font-weight: bold;">3</span><span style="color: #000000;">、SQL的语法计算,取代代码的计算
  4. 如: </span><span style="color: #0000ff;">Update</span> t <span style="color: #0000ff;">set</span> fgroup<span style="color: #808080;">=</span>id<span style="color: #808080;">/</span><span style="color: #800000; font-weight: bold;">10</span>

 

二、组合查询 Union

  1. <span style="color: #800000; font-weight: bold;">1</span><span style="color: #000000;">、UNION操作符可以将两个(或多个)查询语句的两个查询结果集合并成一个结果集;
  2. </span><span style="color: #800000; font-weight: bold;">2</span><span style="color: #000000;">、连接原则:
  3. 一是每个结果集必须有相同的列数; 二是每个结果集的列必须类型相容。
  4. </span><span style="color: #800000; font-weight: bold;">3</span><span style="color: #000000;">、默认规则:
  5. UNION运算符合并了两个查询结果集, 其中完全重复的数据行被合并为了一条
  6. </span><span style="color: #800000; font-weight: bold;">4</span>、<span style="color: #0000ff;">UNION</span> ALL获得所有的结果集。

 

三、匹配

  1. <span style="color: #800000; font-weight: bold;">1</span>、_(补位)<span style="color: #008080;">--</span><span style="color: #008080;">--单字符匹配</span>
  2. <span style="color: #800000; font-weight: bold;">2</span>、<span style="color: #808080;">%</span>(所有)<span style="color: #008080;">--</span><span style="color: #008080;">--多字符匹配</span>
  3. <span style="color: #800000; font-weight: bold;">3</span>、<span style="color: #ff0000;">[]</span><span style="color: #008080;">--</span><span style="color: #008080;">--集合匹配</span>
  4. 如:<span style="color: #ff0000;">[AB</span><span style="color: #ff0000;">]</span><span style="color: #808080;">%</span><span style="color: #000000;">,以“A” 或者“B“开头长度, 长度任意。
  5. 注:集合取反,“</span><span style="color: #808080;">^</span>”,如“<span style="color: #ff0000;">[</span><span style="color: #ff0000;">^AB</span><span style="color: #ff0000;">]</span><span style="color: #808080;">%</span>”

 

四、in语句

  1. <span style="color: #800000; font-weight: bold;">1</span><span style="color: #000000;">、多值检测
  2. 如:</span><span style="color: #0000ff;">SELECT</span> FAge,FNumber,FName <span style="color: #0000ff;">FROM</span><span style="color: #000000;"> T_Employee
  3. </span><span style="color: #0000ff;"> WHERE</span> FAge <span style="color: #808080;">IN</span> (<span style="color: #800000; font-weight: bold;">23</span>, <span style="color: #800000; font-weight: bold;">25</span>, <span style="color: #800000; font-weight: bold;">28</span><span style="color: #000000;">)
  4. </span><span style="color: #800000; font-weight: bold;">2</span>、范围值检测(不提倡,推荐用between...<span style="color: #808080;">and</span>...)

 

五、WHERE 1=1 使用动态组装的SQL

  1. 1、指定一个永远为真的条件,不需要再判断where是否存在了;
  2. 2、容易造成性能损失;
  3. 3、最好where与and都要拼接。 

六、窗口函数ROW_NUMBER()

1、含义:计算每一行数据在结果集中的行号(从1开始计数)


2、例:SELECT ROW_NUMBER() OVER(ORDER BY FSalary),FNumber,FName,FSalary,FAge
      FROM T_Employee


3、扩展:
   第3行到第5行的数据:
   SELECT * FROM
  (
   SELECT ROW_NUMBER() OVER(ORDER BY FSalary DESC) AS rownum,
   FNumber,FName,FSalary,FAge FROM T_Employee
  ) AS a
  WHERE a.rownum>=3 AND a.rownum<=5

七、数学函数

  1. <span style="color: #800000; font-weight: bold;">1</span>、<span style="color: #ff00ff;">ABS</span><span style="color: #000000;">()函数,求绝对值;<br>
  2. </span><span style="color: #800000; font-weight: bold;">2</span>、<span style="color: #ff00ff;">POWER</span><span style="color: #000000;">()函数:
  3. 一般power(sex,</span><span style="color: #800000; font-weight: bold;">2</span><span style="color: #000000;">),第一个参数为待求幂的表达式, 第二个参数为幂。
  4. 如select </span><span style="color: #ff00ff;">POWER</span>(<span style="color: #800000; font-weight: bold;">2</span>,<span style="color: #800000; font-weight: bold;">3</span><span style="color: #000000;">) 结果为8。<br>
  5. </span><span style="color: #800000; font-weight: bold;">3</span>、<span style="color: #ff00ff;">SQRT</span><span style="color: #000000;">()函数,计算平方根;<br>
  6. </span><span style="color: #800000; font-weight: bold;">4</span>、<span style="color: #ff00ff;">RAND</span>()函数,求随机数(<span style="color: #0000ff;">select</span> <span style="color: #ff00ff;">RAND</span><span style="color: #000000;">();)<br>
  7. </span><span style="color: #800000; font-weight: bold;">5</span>、舍入到最大整数,<span style="color: #ff00ff;">CEILING</span><span style="color: #000000;">()函数;
  8. 舍入到最小整数, </span><span style="color: #ff00ff;">FLOOR</span><span style="color: #000000;">()函数;
  9. 四舍五入,</span><span style="color: #ff00ff;">ROUND</span><span style="color: #000000;">()函数。
  10. </span><span style="color: #800000; font-weight: bold;">6</span>、<span style="color: #ff00ff;">DATENAME</span><span style="color: #000000;">()函数
  11. 可选值 别名 说明
  12. </span><span style="color: #ff00ff;"> Year </span><span style="color: #000000;"> yy、 yyyy 年份
  13. Quarter qq, q 季度
  14. </span><span style="color: #ff00ff;"> Month</span><span style="color: #000000;"> mm, m 月份
  15. Dayofyear dy, y 每年的某一日
  16. </span><span style="color: #ff00ff;"> Day</span><span style="color: #000000;"> dd, d 日期
  17. Week wk, ww 星期
  18.  Weekday dw 工作日
  19. Hour hh 小时
  20. Minute mi, n 分钟
  21. Second ss, s 秒
  22. Millisecond ms 毫秒
  23. 实例:</span><span style="color: #0000ff;">select</span> f_GUID,<span style="color: #ff00ff;">DATENAME</span><span style="color: #000000;">(Weekday,BirthDate) 星期
  24. </span><span style="color: #0000ff;"> from</span><span style="color: #000000;"> T_TeacherArchives<br>
  25. </span><span style="color: #800000; font-weight: bold;">7</span>、<span style="color: #ff00ff;">CAST</span><span style="color: #000000;">()和CONVERT()两个函数
  26. 实例:
  27. </span><span style="color: #0000ff;"> select</span> IDnumber,<span style="color: #808080;">RIGHT</span>(IDnumber,<span style="color: #800000; font-weight: bold;">6</span>) 后六位 <span style="color: #0000ff;">from</span><span style="color: #000000;"> T_TeacherArchives
  28. </span><span style="color: #0000ff;"> select</span> IDnumber,<span style="color: #ff00ff;">cast</span>(<span style="color: #808080;">RIGHT</span>(IDnumber,<span style="color: #800000; font-weight: bold;">6</span>) <span style="color: #0000ff;">AS</span> <span style="color: #0000ff;">INTEGER</span>)<span style="color: #808080;">+</span><span style="color: #800000; font-weight: bold;">1</span> <span style="color: #0000ff;">as</span> <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">后六位</span><span style="color: #ff0000;">‘</span>
  29. <span style="color: #0000ff;"> from</span><span style="color: #000000;"> T_TeacherArchives
  30. </span><span style="color: #0000ff;"> select</span> IDnumber,<span style="color: #ff00ff;">CONVERT</span>(<span style="color: #0000ff;">INTEGER</span>,<span style="color: #808080;">RIGHT</span>(IDnumber,<span style="color: #800000; font-weight: bold;">6</span>))<span style="color: #808080;">+</span><span style="color: #800000; font-weight: bold;">1</span> <span style="color: #0000ff;">as</span> <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">后六位</span><span style="color: #ff0000;">‘</span>
  31. <span style="color: #0000ff;"> from</span> T_TeacherArchives(注意类型)

  8、COALESCE()函数
     功能:空值处理
   表达式:COALESCE ( expression,value1,value2……,valuen)
   实例:
        select f_name,f_csrq,COALESCE(f_csrq,‘2015-10-10‘) as 重要时期
       from T_studentArchives where f_name = ‘11‘
      (若f_csrq为NULL,则重要时期为2015-10-10;否则,重要时期为f_csrq)
       select f_name,f_csrq,f_zz,COALESCE(f_csrq,f_zz,‘2015-10-10‘)
      as 重要时期 from T_studentArchives where f_name = ‘11‘
      (若f_csrq为NULL,则再次判断f_zz,理解同上)
    简化版:ISNULL()函数

    技术分享

 

SQL Server 2008常用的数据库知识整理

标签:

人气教程排行