• SQL 知识积累


    (1)char 、varchar、nchar的区别
    固定长度 (char) 或可变长度 (varchar) 字符数据类型


    nchar 根据 unicode 标准所进行的定义,用给定整数代码返回 unicode 字符。   
    char是固定长度的字节,varchar是可变长度的字节,nchar是unicode编码的固定字符长度。
    如:12345 在char(6)存储为123456加一个空格,共6个字节。
    中国 在char(6)存储为中国加两个空格,共6个字节。
    12345 在varchar(6)存储为123456,共5个字节。
    中国 在varchar(6)存储为中国,共4个字节。
    nchar(6)对汉字和半角字符处理时一样的,即可以存储6个汉字,也可以存储6个字母  

    (2)Truncate是一个能够快速清空资料表内所有资料的SQL语法。并且能针对具有自动递增值的字段,做计数重置归零重新计算的作用。

    delete XiTong_RenShuXuQiu
    truncate table XiTong_RenShuXuQiu

     (3)Isnull 函数主要作用是将为空的值替换为指定值,如果不为空返回检查类型的返回值,isnull的语法:

      Isnull (check_expression , replacement_value)

      参数check_expression ,是待检查是否为空的表达式,参数replacement_value是带替换的指定值,如果参数check_expression为空则参数replacement_value进行填充,如果check_expression不为空,则返回表达式相应的返回值类型,需要注意到是参数check_expression和参数replacement_value的类型需要保持一致,否则要进行相应的转换,下面通过实例说话,

      例一:

      select isnull(studentid,100) from student_info

      解释:查出student_info表中字段为studentid的值,如果字段studentid值为空就在字段studentid中添加100,或者你可以动态的向这个空字段添加值。

    (4)存储过程中  Case  When   then     else    end  联合用法

        SELECT     XiTong_YuanGongXinXi.XingMing AS YuanGongName,
     (case ISNULL(XiTong_PaiBan.ZhouYi,0) WHEN 0  THEN '休班'  ELSE '夜班'  end) as ZhouYi
    FROM   XiTong_YuanGongXinXi RIGHT OUTER JOIN
        XiTong_PaiBan ON XiTong_YuanGongXinXi.YuanGongID = XiTong_PaiBan.YuanGongID

      insert into  student(stuNum ,stuSex,stuClassNum)  values(@stuNum
     case @stuSex
     when '男' then 'true'
     when '女' then 'false'
     end
     ,@stuClassNum)

     (5)STR函数的应用

    STR 函数功能是返回一个数字的等效字符串。 
    语法
    STR ( numeric_expression , length , decimal )
    其中,numeric-expression 取任何位于 -1E126 和 1E127 之间的近似数字(浮点、实数或双精度)表达式。
    length 是要返回的字符数(包括小数点、小数点右侧和左侧的所有位以及空白),缺省值为 10。
    decimal 要返回的小数位数,缺省值为 0。

     (5)统计表中相同字段的数量

    SELECT     XiTong_YuanGongXinXi_JiNeng_1.JiNengID, 
               XiTong_JiNeng.JiNengMingCheng, 
               COUNT(*) AS Number
    FROM     XiTong_YuanGongXinXi_JiNeng AS XiTong_YuanGongXinXi_JiNeng_1 INNER JOIN
             XiTong_JiNeng ON XiTong_YuanGongXinXi_JiNeng_1.JiNengID = XiTong_JiNeng.JiNengID
    GROUP BY XiTong_YuanGongXinXi_JiNeng_1.JiNengID, XiTong_JiNeng.JiNengMingCheng  
    HAVING COUNT(*) >1
    ORDER BY Number

     (6)统计一张表中,字段的值的个数,比如:张三,周一  早、中、晚、休的在某段事件内的次数

       select 
              XiTong_PaiBanTongJi.YuanGongID,
              XiTong_YuanGongXinXi.XingMing as "姓名",
              XiTong_YuanGongXinXi.HuShiBianHao as "编号",
              sum(case when ZhouYi='0' then 1 else 0 end ) as "休班次数", 
              sum(case when ZhouYi='1' then 1 else 0 end ) as "早班次数", 
              sum(case when ZhouYi='2' then 1 else 0 end ) as "中班次数",
              sum(case when ZhouYi='3' then 1 else 0 end ) as "晚班次数" 
       from   XiTong_PaiBanTongJi inner join XiTong_YuanGongXinXi 
           on XiTong_PaiBanTongJi.YuanGongID=XiTong_YuanGongXinXi.YuanGongID
       group by 
            XiTong_PaiBanTongJi.YuanGongID,
            XiTong_YuanGongXinXi.XingMing,
            XiTong_YuanGongXinXi.HuShiBianHao
    运行结果如下:
  • 相关阅读:
    Python之路(第二十篇) subprocess模块
    Python之路(第十九篇)hashlib模块
    Python之路(第十八篇)shutil 模块、zipfile模块、configparser模块
    Python之路(第十六篇)xml模块、datetime模块
    Java性能优化之编程技巧总结
    Java消息中间件入门笔记
    Java线程池实现原理与技术(ThreadPoolExecutor、Executors)
    Java系统高并发之Redis后端缓存优化
    Java实现一个简单的加密解密方法
    Java实现动态修改Jar包内文件内容
  • 原文地址:https://www.cnblogs.com/zhangyonglvdaomei/p/3380224.html
Copyright © 2020-2023  润新知